Spaces:
Runtime error
Runtime error
| ### | |
| # @name OpenAI Response - Test streaming response | |
| POST {{omniroute-address}}/v1/responses | |
| Authorization: Bearer {{OMNIROUTE_API_KEY}} | |
| Content-Type: text/event-stream | |
| { | |
| "model": "gemini/gemma-4-31b-it", | |
| "stream": true, | |
| "input": [ | |
| { | |
| "type": "message", | |
| "role": "user", | |
| "content": [ | |
| { | |
| "type": "input_text", | |
| "text": "Ansver 1+1 only." | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Gemini Response - Test streaming response | |
| POST https://generativelanguage.googleapis.com/v1beta/models/gemma-4-31b-it:streamGenerateContent?alt=sse | |
| x-goog-api-key: {{GEMINI_API_KEY}} | |
| Content-Type: text/event-stream | |
| { | |
| "model": "gemma-4-31b-it", | |
| "contents": [ | |
| { | |
| "role": "user", | |
| "parts": [ | |
| { | |
| "text": "Ansver 1+1 only." | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ### | |
| # @name OpenAI Response - Test non-streaming response | |
| POST {{omniroute-address}}/v1/responses | |
| Authorization: Bearer {{OMNIROUTE_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemini/gemma-4-31b-it", | |
| "stream": false, | |
| "input": [ | |
| { | |
| "type": "message", | |
| "role": "user", | |
| "content": [ | |
| { | |
| "type": "input_text", | |
| "text": "Ansver 11+212 only." | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Gemini Response - Test non-streaming response | |
| POST https://generativelanguage.googleapis.com/v1beta/models/gemma-4-31b-it:generateContent | |
| x-goog-api-key: {{GEMINI_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemma-4-31b-it", | |
| "contents": [ | |
| { | |
| "role": "user", | |
| "parts": [ | |
| { | |
| "text": "Ansver 1+1 only." | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Tool history via OmniRoute — native functionCall/functionResponse round-trip | |
| # Tool calls in conversation history are mapped to native Gemini functionCall parts | |
| # (no text serialization). The model should respond with either natural language or | |
| # proper functionCall — never with text labels like [tool_history_call:. | |
| POST {{omniroute-address}}/v1/chat/completions | |
| Authorization: Bearer {{OMNIROUTE_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemini/gemma-4-31b-it", | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": "What is the weather in Stockholm?" | |
| }, | |
| { | |
| "role": "assistant", | |
| "content": null, | |
| "tool_calls": [ | |
| { | |
| "id": "call_abc123", | |
| "type": "function", | |
| "function": { | |
| "name": "get_weather", | |
| "arguments": "{\"location\": \"Stockholm, Sweden\"}" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "role": "tool", | |
| "tool_call_id": "call_abc123", | |
| "content": "{\"temperature\": 22, \"conditions\": \"Sunny\", \"humidity\": 45}" | |
| }, | |
| { | |
| "role": "assistant", | |
| "content": "Stockholm has sunny weather at 22°C." | |
| }, | |
| { | |
| "role": "user", | |
| "content": "Summarize the weather briefly." | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Simple Q&A — no tool calls in history | |
| POST {{omniroute-address}}/v1/chat/completions | |
| Authorization: Bearer {{OMNIROUTE_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemini/gemma-4-31b-it", | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": "What is 1+1? Only respond with the number." | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Direct Gemini: native functionCall/functionResponse format | |
| # Baseline — native Gemini contents with functionCall/functionResponse parts. | |
| # No text labels should appear in the response. | |
| POST https://generativelanguage.googleapis.com/v1beta/models/gemma-4-31b-it:generateContent | |
| x-goog-api-key: {{GEMINI_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemma-4-31b-it", | |
| "contents": [ | |
| { | |
| "role": "user", | |
| "parts": [ | |
| { | |
| "text": "What is the weather in Stockholm?" | |
| } | |
| ] | |
| }, | |
| { | |
| "role": "model", | |
| "parts": [ | |
| { | |
| "functionCall": { | |
| "id": "call_abc123", | |
| "name": "get_weather", | |
| "args": { | |
| "location": "Stockholm, Sweden" | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "role": "user", | |
| "parts": [ | |
| { | |
| "functionResponse": { | |
| "id": "call_abc123", | |
| "name": "get_weather", | |
| "response": { | |
| "result": { | |
| "temperature": 22, | |
| "conditions": "Sunny", | |
| "humidity": 45 | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "role": "user", | |
| "parts": [ | |
| { | |
| "text": "Summarize the weather briefly." | |
| } | |
| ] | |
| } | |
| ] | |
| } | |
| ### | |
| # @name Tool history via OmniRoute — thinking model | |
| # Same as native test above but with a thinking model (gemini-2.5-flash) | |
| # that cryptographically validates thoughtSignature on functionCall parts. | |
| POST {{omniroute-address}}/v1/chat/completions | |
| Authorization: Bearer {{OMNIROUTE_API_KEY}} | |
| Content-Type: application/json | |
| { | |
| "model": "gemini/gemini-2.5-flash", | |
| "messages": [ | |
| { | |
| "role": "user", | |
| "content": "What is the weather in Stockholm?" | |
| }, | |
| { | |
| "role": "assistant", | |
| "content": null, | |
| "tool_calls": [ | |
| { | |
| "id": "call_abc123", | |
| "type": "function", | |
| "function": { | |
| "name": "get_weather", | |
| "arguments": "{\"location\": \"Stockholm, Sweden\"}" | |
| } | |
| } | |
| ] | |
| }, | |
| { | |
| "role": "tool", | |
| "tool_call_id": "call_abc123", | |
| "content": "{\"temperature\": 22, \"conditions\": \"Sunny\", \"humidity\": 45}" | |
| }, | |
| { | |
| "role": "assistant", | |
| "content": "Stockholm has sunny weather at 22°C." | |
| }, | |
| { | |
| "role": "user", | |
| "content": "Summarize the weather briefly." | |
| } | |
| ] | |
| } | |