Add provider abstraction for Gemini, Claude, and OpenAI backends

This commit is contained in:
Priya Natarajan 2026-02-05 14:02:00 +00:00
parent 02aefedaa7
commit 98ab11fac6
2 changed files with 32 additions and 0 deletions

15
routeforge/gateway.py Normal file
View 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
View 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"),
}