Spaces:
Sleeping
Sleeping
| from typing import Dict, Any, List, Optional, AsyncGenerator | |
| import os | |
| import json | |
| from .provider import ModelInfo, Message, StreamChunk, ToolCall | |
| from .openai import OpenAIProvider | |
| class BlabladorProvider(OpenAIProvider): | |
| def __init__(self, api_key: Optional[str] = None): | |
| super().__init__(api_key=api_key or os.environ.get("BLABLADOR_API_KEY")) | |
| self._base_url = "https://api.helmholtz-blablador.fz-juelich.de/v1" | |
| def id(self) -> str: | |
| return "blablador" | |
| def name(self) -> str: | |
| return "Blablador" | |
| def models(self) -> Dict[str, ModelInfo]: | |
| return { | |
| "alias-large": ModelInfo( | |
| id="alias-large", | |
| name="Blablador Large", | |
| provider_id="blablador", | |
| context_limit=32768, | |
| output_limit=4096, | |
| supports_tools=True, | |
| supports_streaming=True, | |
| cost_input=0.0, | |
| cost_output=0.0, | |
| ), | |
| "alias-fast": ModelInfo( | |
| id="alias-fast", | |
| name="Blablador Fast", | |
| provider_id="blablador", | |
| context_limit=8192, | |
| output_limit=2048, | |
| supports_tools=True, | |
| supports_streaming=True, | |
| cost_input=0.0, | |
| cost_output=0.0, | |
| ), | |
| } | |
| def _get_client(self): | |
| if self._client is None: | |
| try: | |
| from openai import AsyncOpenAI | |
| self._client = AsyncOpenAI(api_key=self._api_key, base_url=self._base_url) | |
| except ImportError: | |
| raise ImportError("openai package is required. Install with: pip install openai") | |
| return self._client | |