from agents import AsyncOpenAI, OpenAIChatCompletionsModel, Agent, Runner, function_tool, set_tracing_disabled, ModelSettings
import os
import dotenv
set_tracing_disabled(True)
dotenv.load_dotenv()
GEMINI_API_KEY = os.environ.get("GEMINI_API_KEY")
client = AsyncOpenAI(
    api_key=GEMINI_API_KEY,
    base_url='https://generativelanguage.googleapis.com/v1beta/openai',
)
model = OpenAIChatCompletionsModel(
    'gemini-2.0-flash',
    openai_client=client
)
@function_tool(name_override='add_tool')
def add(a: int, b: int) -> int:
    print("Adding...")
    return a + b
@function_tool
def subtract(a: int, b: int) -> int:
    print("Subtracting...")
    return a - b
assistant = Agent(
    name='assistant',
    instructions='You are a helpful assistant.',
    tools=[add, subtract],
    model=model,
    model_settings=ModelSettings(
        tool_choice='subtract'
    )
)
result = Runner.run_sync(assistant, 'Hello')
print(result.final_output)