forked from Archives/langchain
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
from langchain import LLMChain, PromptTemplate
|
|
from langchain.schema import BaseLanguageModel
|
|
|
|
|
|
class TaskCreationChain(LLMChain):
|
|
"""Chain to generates tasks."""
|
|
|
|
@classmethod
|
|
def from_llm(cls, llm: BaseLanguageModel, verbose: bool = True) -> LLMChain:
|
|
"""Get the response parser."""
|
|
task_creation_template = (
|
|
"You are an task creation AI that uses the result of an execution agent"
|
|
" to create new tasks with the following objective: {objective},"
|
|
" The last completed task has the result: {result}."
|
|
" This result was based on this task description: {task_description}."
|
|
" These are incomplete tasks: {incomplete_tasks}."
|
|
" Based on the result, create new tasks to be completed"
|
|
" by the AI system that do not overlap with incomplete tasks."
|
|
" Return the tasks as an array."
|
|
)
|
|
prompt = PromptTemplate(
|
|
template=task_creation_template,
|
|
input_variables=[
|
|
"result",
|
|
"task_description",
|
|
"incomplete_tasks",
|
|
"objective",
|
|
],
|
|
)
|
|
return cls(prompt=prompt, llm=llm, verbose=verbose)
|