Files
matrix-openclaw-bot/references/matrix-bot-chat-reference/sample/openrouter example.txt
2026-02-03 01:03:29 +08:00

53 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
To implement a Python function using OpenRouters API to send content to an AI model, receive results, and track the costs, you can follow this approach:
1. **API Request for Chat Completion**:
- Youll need to send a `POST` request to `https://openrouter.ai/api/v1/chat/completions`, including the model identifier, your message content, and your API key in the headers.
- The request body should include the AI model you want to use (e.g., `"openai/gpt-3.5-turbo"`) and the `messages` array.
2. **Tracking Costs**:
- The response will contain `usage` data, which includes `prompt_tokens`, `completion_tokens`, and `total_tokens`. This data allows you to calculate the cost based on token usage directly from the response.
- Alternatively, to get detailed cost data, OpenRouter provides the `/api/v1/generation` endpoint. You can use the `id` from your initial response to query for specific stats, such as exact token counts and the calculated cost.
3. **Checking Account Balance**:
- Currently, OpenRouter doesnt appear to provide a direct API endpoint for account balance checks within their documented API endpoints, so this may need to be monitored from their platform dashboard directly.
Heres a basic Python function demonstrating the API call, token tracking, and cost retrieval:
```python
import requests
def query_openrouter(content, model="openai/gpt-3.5-turbo"):
url = "https://openrouter.ai/api/v1/chat/completions"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
data = {
"model": model,
"messages": [{"role": "user", "content": content}]
}
response = requests.post(url, headers=headers, json=data)
result = response.json()
if "usage" in result:
usage_data = result["usage"]
cost_query_url = f"https://openrouter.ai/api/v1/generation?id={result['id']}"
cost_response = requests.get(cost_query_url, headers=headers)
cost_data = cost_response.json()
return {
"reply": result["choices"][0]["message"]["content"],
"prompt_tokens": usage_data["prompt_tokens"],
"completion_tokens": usage_data["completion_tokens"],
"total_cost": cost_data["data"]["total_cost"]
}
else:
return {"error": "No usage data available in the response"}
# Example usage
result = query_openrouter("What is the meaning of life?")
print(result)
```
For further details, OpenRouters official documentation outlines more on usage and token tracking options.