Vai al contenuto principale
tools / tool_choice in stile OpenAI funzionano con ogni provider chat-capable. Il gateway traduce nella forma nativa di tool-call dell’upstream.

Esempio minimo

from openai import OpenAI
client = OpenAI(base_url="https://api.orcarouter.ai/v1", api_key="sk-orca-...")

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"],
        },
    },
}]

resp = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[{"role": "user", "content": "Weather in Paris?"}],
    tools=tools,
)
print(resp.choices[0].message.tool_calls)

Comportamento cross-provider

Lo stesso codice client funziona con ogni provider chat-capable — OrcaRouter adatta i tuoi tools in stile OpenAI alla forma nativa di ciascun upstream:
  • OpenAI / Grok / DeepSeek: target nativo — tools mantiene la forma OpenAI sul filo
  • Anthropic: i tools OpenAI sono mappati ai tools Anthropic con input_schema, preservando properties e required di JSON Schema
  • Gemini: i tools OpenAI sono mappati a Gemini tools[].functionDeclarations, con name / description / parameters trasportati

Nomi di funzione riservati per Gemini

Sui target Gemini il gateway riconosce tre valori function.name riservati e li trasforma negli strumenti integrati nativi di Gemini invece che in dichiarazioni di funzione personalizzate:
Nome riservatoMappa a
googleSearchGrounding Google Search di Gemini (vedi Ricerca web)
codeExecutionEsecuzione di codice integrata in Gemini
urlContextStrumento URL-context integrato in Gemini
Le funzioni con uno di questi nomi non necessitano di parameters — passa {type: "function", function: {name: "googleSearch"}} e Gemini fa il resto. Scegli un nome diverso per i tuoi strumenti personalizzati per non collidere con questi integrati.