| from agents import Agent, WebSearchTool, ModelSettings | |
| 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) | |
| INSTRUCTIONS = ( | |
| "You are a research assistant. Given a search term, you search the web for that term and " | |
| "produce a concise summary of the results. The summary must 2-3 paragraphs and less than 300 " | |
| "words. Capture the main points. Write succintly, no need to have complete sentences or good " | |
| "grammar. This will be consumed by someone synthesizing a report, so its vital you capture the " | |
| "essence and ignore any fluff. Do not include any additional commentary other than the summary itself." | |
| ) | |
| search_agent = Agent( | |
| name="Search agent", | |
| instructions=INSTRUCTIONS, | |
| tools=[WebSearchTool(search_context_size="low")], | |
| model=custom_model, | |
| model_settings=ModelSettings(tool_choice="required"), | |
| ) |