UPDATE
This commit is contained in:
+21
-8
@@ -1,7 +1,5 @@
|
||||
"""
|
||||
Adapter Pattern برای API providers — سوئیچ بین GapGPT و Avalai
|
||||
تنظیمات فعلی: GapGPT بهعنوان provider اصلی
|
||||
Avalai بهعنوان fallback نگه داشته شده.
|
||||
Adapter Pattern برای API providers — سوئیچ بین GapGPT، Avalai و ArvanCloud AI.
|
||||
"""
|
||||
import logging
|
||||
import os
|
||||
@@ -20,22 +18,37 @@ def _mask_secret(value: str | None) -> str:
|
||||
return "****"
|
||||
return f"{value[:4]}...{value[-4:]}"
|
||||
|
||||
|
||||
def _get_env_or_value(env_var: str | None, direct_value: str | None) -> str | None:
|
||||
if env_var:
|
||||
return os.environ.get(env_var) or direct_value
|
||||
return direct_value
|
||||
|
||||
|
||||
def get_embedding_client(config: RAGConfig | None = None) -> OpenAI:
|
||||
"""
|
||||
ساخت کلاینت OpenAI برای Embedding بر اساس provider فعال.
|
||||
provider از config.embedding.provider خوانده میشود: "gapgpt" یا "avalai"
|
||||
provider از config.embedding.provider خوانده میشود.
|
||||
"""
|
||||
cfg = config or load_rag_config()
|
||||
emb = cfg.embedding
|
||||
logger.info("embedding provider=%s", emb.provider)
|
||||
provider = emb.provider or "gapgpt"
|
||||
logger.info("embedding provider=%s", provider)
|
||||
|
||||
if emb.provider == "avalai":
|
||||
if provider == "avalai":
|
||||
env_var = emb.avalai_api_key_env or emb.api_key_env or "AVALAI_API_KEY"
|
||||
api_key = os.environ.get(env_var)
|
||||
api_key = _get_env_or_value(env_var, emb.avalai_api_key or emb.api_key)
|
||||
base_url = emb.avalai_base_url or emb.base_url or "https://api.avalai.ir/v1"
|
||||
elif provider == "arvancloud":
|
||||
env_var = emb.arvancloud_api_key_env or "ARVANCLOUD_EMBEDDING_API_KEY"
|
||||
api_key = _get_env_or_value(env_var, emb.arvancloud_api_key)
|
||||
base_url = (
|
||||
emb.arvancloud_base_url
|
||||
or "https://arvancloudai.ir/gateway/models/Bge-m3/rBA2PgcTC2sfhXwamupI4NvQ8crddUGTYXOsuKVye91PoNuGhbRgpHHNY8sMHBVQWWerZSAi4a0AijUL6YBqY9EW-Y1LhW_0ec6Mxr85GQy41lXiV6M8Od4mvLIeDF-wLRUHIervod0O5ZqGj2MOX8z1zdUpXkCrIS2uDjHlfHBZofledZjsOVDmFZU7IYfvkA__ljQqNeKXSFgpwUR7SmsbRUXGTDB2moLdeRq9zBpQIw/v1"
|
||||
)
|
||||
else:
|
||||
env_var = emb.api_key_env or "GAPGPT_API_KEY"
|
||||
api_key = os.environ.get(env_var)
|
||||
api_key = _get_env_or_value(env_var, emb.api_key)
|
||||
base_url = emb.base_url or "https://api.gapgpt.app/v1"
|
||||
logger.info(
|
||||
"embedding base_url=%s api_key=%s",
|
||||
|
||||
Reference in New Issue
Block a user