Merge pull request #1122 from pipecat-ai/mb/openai-org-id

Add organization and project level auth in OpenAILLMService
This commit is contained in:
Mark Backman
2025-01-31 14:35:26 -05:00
committed by GitHub
2 changed files with 11 additions and 2 deletions

View File

@@ -41,6 +41,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed
- Added `organization` and `project` level authentication to
`OpenAILLMService`.
- Improved the language checking logic in `ElevenLabsTTSService` and
`ElevenLabsHttpTTSService` to properly handle language codes based on model
compatibility, with appropriate warnings when language codes cannot be

View File

@@ -116,6 +116,8 @@ class BaseOpenAILLMService(LLMService):
model: str,
api_key=None,
base_url=None,
organization=None,
project=None,
params: InputParams = InputParams(),
**kwargs,
):
@@ -131,12 +133,16 @@ class BaseOpenAILLMService(LLMService):
"extra": params.extra if isinstance(params.extra, dict) else {},
}
self.set_model_name(model)
self._client = self.create_client(api_key=api_key, base_url=base_url, **kwargs)
self._client = self.create_client(
api_key=api_key, base_url=base_url, organization=organization, project=project, **kwargs
)
def create_client(self, api_key=None, base_url=None, **kwargs):
def create_client(self, api_key=None, base_url=None, organization=None, project=None, **kwargs):
return AsyncOpenAI(
api_key=api_key,
base_url=base_url,
organization=organization,
project=project,
http_client=DefaultAsyncHttpxClient(
limits=httpx.Limits(
max_keepalive_connections=100, max_connections=1000, keepalive_expiry=None