in 01-agents/3_tools.py [0:0]
def run_full_turn(system_message, tools, messages):
# ツールをスキーマに変換
tool_schemas = [function_to_schema(f) for f in tools]
# OpenAI API を呼び出してレスポンスを生成
response = client.chat.completions.create(
model=model,
messages=[{"role": "system", "content": system_message}] + messages,
tools=tool_schemas,
)
message = response.choices[0].message
messages.append(message)
# アシスタントの応答を表示
if message.content:
print(color("Assistant:", "yellow"), message.content)
# ツール呼び出しがない場合はメッセージを返す
if not message.tool_calls:
return message
# ツール呼び出しがある場合、その詳細を表示
for tool_call in message.tool_calls:
name = tool_call.function.name
args = json.loads(tool_call.function.arguments)
print(
color("Assistant:", "yellow"),
color(f"ツール呼び出しを実行中: {tool_call.function.name}({args})", "magenta"),
)
return message