-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
task_prioritization.ts
33 lines (31 loc) · 1.39 KB
/
task_prioritization.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { PromptTemplate } from "@langchain/core/prompts";
import { LLMChain, LLMChainInput } from "../../chains/llm_chain.js";
/** Chain to prioritize tasks. */
export class TaskPrioritizationChain extends LLMChain {
static lc_name() {
return "TaskPrioritizationChain";
}
/**
* Static method to create a new TaskPrioritizationChain from a
* BaseLanguageModel. It generates a prompt using the PromptTemplate class
* and the task prioritization template, and returns a new instance of
* TaskPrioritizationChain.
* @param fields Object with fields used to initialize the chain, excluding the prompt.
* @returns A new instance of TaskPrioritizationChain.
*/
static fromLLM(fields: Omit<LLMChainInput, "prompt">): LLMChain {
const taskPrioritizationTemplate =
`You are a task prioritization AI tasked with cleaning the formatting of ` +
`and reprioritizing the following tasks: {task_names}.` +
` Consider the ultimate objective of your team: {objective}.` +
` Do not remove any tasks. Return the result as a numbered list, like:` +
` #. First task` +
` #. Second task` +
` Start the task list with number {next_task_id}.`;
const prompt = new PromptTemplate({
template: taskPrioritizationTemplate,
inputVariables: ["task_names", "next_task_id", "objective"],
});
return new TaskPrioritizationChain({ prompt, ...fields });
}
}