构建一个基于人工智能的多模态MCP聊天机器人
这个项目展示了如何构建一个能够与文档、图片和视频进行交互的现代聊天机器人。通过利用Jac独特的编程范式,你将开发出一个具备高级功能的多模态人工智能助手。
特点/功能
- 多模态交互与PDF文件、文本文件、图片和视频进行聊天。
- 情境感知响应搜索文档并提供相关答案。
- 网络搜索集成使用实时网络搜索回答一般问题。
- AI Vision(人工智能视觉)理解并讨论图片和视频。
- 智能查询路由自动将问题路由到专门的人工智能处理程序。
学习目标
- 对象空间编程(OSP)使用Jac的node-walker架构来组织你的应用程序。
- 平均类型化编程(MTP)启用人工智能自动分类和路由用户查询。
- 模型上下文协议(MCP)构建模块化、可重用的AI工具。
- 多模态人工智能开发在一个应用程序中处理文本、图像和视频。
所用技术
- Jac 语言核心应用逻辑。
- Jac Cloud(人名,可译为“雅克·克劳德”或根据具体语境保留原名)后端服务器基础设施。
- Streamlit(注:这是一个专有名词,通常直接音译,不进行意译,表示一个用于创建数据应用的开源框架)用户友好的网页界面。
- ChromaDB(注:此为一个假设或特定上下文中的名称,直接翻译为“色度数据库”或根据具体上下文可能有更贴切的译名,但在此仅提供直译)文档搜索与存储。
- OpenAI GPTAI聊天和视觉功能。
- Serper API实时网页搜索。
项目结构
client.jac用于聊天和文件上传的网页界面。server.jac使用对象空间编程的主要应用程序逻辑。server.impl.jac实施细节如下:server.jac。mcp_server.jac用于文档和网页搜索的工具服务器。mcp_client.jac工具通信接口。tools.jac文档处理和搜索逻辑。
安装说明
先决条件
- Python 3.12 或更高版本。
- OpenAI和Serper的API密钥。
安装
- 安装所需的软件包:
pip install jaclang jac-cloud jac-streamlit byllm langchain langchain-community langchain-openai langchain-chroma chromadb openai pypdf tiktoken requests mcp[cli] anyio- 设置环境变量:
export OPENAI_API_KEY=
export SERPER_API_KEY=运行应用程序
- 启动工具服务器:
jac run mcp_server.jac- 启动主应用程序:
jac serve server.jac- 启动网页界面:
jac streamlit client.jac访问网页界面于 http://localhost:8501。
使用方法
- 注册并登录 使用网页界面。
- 上传文件PDF文件、文本文件、图片或视频。
- 开始聊天就您上传的内容或一般话题提出问题。
故障排除
- 确保所有依赖项均已安装且兼容。
- 验证API密钥是否设置正确。
- 检查服务器日志中的错误。
- 确保服务在其各自的端口上运行。
扩展聊天机器人功能
- 添加对新文件类型的支持(例如,音频、电子表格)。
- 集成更多工具(例如,天气API、数据库连接)。
- 提升用于特定任务的人工智能模型。
- 实现结合关键词搜索和语义搜索的混合搜索功能。
- 为特定领域的查询创建自定义聊天节点。
API 端点
POST /user/register创建一个新用户账户。POST /user/login登录并获取访问令牌。POST /walker/upload_file上传文件(需要认证)。POST /walker/interact与AI聊天(需要验证)。
访问 http://localhost:8000/docs 查看完整API文档。
