28 lines
1.2 KiB
JavaScript
28 lines
1.2 KiB
JavaScript
import { PromptTemplate } from "@langchain/core/prompts";
|
|
import { LLMChain } from "../../chains/llm_chain.js";
|
|
/** Chain to execute tasks. */
|
|
export class TaskExecutionChain extends LLMChain {
|
|
static lc_name() {
|
|
return "TaskExecutionChain";
|
|
}
|
|
/**
|
|
* A static factory method that creates an instance of TaskExecutionChain.
|
|
* It constructs a prompt template for task execution, which is then used
|
|
* to create a new instance of TaskExecutionChain. The prompt template
|
|
* instructs an AI to perform a task based on a given objective, taking
|
|
* into account previously completed tasks.
|
|
* @param fields An object of type LLMChainInput, excluding the "prompt" field.
|
|
* @returns An instance of LLMChain.
|
|
*/
|
|
static fromLLM(fields) {
|
|
const executionTemplate = `You are an AI who performs one task based on the following objective: ` +
|
|
`{objective}.` +
|
|
`Take into account these previously completed tasks: {context}.` +
|
|
` Your task: {task}. Response:`;
|
|
const prompt = new PromptTemplate({
|
|
template: executionTemplate,
|
|
inputVariables: ["objective", "context", "task"],
|
|
});
|
|
return new TaskExecutionChain({ prompt, ...fields });
|
|
}
|
|
}
|