Add provider abstraction for Gemini, Claude, and OpenAI backends
This commit is contained in:
parent
02aefedaa7
commit
98ab11fac6
15
routeforge/gateway.py
Normal file
15
routeforge/gateway.py
Normal file
@ -0,0 +1,15 @@
|
||||
"""Single-endpoint gateway that fans requests out to whichever backend
|
||||
provider is configured."""
|
||||
|
||||
from .providers import PROVIDERS
|
||||
|
||||
|
||||
class Gateway:
|
||||
def __init__(self, default_provider="gemini"):
|
||||
self.default_provider = default_provider
|
||||
|
||||
def route(self, provider_name=None):
|
||||
provider_name = provider_name or self.default_provider
|
||||
if provider_name not in PROVIDERS:
|
||||
raise ValueError(f"unknown provider: {provider_name}")
|
||||
return PROVIDERS[provider_name]
|
||||
17
routeforge/providers.py
Normal file
17
routeforge/providers.py
Normal file
@ -0,0 +1,17 @@
|
||||
"""Provider adapters for RouteForge."""
|
||||
|
||||
|
||||
class Provider:
|
||||
def __init__(self, name, base_url):
|
||||
self.name = name
|
||||
self.base_url = base_url
|
||||
|
||||
def complete(self, prompt):
|
||||
raise NotImplementedError("wire up a real backend client here")
|
||||
|
||||
|
||||
PROVIDERS = {
|
||||
"gemini": Provider("gemini", "https://generativelanguage.googleapis.com"),
|
||||
"claude": Provider("claude", "https://api.anthropic.com"),
|
||||
"openai": Provider("openai", "https://api.openai.com"),
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user