Add references (removed inner git)

This commit is contained in:
hongz
2026-02-03 01:03:29 +08:00
parent 89d4260eb8
commit a44621558c
18 changed files with 2437 additions and 1 deletions

View File

@@ -0,0 +1,53 @@
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.