feat: enhance agent orchestration, knowledge flow and UI refinements

This commit is contained in:
2026-03-29 20:31:13 +08:00
parent d85cb9cf35
commit e0fe3ca623
301 changed files with 1197804 additions and 7863 deletions

View File

@@ -99,46 +99,55 @@ async def update_scheduler_config(user_id: str, config: dict, db: AsyncSession)
async def test_llm_connection(
provider: str,
provider: str | None,
model: str,
base_url: str,
api_key: str
api_key: str,
) -> dict:
"""测试 LLM 连接"""
try:
# base_url-first: provider 可省略
from app.services.llm_service import normalize_provider_name
effective_provider = normalize_provider_name({
"provider": provider,
"model": model,
"base_url": base_url,
})
# 根据不同 provider 创建临时 LLM 实例并测试
if provider == "openai":
if effective_provider in {"openai", "custom", "minimax", "kimi", "qwen"}:
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
api_key=api_key,
model=model,
base_url=base_url or None,
timeout=30
timeout=30,
)
elif provider == "claude":
elif effective_provider == "claude":
from langchain_anthropic import ChatAnthropic
llm = ChatAnthropic(
api_key=api_key,
model=model,
timeout=30
timeout=30,
)
elif provider == "ollama":
elif effective_provider == "ollama":
from langchain_ollama import ChatOllama
llm = ChatOllama(
base_url=base_url or "http://localhost:11434",
model=model,
timeout=30
timeout=30,
)
elif provider == "deepseek":
elif effective_provider == "deepseek":
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
api_key=api_key,
model=model,
base_url=base_url or "https://api.deepseek.com/v1",
timeout=30
timeout=30,
)
else:
return {"success": False, "error": f"不支持的 provider: {provider}"}
return {"success": False, "error": f"不支持的 endpoint/provider: {effective_provider}"}
# 简单测试调用
from langchain_core.messages import HumanMessage