Skip to content

Commit

Permalink
fixed the Base URL usage issue in Podcast Generator tool verification (
Browse files Browse the repository at this point in the history
  • Loading branch information
XiaoLey authored Nov 14, 2024
1 parent 15f341b commit fbb9c1c
Showing 1 changed file with 8 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from typing import Any

import openai
from yarl import URL

from core.tools.errors import ToolProviderCredentialValidationError
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
Expand All @@ -10,20 +11,24 @@ class PodcastGeneratorProvider(BuiltinToolProviderController):
def _validate_credentials(self, credentials: dict[str, Any]) -> None:
tts_service = credentials.get("tts_service")
api_key = credentials.get("api_key")
base_url = credentials.get("openai_base_url")

if not tts_service:
raise ToolProviderCredentialValidationError("TTS service is not specified")

if not api_key:
raise ToolProviderCredentialValidationError("API key is missing")

if base_url:
base_url = str(URL(base_url) / "v1")

if tts_service == "openai":
self._validate_openai_credentials(api_key)
self._validate_openai_credentials(api_key, base_url)
else:
raise ToolProviderCredentialValidationError(f"Unsupported TTS service: {tts_service}")

def _validate_openai_credentials(self, api_key: str) -> None:
client = openai.OpenAI(api_key=api_key)
def _validate_openai_credentials(self, api_key: str, base_url: str | None) -> None:
client = openai.OpenAI(api_key=api_key, base_url=base_url)
try:
# We're using a simple API call to validate the credentials
client.models.list()
Expand Down

0 comments on commit fbb9c1c

Please sign in to comment.