tgas-theme2-ph2-demo / answers.py
manatoboys's picture
エラー修正
1c02642
import json
import os
# import yaml
from dotenv import load_dotenv
from utils_groupclassification.agent import submit_tool_outputs
from utils_groupclassification.assistants_utils import (
create_assistant,
create_message,
create_run,
create_thread,
wait_for_run_completion,
)
from utils_groupclassification.gspread_utils import write_gspread
from src.myLogger import set_logger
from utils_groupclassification.check_openai import co
logger = set_logger("my_app", level="INFO")
load_dotenv()
model = 'gpt-4o'
def search(query) -> list:
logger.info("create thread")
thread = create_thread()
logger.info("created thread")
with open("prompts/ph1.txt", "r") as fp: # search prompt
assistant_prompt = fp.read()
logger.info(f"assistant prompt: {assistant_prompt}")
with open("tools/ph1.json", "r") as f: # tool prompt
tools = json.load(f)
logger.info("create assistant")
assistant = create_assistant( # create assistant
assistant_prompt,
model=model,
tools=tools,
)
logger.info(f"User:{query}")
create_message(thread.id, "user", query)
run = create_run(thread.id, assistant.id)
run = wait_for_run_completion(thread.id, run.id)
logger.info(f"status: {run.status}")
if run.status == "failed":
logger.error(f"Run_failed: {run.last_error}, Run ID: {run.id}")
return "Group 5", ['途中でエラー'], [], []
# sys.exit(1)
elif run.status == "requires_action":
logger.info(
f"Run requires action: {run.required_action.submit_tool_outputs.tool_calls}"
)
run = submit_tool_outputs(
thread.id,
run.id,
run.required_action.submit_tool_outputs.tool_calls,
)
if run is None:
return "Group 5", ['途中でエラー'], [], []
run = wait_for_run_completion(thread.id, run.id)
logger.info(f"Run status: {run.status}")
with open("prompts/ph2.txt", "r") as fp: # search prompt
assistant_prompt = fp.read()
logger.info(f"assistant prompt: {assistant_prompt}")
with open("tools/ph2.json", "r") as f: # tool prompt
tools = json.load(f)
assistant1 = create_assistant( # create assistant
assistant_prompt,
model="gpt-3.5-turbo",
tools=tools,
)
run = create_run(thread.id, assistant1.id)
logger.info(f"run.id: {run.id}")
run = wait_for_run_completion(thread.id, run.id)
logger.info(f"status: {run.status}")
if run.status == "failed":
logger.error(f"Run_failed: {run.error}, Run ID: {run.id}")
return "Group 5", ['途中でエラー'], [], []
# sys.exit(1)
elif run.status == "requires_action":
logger.info(
f"Run requires action: {run.required_action.submit_tool_outputs.tool_calls}"
)
run = submit_tool_outputs(
thread.id,
run.id,
run.required_action.submit_tool_outputs.tool_calls,
)
if run is None:
return "Group 5", ['途中でエラー'], [], []
run = wait_for_run_completion(thread.id, run.id)
logger.info(f"Run status: {run.status}")
group, related_url, unrelated_url, other_url = write_gspread(query)
if len(related_url) == 0:
related_url_list = '関連URLなし'
else:
related_url_list = ', '.join(related_url)
unrelated_url_list = ', '.join(unrelated_url)
other_url_list = ', '.join(other_url)
return group, related_url_list, unrelated_url_list, other_url_list
def group2_classification(company_name):
group, related_url_list, unrelated_url_list, other_url_list = search(company_name)
if group == 'Group 3':
group = 'Group 2'
else:
group = 'Group 1-2'
return group, related_url_list, unrelated_url_list, other_url_list