agsamantha/node_modules/langchain/dist/experimental/babyagi/task_execution.js
2024-10-02 15:15:21 -05:00

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 });
}
}