Files

1 line
2.8 KiB
JSON

{"repo": "ayushap18/verigen-ai", "files": {"dashboard/providers.py": {"71646abf73a73b46cdf5f0ecc202d5ba6c7a3434": {"t": 1785674549.3600624, "n": 2413, "h": "c64d5115d9833ede", "c": "\"\"\"AI provider configurations: endpoints, models, and pricing.\"\"\"\n\nPROVIDERS = {\n \"gemini\": {\n \"label\": \"Google Gemini\",\n \"base_url\": \"https://generativelanguage.googleapis.com/v1beta/openai/\",\n \"key_env\": \"GEMINI_API_KEY\",\n \"key_prefix\": \"AIza\",\n \"models\": [\n \"gemini-2.5-flash\",\n \"gemini-2.5-pro\",\n \"gemini-2.0-flash\",\n \"gemini-2.0-flash-lite\",\n ],\n \"pricing\": {\n \"gemini-2.5-flash\": {\"cost_per_1m_in\": 0.15, \"cost_per_1m_out\": 0.60},\n \"gemini-2.5-pro\": {\"cost_per_1m_in\": 1.25, \"cost_per_1m_out\": 10.00},\n \"gemini-2.0-flash\": {\"cost_per_1m_in\": 0.10, \"cost_per_1m_out\": 0.40},\n \"gemini-2.0-flash-lite\": {\"cost_per_1m_in\": 0.075, \"cost_per_1m_out\": 0.30},\n },\n },\n \"openai\": {\n \"label\": \"OpenAI\",\n \"base_url\": \"https://api.openai.com/v1\",\n \"key_env\": \"OPENAI_API_KEY\",\n \"key_prefix\": \"sk-\",\n \"models\": [\n \"gpt-4o\",\n \"gpt-4o-mini\",\n \"gpt-4.1-nano\",\n \"gpt-4.1-mini\",\n ],\n \"pricing\": {\n \"gpt-4o\": {\"cost_per_1m_in\": 2.50, \"cost_per_1m_out\": 10.00},\n \"gpt-4o-mini\": {\"cost_per_1m_in\": 0.15, \"cost_per_1m_out\": 0.60},\n \"gpt-4.1-nano\": {\"cost_per_1m_in\": 0.10, \"cost_per_1m_out\": 0.40},\n \"gpt-4.1-mini\": {\"cost_per_1m_in\": 0.40, \"cost_per_1m_out\": 1.60},\n },\n },\n \"grok\": {\n \"label\": \"xAI Grok\",\n \"base_url\": \"https://api.x.ai/v1\",\n \"key_env\": \"XAI_API_KEY\",\n \"key_prefix\": \"xai-\",\n \"models\": [\n \"grok-3-mini\",\n \"grok-3\",\n ],\n \"pricing\": {\n \"grok-3-mini\": {\"cost_per_1m_in\": 0.30, \"cost_per_1m_out\": 0.50},\n \"grok-3\": {\"cost_per_1m_in\": 3.00, \"cost_per_1m_out\": 15.00},\n },\n },\n}\n\nDEFAULT_PRICING = {\"cost_per_1m_in\": 0.50, \"cost_per_1m_out\": 2.00}\n\n\ndef get_provider(name: str) -> dict | None:\n return PROVIDERS.get(name)\n\n\ndef get_pricing(provider_name: str, model_name: str) -> dict:\n provider = PROVIDERS.get(provider_name)\n if not provider:\n return DEFAULT_PRICING\n return provider[\"pricing\"].get(model_name, DEFAULT_PRICING)\n\n\ndef provider_names() -> list[str]:\n return list(PROVIDERS.keys())\n\n\ndef provider_labels() -> list[str]:\n return [p[\"label\"] for p in PROVIDERS.values()]\n"}}}}