/interactions
| Feature | Supported | Notes |
|---|---|---|
| Logging | ✅ | Works across all integrations |
| Streaming | ✅ | |
| Loadbalancing | ✅ | Between supported models |
| Supported Providers | gemini | Google Interactions API |
LiteLLM Python SDK Usage​
Quick Start​
Create Interaction
from litellm import create_interaction
import os
os.environ["GEMINI_API_KEY"] = "your-api-key"
response = create_interaction(
model="gemini/gemini-2.5-flash",
input="Tell me a short joke about programming."
)
print(response.outputs[-1].text)
Async Usage​
Async Create Interaction
from litellm import acreate_interaction
import os
import asyncio
os.environ["GEMINI_API_KEY"] = "your-api-key"
async def main():
response = await acreate_interaction(
model="gemini/gemini-2.5-flash",
input="Tell me a short joke about programming."
)
print(response.outputs[-1].text)
asyncio.run(main())
Streaming​
Streaming Interaction
from litellm import create_interaction
import os
os.environ["GEMINI_API_KEY"] = "your-api-key"
response = create_interaction(
model="gemini/gemini-2.5-flash",
input="Write a 3 paragraph story about a robot.",
stream=True
)
for chunk in response:
print(chunk)
LiteLLM AI Gateway (Proxy) Usage​
Setup​
Add this to your litellm proxy config.yaml:
config.yaml
model_list:
- model_name: gemini-flash
litellm_params:
model: gemini/gemini-2.5-flash
api_key: os.environ/GEMINI_API_KEY
Start litellm:
litellm --config /path/to/config.yaml
# RUNNING on http://0.0.0.0:4000
Test Request​
- curl
- Google GenAI SDK
Create Interaction
curl -X POST "http://localhost:4000/v1beta/interactions" \
-H "Authorization: Bearer sk-1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini/gemini-2.5-flash",
"input": "Tell me a short joke about programming."
}'
Streaming:
Streaming Interaction
curl -N -X POST "http://localhost:4000/v1beta/interactions" \
-H "Authorization: Bearer sk-1234" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini/gemini-2.5-flash",
"input": "Write a 3 paragraph story about a robot.",
"stream": true
}'
Get Interaction:
Get Interaction by ID
curl "http://localhost:4000/v1beta/interactions/{interaction_id}" \
-H "Authorization: Bearer sk-1234"
Point the Google GenAI SDK to LiteLLM Proxy:
Google GenAI SDK with LiteLLM Proxy
from google import genai
import os
# Point SDK to LiteLLM Proxy
os.environ["GOOGLE_GENAI_BASE_URL"] = "http://localhost:4000"
os.environ["GEMINI_API_KEY"] = "sk-1234" # Your LiteLLM API key
client = genai.Client()
# Create an interaction
interaction = client.interactions.create(
model="gemini/gemini-2.5-flash",
input="Tell me a short joke about programming."
)
print(interaction.outputs[-1].text)
Streaming:
Google GenAI SDK Streaming
from google import genai
import os
os.environ["GOOGLE_GENAI_BASE_URL"] = "http://localhost:4000"
os.environ["GEMINI_API_KEY"] = "sk-1234"
client = genai.Client()
for chunk in client.interactions.create_stream(
model="gemini/gemini-2.5-flash",
input="Write a story about space exploration.",
):
print(chunk)
Request/Response Format​
Request Parameters​
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model to use (e.g., gemini/gemini-2.5-flash) |
input | string | Yes | The input text for the interaction |
stream | boolean | No | Enable streaming responses |
tools | array | No | Tools available to the model |
system_instruction | string | No | System instructions for the model |
generation_config | object | No | Generation configuration |
previous_interaction_id | string | No | ID of previous interaction for context |
Response Format​
{
"id": "interaction_abc123",
"object": "interaction",
"model": "gemini-2.5-flash",
"status": "completed",
"created": "2025-01-15T10:30:00Z",
"updated": "2025-01-15T10:30:05Z",
"role": "model",
"outputs": [
{
"type": "text",
"text": "Why do programmers prefer dark mode? Because light attracts bugs!"
}
],
"usage": {
"total_input_tokens": 10,
"total_output_tokens": 15,
"total_tokens": 25
}
}
Supported Providers​
| Provider | Link to Usage |
|---|---|
| Google AI Studio | Usage |