import asyncio

from openai import AsyncOpenAI
from agents import Agent , OpenAIChatCompletionsModel , Runner, set_tracing_disabled

# トレーシング（実行ログの追跡）を有効化
set_tracing_disabled(disabled=False)

# 使用するモデル名とローカルLLMサーバーのURL
model="llama3.2:1b"
api_base="http://192.168.xxx.xxx:11434/v1"

async def main():
    # OpenAI互換クライアント初期化
    client = AsyncOpenAI(base_url=api_base)
    # OpenAI互換モデルオブジェクトの作成
    ai_chat_model= OpenAIChatCompletionsModel(model=model, openai_client=client)
    # エージェントの定義
    agent = Agent(
        name="hello_world_3_Agent",
        model=ai_chat_model,　    # 引数 modelに作成したモデルオブジェクトを渡しています
        instructions="You only respond in haikus.",
    )
    # Runner.runを使用してエージェントを実行
    # Runner側でのモデル指定は不要で、エージェントが保持しているモデルが使用されます
    result = await Runner.run( agent, "Tell me about recursion in programming.")
    print(result.final_output)

if __name__ == "__main__":
    # 非同期メイン関数の実行
    asyncio.run(main())
