from pydantic import BaseModel, Field from agents import Agent from agents import OpenAIChatCompletionsModel from openai import AsyncOpenAI import os from dotenv import load_dotenv load_dotenv(override=True) model = "gemini-2.0-flash" GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta/" GEMINI_API_KEY = os.getenv("GEMINI_API_KEY") client = AsyncOpenAI(base_url=GEMINI_BASE_URL,api_key=GEMINI_API_KEY) custom_model = OpenAIChatCompletionsModel(model=model,openai_client=client) HOW_MANY_SEARCHES = 5 INSTRUCTIONS = f"You are a helpful research assistant. Given a query, come up with a set of web searches \ to perform to best answer the query. Output {HOW_MANY_SEARCHES} terms to query for." class WebSearchItem(BaseModel): reason: str = Field(description="Your reasoning for why this search is important to the query.") query: str = Field(description="The search term to use for the web search.") class WebSearchPlan(BaseModel): searches: list[WebSearchItem] = Field(description="A list of web searches to perform to best answer the query.") planner_agent = Agent( name="PlannerAgent", instructions=INSTRUCTIONS, model=custom_model, output_type=WebSearchPlan, )