基于 Streamlit 构建的综合性 AI 应用平台

张开发
2026/4/8 9:33:52 15 分钟阅读

分享文章

基于 Streamlit 构建的综合性 AI 应用平台
Qwen AI Multi-Modal Application一个基于 Streamlit 构建的综合性 AI 应用平台集成多种大语言模型、视觉模型和 RAG检索增强生成能力提供聊天对话、文件分析、图像理解、代码审查等多种 AI 功能。 项目概述本项目是一个容器化的 AI 应用解决方案通过统一的用户界面集成了多个主流 AI 服务提供商的能力包括大语言模型: Qwen、DeepSeek、Kimi、智谱 GLM 等向量数据库: Milvus、Qdrant视觉模型: yolo26 系列检测、分割、分类、姿态估计MCP 工具集成: 天气、新闻、代码统计、地图等服务✨ 核心功能1. 多模型聊天对话功能模块说明OpenRouter接入 Qwen3.6-plus 免费模型SiliconFlow使用 Qwen3-8B 进行对话Kimi 文件分析支持多种格式文档上传与分析2. RAG 知识库问答基于 LangChain 实现的检索增强生成系统向量存储: 支持 Milvus云原生和 Qdrant嵌入模型: BAAI/bge-m3SiliconFlow压缩检索: LLMChainExtractor 上下文压缩会话管理: 支持多轮对话历史3. 图像理解与生成功能模型说明图像思考GLM-4.1v-thinking-flash上传图片进行分析解读图像生成Kwai-Kolors/Kolors文生图功能yolo26yolo26n 系列目标检测、实例分割、分类、姿态估计4. 代码智能审查上传代码文件AI 自动分析潜在问题并提供优化建议支持语言Java、Python、Go、Vue、TypeScript、SQL 等智能识别不规范代码、潜在 Bug、性能问题改进建议提供具体的修改示例5. MCP 工具集成chat_mcp_run.py通过 Model Context Protocol 集成外部服务和风天气: 实时天气查询新闻服务器: 最新资讯获取Wakatime: 编程时间统计百度地图: 地理位置服务SQL 数据库: 自然语言查询数据库️ 技术架构┌─────────────────────────────────────────────────────────┐ │ Streamlit UI Layer │ ├─────────────────────────────────────────────────────────┤ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │ │ Chat │ │ RAG │ │ Image │ │ Coder │ │ │ │ Module │ │ Module │ │ Module │ │ Module │ │ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ └───────┼────────────┼────────────┼────────────┼─────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────┐ │ LangChain Orchestration Layer │ │ - Chains Agents - Memory Management │ │ - Document Loaders - Text Splitters │ └─────────────────────────────────────────────────────────┘ │ │ │ │ ▼ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Vector DBs │ │ LLM APIs │ │ Vision │ │ - Milvus │ │ - Qwen │ │ - yolo26 │ │ - Qdrant │ │ - DeepSeek │ │ - GLM-V │ │ │ │ - Kimi │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ 依赖栈Python 核心依赖streamlit # Web 应用框架 openai # OpenAI 兼容客户端 ultralytics # yolo26 视觉模型 langchain # AI 应用编排 langchain_openai # OpenAI 集成 langchain_community # 社区组件 langchain_qdrant # Qdrant 向量库 langchain_milvus # Milvus 向量库 langchain-mcp-adapters # MCP 协议适配器 python-dotenv # 环境变量管理 pymysql # MySQL 数据库驱动 loguru # 日志记录 dtale # 数据探索 beautifulsoup4 # HTML 解析 motor # MongoDB 异步驱动 unstructured[docx] # 文档解析模型文件文件名用途yolo26n.pt目标检测yolo26n-seg.pt实例分割yolo26n-cls.pt图像分类yolo26n-pose.pt姿态估计 快速开始Docker 部署推荐# 构建并启动容器docker-composeup--build# 后台运行docker-composeup-d--build访问地址http://localhost:5000本地开发# 安装依赖pipinstall-rrequirements.txt# 设置环境变量可选exportOPENAI_API_KEYyour_api_keyexportOPENAI_BASE_URLhttps://api.siliconflow.cn/v1exportOPENAI_MODELQwen/Qwen3-8B# 启动应用streamlit run main.py--server.port80--server.address0.0.0.0⚙️ 配置说明环境变量变量名说明默认值BASE_URLAPI 基础地址https://api.siliconflow.cn/v1API_KEYAPI 密钥-MODEL_NAME模型名称Qwen/Qwen3-8BDocker 配置services:qwen-web:hostname:qwen-webimage:qwen-webports:-5000:5000deploy:resources:limits:memory:1024Mlogging:driver:json-fileoptions:max-size:10mmax-file:1 项目结构qwen/ ├── main.py # 主应用入口 ├── chat_mcp_run.py # MCP 工具集成应用 ├── sql_run.py # SQL Agent 应用 ├── run.py # 启动脚本集合 ├── docker-compose.yml # Docker 编排配置 ├── Dockerfile # 容器镜像定义 ├── requirements.txt # Python 依赖 ├── .env # 环境变量配置 ├── templates/ │ ├── index.html # Web 模板 │ └── result.html # 结果展示模板 ├── yolo26n*.pt # YOLO 模型权重 ├── server.pem # SSL 证书 ├── server-key.pem # SSL 私钥 └── .streamlit/ └── config.toml # Streamlit 配置 高级用法LangSmith 追踪项目已集成 LangSmith 用于调试和监控os.environ[LANGCHAIN_TRACING_V2]trueos.environ[LANGCHAIN_ENDPOINT]https://api.smith.langchain.comos.environ[LANGCHAIN_API_KEY]your_langsmith_keyos.environ[LANGCHAIN_PROJECT]test自定义向量数据库连接Milvus (Zilliz Cloud):frompymilvusimportMilvusClient clientMilvusClient(urihttps://your-cluster.cloud.zilliz.com,tokenyour_token)Qdrant Cloud:fromqdrant_clientimportQdrantClient clientQdrantClient(urlhttps://your-cluster.aws.cloud.qdrant.io:6333,api_keyyour_api_key) 性能优化请求限流: 使用InMemoryRateLimiter控制 API 调用频率流式响应: 所有 LLM 调用均采用 streaming 模式日志轮转: Docker 日志限制为 10MB单文件保留内存限制: 容器内存上限 1GB 安全建议⚠️生产环境注意事项:将 API 密钥移至环境变量不要硬编码在代码中启用 HTTPS准备 SSL 证书配置适当的 CORS 策略定期更新依赖包以修复安全漏洞对用户上传的文件进行安全检查

更多文章