from llm.llm import LLM
from input.problem import problem_input
from input.test_middle_result import problem_str, problem_analysis, selected_models, modeling_solution, modeling_solution, task_descriptions
from agent.problem_analysis import ProblemAnalysis
from agent.problem_modeling import ProblemModeling
from agent.task_decompse import TaskDecompose
from agent.task import Task
from utils.utils import read_json_file, write_json_file, write_markdown_file, json_to_markdown
if __name__ == "__main__":
# llm = LLM('deepseek-chat')
llm = LLM('deepseek-reasoner')
# llm = LLM('gpt-4o')
paper = {'tasks': []}
problem_path = 'data/actor_data/input/problem/2024_C.json'
problem_str, problem = problem_input(problem_path, llm)
problem_type = problem_path.split('/')[-1].split('_')[-1].split('.')[0] # 'C'
tasknum = 4
print(problem_str)
print('---')
paper['problem_background'] = problem['background']
paper['problem_requirement'] = problem['problem_requirement']
# pa = ProblemAnalysis(llm)
# problem_analysis = pa.analysis(problem_str, round=1)
# print(problem_analysis)
# print('---')
# pm = ProblemModeling(llm)
# modeling_solution = pm.modeling(problem_str, problem_analysis, round=1)
# print(modeling_solution)
# print('---')
# td = TaskDecompose(llm)
# task_descriptions = td.decompose_and_refine(problem_str, problem_analysis, modeling_solution, problem_type, tasknum)
# print(task_descriptions)
# print('---')
task = Task(llm)
for task_description in task_descriptions[:1]:
task_analysis = task.analysis(task_description)
task_formulas = task.formulas(problem['data_description'], task_description, task_analysis)
task_modeling = task.modeling(problem['data_description'], task_description, task_analysis, task_formulas)
task_result = task.result(task_description, task_analysis, task_formulas, task_modeling)
task_answer = task.answer(task_description, task_analysis, task_formulas, task_modeling, task_result)
paper['tasks'].append({
'task_description': task_description,
'task_analysis': task_analysis,
'mathematical_formulas': task_formulas,
'mathematical_modeling_process': task_modeling,
'result': task_result,
'answer': task_answer
})
print(paper['tasks'])
print(llm.get_total_usage())