| 196 | return OpenAI(api_key=api_key, base_url=self.base_url) |
| 197 | |
| 198 | def init_async_client(self): |
| 199 | api_key = self._api_key or os.getenv(self._env_api_key_name) |
| 200 | if not api_key: |
| 201 | raise ValueError( |
| 202 | f"Environment variable {self._env_api_key_name} must be set" |
| 203 | ) |
| 204 | return AsyncOpenAI(api_key=api_key, base_url=self.base_url) |
| 205 | |
| 206 | # def _parse_chat_completion(self, completion: ChatCompletion) -> "GeneratorOutput": |
| 207 | # # TODO: raw output it is better to save the whole completion as a source of truth instead of just the message |