| from .base_agent import BaseAgent |
| from prompt.constants import modeling_methods |
| from prompt.template import (TASK_ANALYSIS_PROMPT, TASK_RESULT_PROMPT, TASK_ANSWER_PROMPT, |
| TASK_FORMULAS_PROMPT, TASK_FORMULAS_CRITIQUE_PROMPT, TASK_FORMULAS_IMPROVEMENT_PROMPT, |
| TASK_MODELING_PROMPT, TASK_MODELING_CRITIQUE_PROMPT, TASK_MODELING_IMPROVEMENT_PROMPT) |
|
|
| class Task(BaseAgent): |
| def __init__(self, llm): |
| super().__init__(llm) |
| |
| def analysis(self, task_description: str, user_prompt: str = ''): |
| prompt = TASK_ANALYSIS_PROMPT.format(task_description=task_description, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
| |
| def formulas_actor(self, data_summary: str, task_description: str, task_analysis: str, user_prompt: str = ''): |
| prompt = TASK_FORMULAS_PROMPT.format(data_summary=data_summary, task_description=task_description, task_analysis=task_analysis, modeling_methods=modeling_methods, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
|
|
| def formulas_critic(self, data_summary: str, task_description: str, task_analysis: str, modeling_formulas: str): |
| prompt = TASK_FORMULAS_CRITIQUE_PROMPT.format(data_summary=data_summary, task_description=task_description, task_analysis=task_analysis, modeling_formulas=modeling_formulas).strip() |
| return self.llm.generate(prompt) |
| |
| def formulas_improvement(self, data_summary: str, task_description: str, task_analysis: str, modeling_formulas: str, modeling_formulas_critique: str, user_prompt: str = ''): |
| prompt = TASK_FORMULAS_IMPROVEMENT_PROMPT.format(data_summary=data_summary, task_description=task_description, task_analysis=task_analysis, modeling_formulas=modeling_formulas, modeling_formulas_critique=modeling_formulas_critique, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
|
|
| def formulas(self, data_summary: str, task_description: str, task_analysis: str, round: int = 1, user_prompt: str = ''): |
| formulas = self.formulas_actor(data_summary, task_description, task_analysis, user_prompt) |
| for i in range(round): |
| print(f'FORMULAS Round {i+1}') |
| formulas_critique = self.formulas_critic(data_summary, task_description, task_analysis, formulas) |
| formulas = self.formulas_improvement(data_summary, task_description, task_analysis, formulas, formulas_critique, user_prompt) |
| return formulas |
|
|
| def modeling_actor(self, data_summary: str, task_description: str, task_analysis: str, formulas: str, user_prompt: str = ''): |
| prompt = TASK_MODELING_PROMPT.format(data_summary=data_summary, task_description=task_description, task_analysis=task_analysis, modeling_formulas=formulas, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| |
| |
| |
| |
| |
| |
| |
|
|
| def modeling(self, data_summary: str, task_description: str, task_analysis: str, formulas: str, round: int = 1, user_prompt: str = ''): |
| return self.modeling_actor(data_summary, task_description, task_analysis, formulas, user_prompt) |
|
|
| def result(self, task_description: str, task_analysis: str, task_formulas: str, task_modeling: str, user_prompt: str = ''): |
| prompt = TASK_RESULT_PROMPT.format(task_description=task_description, task_analysis=task_analysis, task_formulas=task_formulas, task_modeling=task_modeling, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
|
|
| def answer(self, task_description: str, task_analysis: str, task_formulas: str, task_modeling: str, task_result: str, user_prompt: str = ''): |
| prompt = TASK_ANSWER_PROMPT.format(task_description=task_description, task_analysis=task_analysis, task_formulas=task_formulas, task_modeling=task_modeling, task_result=task_result, user_prompt=user_prompt).strip() |
| return self.llm.generate(prompt) |
|
|