def run_full_turn()

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