构建一个基于检索增强生成(RAG)的人力资源聊天机器人,用于提供工作场所规则信息,以本地MCP服务器作为函数调用中心。 <img src="images/rag.jpg" width="500"> <img src="images/mcp-architecture.png" width="500">
本项目实现了一个使用Streamlit和MCP服务器的检索增强生成(RAG)聊天机器人。用户可以上传PDF文件,聊天机器人从这些PDF中检索相关信息来回答自然语言问题。该系统利用了OpenAI模型、LangChain工具以及内存向量存储来进行高效的文档检索。
MCP工具集成:
使用MCP进行工具编排,确保文档索引、检索和答案生成之间的顺畅通信。随着新功能的添加,后端工具可以轻松扩展或替换。
PDF上传与解析:
上传一个PDF文件,然后使用PDFPlumberLoader解析以提取文本内容。
文本分块:
提取的文本使用RecursiveCharacterTextSplitter分割成更小的块,以便于高效索引和检索。
文档索引:
文档块被索引到内存向量存储中,嵌入通过OpenAIEmbeddings生成。
相似性搜索(余弦相似度):
当用户提交查询时,聊天机器人执行相似性搜索,根据查询检索最相关的文档块。
基于提示的答案生成:
自定义提示模板结合用户问题和检索到的上下文,由GPT-4驱动的语言模型(使用ChatOpenAI)生成最终答案。
交互界面:
应用程序使用Streamlit提供一个交互式的类似聊天的界面,显示用户的问题和机器人的响应。