Files
DevGen/devgen/providers/openrouter.py
T

43 lines
1.4 KiB
Python

from openai import OpenAI
class OpenrouterProvider:
"""Generates content using OpenRouter (OpenAI-compatible API)."""
BASE_URL = "https://openrouter.ai/api/v1"
def generate(
self, prompt: str, api_key: str, model: str = "openai/gpt-3.5-turbo", **kwargs
) -> str:
"""Generates a response using OpenRouter."""
if not api_key:
raise ValueError(
"OpenRouter API key is missing. "
"Set it via `devgen setup config` or pass --api-key."
)
try:
client = OpenAI(
base_url=self.BASE_URL,
api_key=api_key,
)
# Remove debug from kwargs if present
kwargs.pop("debug", None)
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
extra_headers={
"HTTP-Referer": "https://github.com/S4NKALP/devgen", # Optional
"X-Title": "devgen CLI", # Optional
},
**kwargs,
)
return response.choices[0].message.content.strip()
except Exception as e:
raise RuntimeError(
f"OpenRouter request failed: {e}. "
"Verify the model id (e.g. `openai/gpt-4o`) and your API key credits."
) from e