mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-26 21:39:43 +02:00
Merge pull request #391 from unitagain/feature/chinese-llm-support
feat: add Chinese LLM providers support with auto-fill API Base URL
This commit is contained in:
commit
c99469bfdf
9 changed files with 565 additions and 5 deletions
|
|
@ -79,6 +79,10 @@ class ChatType(str, Enum):
|
|||
|
||||
|
||||
class LiteLLMProvider(str, Enum):
|
||||
"""
|
||||
Enum for LLM providers supported by LiteLLM.
|
||||
LiteLLM 支持的 LLM 提供商枚举。
|
||||
"""
|
||||
OPENAI = "OPENAI"
|
||||
ANTHROPIC = "ANTHROPIC"
|
||||
GROQ = "GROQ"
|
||||
|
|
@ -102,6 +106,11 @@ class LiteLLMProvider(str, Enum):
|
|||
ALEPH_ALPHA = "ALEPH_ALPHA"
|
||||
PETALS = "PETALS"
|
||||
COMETAPI = "COMETAPI"
|
||||
# Chinese LLM Providers (OpenAI-compatible) / 国产 LLM 提供商(OpenAI 兼容)
|
||||
DEEPSEEK = "DEEPSEEK" # DeepSeek
|
||||
ALIBABA_QWEN = "ALIBABA_QWEN" # 阿里通义千问
|
||||
MOONSHOT = "MOONSHOT" # 月之暗面 (Kimi)
|
||||
ZHIPU = "ZHIPU" # 智谱 AI (GLM)
|
||||
CUSTOM = "CUSTOM"
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1070,6 +1070,7 @@ async def process_file_in_background(
|
|||
},
|
||||
)
|
||||
except Exception as e:
|
||||
await session.rollback()
|
||||
await task_logger.log_task_failure(
|
||||
log_entry,
|
||||
f"Failed to process file: {filename}",
|
||||
|
|
|
|||
|
|
@ -83,11 +83,11 @@ async def get_user_llm_instance(
|
|||
)
|
||||
return None
|
||||
|
||||
# Build the model string for litellm
|
||||
# Build the model string for litellm / 构建 LiteLLM 的模型字符串
|
||||
if llm_config.custom_provider:
|
||||
model_string = f"{llm_config.custom_provider}/{llm_config.model_name}"
|
||||
else:
|
||||
# Map provider enum to litellm format
|
||||
# Map provider enum to litellm format / 将提供商枚举映射为 LiteLLM 格式
|
||||
provider_map = {
|
||||
"OPENAI": "openai",
|
||||
"ANTHROPIC": "anthropic",
|
||||
|
|
@ -99,6 +99,11 @@ async def get_user_llm_instance(
|
|||
"AZURE_OPENAI": "azure",
|
||||
"OPENROUTER": "openrouter",
|
||||
"COMETAPI": "cometapi",
|
||||
# Chinese LLM providers (OpenAI-compatible) / 国产 LLM(OpenAI 兼容)
|
||||
"DEEPSEEK": "openai", # DeepSeek uses OpenAI-compatible API
|
||||
"ALIBABA_QWEN": "openai", # Qwen uses OpenAI-compatible API
|
||||
"MOONSHOT": "openai", # Moonshot (Kimi) uses OpenAI-compatible API
|
||||
"ZHIPU": "openai", # Zhipu (GLM) uses OpenAI-compatible API
|
||||
# Add more mappings as needed
|
||||
}
|
||||
provider_prefix = provider_map.get(
|
||||
|
|
|
|||
|
|
@ -73,6 +73,16 @@ class TaskLoggingService:
|
|||
Returns:
|
||||
Log: The updated log entry
|
||||
"""
|
||||
# Ensure session is in a valid state / 确保 session 处于有效状态
|
||||
if not self.session.is_active:
|
||||
await self.session.rollback()
|
||||
|
||||
# Refresh log_entry to avoid expired state / 刷新 log_entry 避免过期状态
|
||||
try:
|
||||
await self.session.refresh(log_entry)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Update the existing log entry
|
||||
log_entry.status = LogStatus.SUCCESS
|
||||
log_entry.message = message
|
||||
|
|
@ -114,6 +124,17 @@ class TaskLoggingService:
|
|||
Returns:
|
||||
Log: The updated log entry
|
||||
"""
|
||||
# Ensure session is in a valid state / 确保 session 处于有效状态
|
||||
if not self.session.is_active:
|
||||
await self.session.rollback()
|
||||
|
||||
# Refresh log_entry to avoid expired state / 刷新 log_entry 避免过期状态
|
||||
try:
|
||||
await self.session.refresh(log_entry)
|
||||
except Exception:
|
||||
# If refresh fails, the object might be detached / 如果刷新失败,对象可能已分离
|
||||
pass
|
||||
|
||||
# Update the existing log entry
|
||||
log_entry.status = LogStatus.FAILED
|
||||
log_entry.level = LogLevel.ERROR
|
||||
|
|
@ -161,6 +182,16 @@ class TaskLoggingService:
|
|||
Returns:
|
||||
Log: The updated log entry
|
||||
"""
|
||||
# Ensure session is in a valid state / 确保 session 处于有效状态
|
||||
if not self.session.is_active:
|
||||
await self.session.rollback()
|
||||
|
||||
# Refresh log_entry to avoid expired state / 刷新 log_entry 避免过期状态
|
||||
try:
|
||||
await self.session.refresh(log_entry)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
log_entry.message = progress_message
|
||||
|
||||
if progress_metadata:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue