mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
Some checks failed
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
* ♻️ refactor(llm): 重构 LLM 服务架构,引入中间件与组件化适配器 - 【重构】LLM 服务核心架构: - 引入中间件管道,统一处理请求生命周期(重试、密钥选择、日志、网络请求)。 - 适配器重构为组件化设计,分离配置映射、消息转换、响应解析和工具序列化逻辑。 - 移除 `with_smart_retry` 装饰器,其功能由中间件接管。 - 移除 `LLMToolExecutor`,工具执行逻辑集成到 `ToolInvoker`。 - 【功能】增强配置系统: - `LLMGenerationConfig` 采用组件化结构(Core, Reasoning, Visual, Output, Safety, ToolConfig)。 - 新增 `GenConfigBuilder` 提供语义化配置构建方式。 - 新增 `LLMEmbeddingConfig` 用于嵌入专用配置。 - `CommonOverrides` 迁移并更新至新配置结构。 - 【功能】强化工具系统: - 引入 `ToolInvoker` 实现更灵活的工具执行,支持回调与结构化错误。 - `function_tool` 装饰器支持动态 Pydantic 模型创建和依赖注入 (`ToolParam`, `RunContext`)。 - 平台原生工具支持 (`GeminiCodeExecution`, `GeminiGoogleSearch`, `GeminiUrlContext`)。 - 【功能】高级生成与嵌入: - `generate_structured` 方法支持 In-Context Validation and Repair (IVR) 循环和 AutoCoT (思维链) 包装。 - 新增 `embed_query` 和 `embed_documents` 便捷嵌入 API。 - `OpenAIImageAdapter` 支持 OpenAI 兼容的图像生成。 - `SmartAdapter` 实现模型名称智能路由。 - 【重构】消息与类型系统: - `LLMContentPart` 扩展支持更多模态和代码执行相关内容。 - `LLMMessage` 和 `LLMResponse` 结构更新,支持 `content_parts` 和思维链签名。 - 统一 `LLMErrorCode` 和用户友好错误消息,提供更详细的网络/代理错误提示。 - `pyproject.toml` 移除 `bilireq`,新增 `json_repair`。 - 【优化】日志与调试: - 引入 `DebugLogOptions`,提供细粒度日志脱敏控制。 - 增强日志净化器,处理更多敏感数据和长字符串。 - 【清理】删除废弃模块: - `zhenxun/services/llm/memory.py` - `zhenxun/services/llm/executor.py` - `zhenxun/services/llm/config/presets.py` - `zhenxun/services/llm/types/content.py` - `zhenxun/services/llm/types/enums.py` - `zhenxun/services/llm/tools/__init__.py` - `zhenxun/services/llm/tools/manager.py` * 📦️ build(deps): 移除 bilireq 并添加 json_repair 依赖 * 🐛 (llm): 移除图片生成模型能力预检查 * ♻️ refactor(llm.session): 重构记忆系统以分离存储和策略 * 🐛 fix(reload_setting): 重载配置时清除LLM缓存 * ✨ feat(llm): 支持结构化生成函数接收 UniMessage * ✨ feat(search): 为搜索功能默认启用 Gemini Google Search 工具 * 🚨 auto fix by pre-commit hooks --------- Co-authored-by: webjoin111 <455457521@qq.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
121 lines
2.5 KiB
Python
121 lines
2.5 KiB
Python
"""
|
|
LLM 服务模块 - 公共 API 入口
|
|
|
|
提供统一的 AI 服务调用接口、核心类型定义和模型管理功能。
|
|
"""
|
|
|
|
from .api import (
|
|
chat,
|
|
code,
|
|
create_image,
|
|
embed,
|
|
embed_documents,
|
|
embed_query,
|
|
generate,
|
|
generate_structured,
|
|
search,
|
|
)
|
|
from .config import (
|
|
CommonOverrides,
|
|
GenConfigBuilder,
|
|
LLMGenerationConfig,
|
|
register_llm_configs,
|
|
)
|
|
|
|
register_llm_configs()
|
|
from .api import ModelName
|
|
from .manager import (
|
|
clear_model_cache,
|
|
get_cache_stats,
|
|
get_global_default_model_name,
|
|
get_model_instance,
|
|
list_available_models,
|
|
list_embedding_models,
|
|
list_model_identifiers,
|
|
set_global_default_model_name,
|
|
)
|
|
from .memory import (
|
|
AIConfig,
|
|
BaseMemory,
|
|
MemoryProcessor,
|
|
set_default_memory_backend,
|
|
)
|
|
from .session import AI
|
|
from .tools import RunContext, ToolInvoker, function_tool, tool_provider_manager
|
|
from .types import (
|
|
EmbeddingTaskType,
|
|
LLMContentPart,
|
|
LLMErrorCode,
|
|
LLMException,
|
|
LLMMessage,
|
|
LLMResponse,
|
|
ModelDetail,
|
|
ModelInfo,
|
|
ModelProvider,
|
|
ResponseFormat,
|
|
TaskType,
|
|
ToolCategory,
|
|
ToolMetadata,
|
|
UsageInfo,
|
|
)
|
|
from .types.models import (
|
|
GeminiCodeExecution,
|
|
GeminiGoogleSearch,
|
|
GeminiUrlContext,
|
|
)
|
|
from .utils import create_multimodal_message, message_to_unimessage, unimsg_to_llm_parts
|
|
|
|
__all__ = [
|
|
"AI",
|
|
"AIConfig",
|
|
"BaseMemory",
|
|
"CommonOverrides",
|
|
"EmbeddingTaskType",
|
|
"GeminiCodeExecution",
|
|
"GeminiGoogleSearch",
|
|
"GeminiUrlContext",
|
|
"GenConfigBuilder",
|
|
"LLMContentPart",
|
|
"LLMErrorCode",
|
|
"LLMException",
|
|
"LLMGenerationConfig",
|
|
"LLMMessage",
|
|
"LLMResponse",
|
|
"MemoryProcessor",
|
|
"ModelDetail",
|
|
"ModelInfo",
|
|
"ModelName",
|
|
"ModelProvider",
|
|
"ResponseFormat",
|
|
"RunContext",
|
|
"TaskType",
|
|
"ToolCategory",
|
|
"ToolInvoker",
|
|
"ToolMetadata",
|
|
"UsageInfo",
|
|
"chat",
|
|
"clear_model_cache",
|
|
"code",
|
|
"create_image",
|
|
"create_multimodal_message",
|
|
"embed",
|
|
"embed_documents",
|
|
"embed_query",
|
|
"function_tool",
|
|
"generate",
|
|
"generate_structured",
|
|
"get_cache_stats",
|
|
"get_global_default_model_name",
|
|
"get_model_instance",
|
|
"list_available_models",
|
|
"list_embedding_models",
|
|
"list_model_identifiers",
|
|
"message_to_unimessage",
|
|
"register_llm_configs",
|
|
"search",
|
|
"set_default_memory_backend",
|
|
"set_global_default_model_name",
|
|
"tool_provider_manager",
|
|
"unimsg_to_llm_parts",
|
|
]
|