#!/usr/bin/env python3 """Test OpenRouter API with Python/uv""" import json import os from openai import OpenAI def get_api_key_from_vault(): """Retrieve API key from Vault using curl""" import subprocess # Get root token with open("/opt/vault/init-keys.json") as f: token = json.load(f)["root_token"] # Fetch from Vault API directly result = subprocess.run([ "curl", "-sk", "-H", f"X-Vault-Token: {token}", "https://127.0.0.1:8200/v1/secret/data/api-keys/openrouter" ], capture_output=True, text=True) data = json.loads(result.stdout) return data["data"]["data"]["api_key"] def main(): print("=== Python/uv OpenRouter Test ===\n") # Get API key from Vault print("Fetching API key from Vault...") api_key = get_api_key_from_vault() print(f"API key retrieved: {api_key[:20]}...\n") # Initialize OpenAI client with OpenRouter client = OpenAI( base_url="https://openrouter.ai/api/v1", api_key=api_key, ) # Test request print("Sending test request to OpenRouter...") response = client.chat.completions.create( model="anthropic/claude-3.5-haiku", messages=[ {"role": "user", "content": "Say 'Hello from OpenRouter!' and nothing else."} ], max_tokens=50 ) print(f"Model: {response.model}") print(f"Response: {response.choices[0].message.content}") print(f"Usage: {response.usage.prompt_tokens} prompt, {response.usage.completion_tokens} completion") return response if __name__ == "__main__": main()