# multi-llm-app **Repository Path**: ourstars/multi-llm-app ## Basic Information - **Project Name**: multi-llm-app - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-30 - **Last Updated**: 2026-02-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 📘 多厂商大模型服务系统 —— 基于 LangChain + 插件化 Vendor 架构 版本:1.0 最后更新:2026 年 1 月 作者:AI 工程团队 🌟 项目概述 本项目是一个轻量级、可扩展、配置驱动的大语言模型(LLM)统一接入平台,支持 OpenAI、Anthropic(Claude)、通义千问(Qwen)、Moonshot(月之暗面) 等主流厂商模型,通过插件化设计实现“一次开发,多端部署”。 ✅ 核心特性 特性 说明 厂商解耦 每个 LLM 厂商作为独立 Vendor 插件,互不影响 按需依赖 仅安装所需厂商 SDK,避免冗余包 双 Web 框架 同时支持 Gradio(快速演示) 和 FastAPI(生产 API) LangChain 集成 支持 Simple Chain 与 Chat-with-Memory 对话链 安全密钥管理 通过 .env 文件隔离敏感信息 跨平台部署 支持 Conda 环境、Docker 容器、本地运行 📁 项目结构 │── core/ │ ├── __init__.py │ │ │ ├── model/ # ← 动态管理厂商(原 VendorManager 升级) │ │ ├── __init__.py │ │ ├── registry.py # 支持 runtime 切换模型(如 A/B 测试) │ │ └── factory.py # 返回统一 LLM 接口(非 LangChain 原生) │ │ │ ├── prompt/ # ← 动态管理提示词(原 PromptManager 升级) │ │ ├── __init__.py │ │ ├── manager.py # 支持热加载、版本、A/B │ │ └── templates/ # .yaml / .jinja2 │ │ │ ├── chain/ # ← 调用链管理(非简单 Chain,而是“任务模板”) │ │ ├── __init__.py │ │ ├── base.py # Chain 接口 │ │ ├── chat_chain.py # 普通对话 │ │ ├── rag_chain.py # RAG 链 │ │ └── agent_chain.py # Agent 执行链 │ │ │ ├── memory/ # ← 历史记忆(会话 + 长期) │ │ ├── __init__.py │ │ ├── short_term.py # 对话历史(HistoryManager) │ │ └── long_term.py # 向量记忆 / 用户画像 │ │ │ └── context/ # ← 上下文融合器(关键!) │ └── builder.py # 自动组合:history + RAG docs + user profile │ │── workflows/ # ← 新增:业务流程编排 │ ├── __init__.py │ ├── base.py # Workflow 基类 │ ├── financial_analysis.py # 财报分析流程 │ ├── web_research.py # 网络调研流程 │ └── customer_support.py # 客服流程 │ ├── tools/ # ← 工具 │ ├── __init__.py │ ├── llm.py │ └── vector.py ├── config/ # ← 配置文件 └── app/ # ← 触发 workflow 🛠️ 安装与部署 方式一:Conda 环境(推荐开发) 1. 创建环境 conda create -n multi-llm python=3.11 -y conda activate multi-llm conda env create -f environment.yml 2. 配置 .env 和 vendors.yaml 3. 启动 python main.py --mode gradio 4. 环境导出(Windows) conda activate multi-llm conda env export --no-builds > environment.yml 然后手动删除最后一行 "prefix: ..." 🧪 使用方式 Gradio 模式(交互式 UI) python main.py 访问:http://localhost:7860 FastAPI 模式(REST API) python main.py - API 文档:http://localhost:8000/docs 🔒 安全与维护 事项 建议 密钥管理 永远不要提交 .env;生产环境使用环境变量注入 依赖更新 定期 pip list --outdated 检查 LLM SDK 更新 厂商扩展 新增厂商只需实现 LLMVendor 抽象类并注册到 vendors.yaml 日志监控 在 vendor_manager.py 中添加异常日志记录 gradio, fastapi 双 Web 框架 💡 所有依赖均按需安装,最小化攻击面。 🚀 优势总结 - 灵活:动态配置启用模型,无需改代码 - 轻量:只安装所需依赖,镜像/环境体积小 - 专业:遵循 LangChain 最佳实践 - 可维护:清晰的模块划分,新人 10 分钟上手 - 可扩展:轻松接入新厂商(如 DeepSeek、Ollama)