The debug argument is used internally by devgen but is not accepted by the OpenAI API client. This change filters it out from kwargs before the API call to prevent TypeError.
37 lines
1.2 KiB
Python
37 lines
1.2 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 required.")
|
|
|
|
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 generation failed: {e}")
|