feat: add OpenRouter support and configuration options

- Introduced OpenRouter as a new provider option in settings and environment configuration.
- Updated README.md to include instructions for using OpenRouter.
- Enhanced the message converter to support reasoning content for OpenRouter.
- Added tests for OpenRouter provider functionality and message conversion.
- Updated dependencies to include OpenRouterProvider.
This commit is contained in:
Alishahryar1 2026-02-15 10:50:53 -08:00
parent 2d72dc7304
commit e5a096049d
13 changed files with 788 additions and 24 deletions

View file

@ -35,14 +35,26 @@ def get_provider() -> BaseProvider:
)
_provider = NvidiaNimProvider(config)
logger.info("Provider initialized: %s", settings.provider_type)
elif settings.provider_type == "open_router":
from providers.open_router import OpenRouterProvider
config = ProviderConfig(
api_key=settings.open_router_api_key,
base_url="https://openrouter.ai/api/v1",
rate_limit=settings.open_router_rate_limit,
rate_window=settings.open_router_rate_window,
nim_settings=settings.nim,
)
_provider = OpenRouterProvider(config)
logger.info("Provider initialized: %s", settings.provider_type)
else:
logger.error(
"Unknown provider_type: '%s'. Supported: 'nvidia_nim'",
"Unknown provider_type: '%s'. Supported: 'nvidia_nim', 'open_router'",
settings.provider_type,
)
raise ValueError(
f"Unknown provider_type: '{settings.provider_type}'. "
f"Supported: 'nvidia_nim'"
f"Supported: 'nvidia_nim', 'open_router'"
)
return _provider