32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Optional
|
|
|
|
from agentui.providers.adapters.base import ProviderAdapter, default_base_url_for as _default_base_url_for
|
|
from agentui.providers.adapters.openai import OpenAIAdapter
|
|
try:
|
|
from agentui.providers.adapters.gemini import GeminiAdapter, GeminiImageAdapter
|
|
except Exception:
|
|
GeminiAdapter = None # type: ignore
|
|
GeminiImageAdapter = None # type: ignore
|
|
try:
|
|
from agentui.providers.adapters.claude import ClaudeAdapter
|
|
except Exception:
|
|
ClaudeAdapter = None # type: ignore
|
|
|
|
|
|
def get_adapter(provider: str) -> Optional[ProviderAdapter]:
|
|
p = (provider or "").strip().lower()
|
|
if p == "openai":
|
|
return OpenAIAdapter()
|
|
if p == "gemini" and GeminiAdapter:
|
|
return GeminiAdapter() # type: ignore[operator]
|
|
if p == "gemini_image" and GeminiImageAdapter:
|
|
return GeminiImageAdapter() # type: ignore[operator]
|
|
if p == "claude" and ClaudeAdapter:
|
|
return ClaudeAdapter() # type: ignore[operator]
|
|
return None
|
|
|
|
|
|
def default_base_url_for(vendor: str) -> Optional[str]:
|
|
return _default_base_url_for(vendor) |