mirror of
https://github.com/wassname/openrouter-python-sdk-retry-errors.git
synced 2026-07-29 11:23:49 +08:00
- 56d382078cfce7fa597d1da2bce531af2d060b47 - 9ef6db7e04c9401536763a321b05d00311cef31a - bf855082e30820d466f0f86a6d6e87de2ecfb06f - 335b1cbe361214e48b945b987b4e164457aa817b - 648485fdc7f9d8ae86fd857eccedcc5e41fb2e69 - 80c49474a15a2bd549a5f26efad3858aa45b7c7b - 70e8ac317f9c4472db3decd024d1819650df4182 - 9f2a6659ab6dbf111a0c29e4366328c3d2048826 - a3a28b1fc6ec7d2941232a4ebde8c5f470497876 - 4b5dc9193480b7c5c9ddb882ccf3ee2128ca0d51 - bb413e979a46ef67c2f266743f7ebd798af42afb - b60e92d5dcec83f31986164f51c010d1728b2b17 - 45687f423707f5838461585c568a024a19eb2f06 - 3103d3ca68b6e42ccdb6136588ec2b6edc8dcab0 - fd9f991606027cd86116317c71f8eb7b4e2aa3eb - 0f312019161edd76c1e5923d142c788d22f096d5 - 5dbab2094bc744db4a90b3097520d897e5d0d634 - 4c47d1af1735db18a1c1a7f463e801c7f71ad4e5 GitOrigin-RevId: 56d382078cfce7fa597d1da2bce531af2d060b47
44 KiB
44 KiB
Chat
(chat)
Overview
Available Operations
- send - Create a chat completion
send
Sends a request for a model response for the given chat conversation. Supports both streaming and non-streaming modes.
Example Usage
from openrouter import OpenRouter
import os
with OpenRouter(
http_referer="<value>",
x_title="<value>",
api_key=os.getenv("OPENROUTER_API_KEY", ""),
) as open_router:
res = open_router.chat.send(messages=[
{
"role": "system",
"content": "You are a helpful assistant.",
},
{
"role": "user",
"content": "What is the capital of France?",
},
], stream=False, temperature=0.7, top_p=1)
with res as event_stream:
for event in event_stream:
# handle event
print(event, flush=True)
Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
messages |
List[components.Message] | ✔️ | List of messages for the conversation | [ { "role": "user", "content": "Hello!" } ] |
http_referer |
Optional[str] | ➖ | The app identifier should be your app's URL and is used as the primary identifier for rankings. This is used to track API usage per application. |
|
x_title |
Optional[str] | ➖ | The app display name allows you to customize how your app appears in OpenRouter's dashboard. |
|
provider |
OptionalNullable[components.ChatGenerationParamsProvider] | ➖ | When multiple model providers are available, optionally indicate your routing preference. | |
plugins |
List[components.ChatGenerationParamsPluginUnion] | ➖ | Plugins you want to enable for this request, including their settings. | |
user |
Optional[str] | ➖ | Unique user identifier | user-123 |
session_id |
Optional[str] | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow) for observability. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 128 characters. | |
trace |
Optional[components.ChatGenerationParamsTrace] | ➖ | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | |
model |
Optional[str] | ➖ | Model to use for completion | openai/gpt-4 |
models |
List[str] | ➖ | Models to use for completion | [ "openai/gpt-4", "openai/gpt-4o" ] |
frequency_penalty |
OptionalNullable[float] | ➖ | Frequency penalty (-2.0 to 2.0) | 0 |
logit_bias |
Dict[str, float] | ➖ | Token logit bias adjustments | { "50256": -100 } |
logprobs |
OptionalNullable[bool] | ➖ | Return log probabilities | false |
top_logprobs |
OptionalNullable[float] | ➖ | Number of top log probabilities to return (0-20) | 5 |
max_completion_tokens |
OptionalNullable[float] | ➖ | Maximum tokens in completion | 100 |
max_tokens |
OptionalNullable[float] | ➖ | Maximum tokens (deprecated, use max_completion_tokens) | 100 |
metadata |
Dict[str, str] | ➖ | Key-value pairs for additional object information (max 16 pairs, 64 char keys, 512 char values) | { "user_id": "user-123", "session_id": "session-456" } |
presence_penalty |
OptionalNullable[float] | ➖ | Presence penalty (-2.0 to 2.0) | 0 |
reasoning |
Optional[components.Reasoning] | ➖ | Configuration options for reasoning models | { "effort": "medium", "summary": "concise" } |
response_format |
Optional[components.ResponseFormat] | ➖ | Response format configuration | { "type": "json_object" } |
seed |
OptionalNullable[int] | ➖ | Random seed for deterministic outputs | 42 |
stop |
OptionalNullable[components.Stop] | ➖ | Stop sequences (up to 4) | [ "" ] |
stream |
Optional[bool] | ➖ | Enable streaming response | false |
stream_options |
OptionalNullable[components.ChatStreamOptions] | ➖ | Streaming configuration options | { "include_usage": true } |
temperature |
OptionalNullable[float] | ➖ | Sampling temperature (0-2) | 0.7 |
parallel_tool_calls |
OptionalNullable[bool] | ➖ | N/A | |
tool_choice |
Optional[components.ToolChoiceOption] | ➖ | Tool choice configuration | auto |
tools |
List[components.ToolDefinitionJSON] | ➖ | Available tools for function calling | [ { "type": "function", "function": { "name": "get_weather", "description": "Get weather" } } ] |
top_p |
OptionalNullable[float] | ➖ | Nucleus sampling parameter (0-1) | 1 |
debug |
Optional[components.DebugOptions] | ➖ | Debug options for inspecting request transformations (streaming only) | { "echo_upstream_body": true } |
image_config |
Dict[str, components.ChatGenerationParamsImageConfig] | ➖ | Provider-specific image configuration options. Keys and values vary by model/provider. See https://openrouter.ai/docs/guides/overview/multimodal/image-generation for more details. | { "aspect_ratio": "16:9" } |
modalities |
List[components.Modality] | ➖ | Output modalities for the response. Supported values are "text" and "image". | [ "text", "image" ] |
retries |
Optional[utils.RetryConfig] | ➖ | Configuration to override the default retry behavior of the client. |
Response
operations.SendChatCompletionRequestResponse
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.PaymentRequiredResponseError | 402 | application/json |
| errors.NotFoundResponseError | 404 | application/json |
| errors.RequestTimeoutResponseError | 408 | application/json |
| errors.PayloadTooLargeResponseError | 413 | application/json |
| errors.UnprocessableEntityResponseError | 422 | application/json |
| errors.TooManyRequestsResponseError | 429 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.BadGatewayResponseError | 502 | application/json |
| errors.ServiceUnavailableResponseError | 503 | application/json |
| errors.EdgeNetworkTimeoutResponseError | 524 | application/json |
| errors.ProviderOverloadedResponseError | 529 | application/json |
| errors.OpenRouterDefaultError | 4XX, 5XX | */* |