使用说明
项目简介
本项目是一个基于Amazon Bedrock构建的文档问答聊天机器人,核心特色在于集成了 Model Context Protocol (MCP) 服务器。通过MCP,聊天机器人能够访问外部服务,例如获取当前日期和时间、进行网页搜索等,从而扩展了语言模型的上下文信息和功能。
主要功能点
- 文档问答: 基于上传的文档内容进行问答,支持多种文档格式 (PDF, DOC, DOCX, PPT, PPTX, TXT, MD, HTML, CSV, XLS, XLSX)。
- MCP 服务集成:
- 日期/时间服务: 提供当前日期和时间信息。
- Google 搜索服务: 通过 Google Custom Search API 提供网页搜索功能,获取实时信息。
- 多种运行模式:
- 基本模式: 提供基础的文档问答功能。
- MCP 模式: 激活日期/时间服务和 Google 搜索服务,增强对话能力。
- Reasoning 模式: 利用 Claude 3.7 Sonnet 的高级推理能力,提升复杂问题解决效果(Temperature 固定为 1.0,Top-K/Top-P 禁用)。
- Streamlit Web UI: 提供用户友好的 Web 界面,方便文档上传和聊天交互。
- 模型参数可调: 允许用户调整 Temperature, Top-P, Top-K, Max Token, Memory Window 等模型参数。
安装步骤
-
克隆仓库
git clone https://github.com/jesamkim/simple-bedrock-chatbot.git cd simple-bedrock-chatbot -
创建并激活虚拟环境 (可选)
python3 -m venv venv source venv/bin/activate # Linux/Mac -
安装依赖
cd claude-3-7 pip install -r requirements.txt -U -
配置 AWS 凭证和 Google API 密钥
- 确保已配置 AWS CLI 或设置 AWS 环境变量 ('AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_DEFAULT_REGION=us-west-2'),以便访问 Amazon Bedrock 服务。
- 获取 Google Custom Search API 密钥和引擎 ID,并设置为环境变量 ('GOOGLE_API_KEY', 'GOOGLE_SEARCH_ENGINE_ID')。
服务器配置
MCP 服务器集成在项目中,默认通过 'mcp.py' 启动,并使用 stdio 进行通信。MCP 客户端无需单独配置服务器地址,只需在 MCP 模式 下运行 'app.py' 即可自动启用 MCP 功能。
MCP 客户端配置示例 (JSON 格式,仅供参考,无需手动配置):
{ "serverName": "simple-bedrock-chatbot-mcp-server", "command": "python", "args": ["mcp.py"], "transport": "stdio", "protocol": "json-rpc" }
参数说明:
- 'serverName': MCP 服务器名称,用于标识。
- 'command': 启动 MCP 服务器的命令,这里使用 'python'。
- 'args': 启动命令的参数,指定执行 'mcp.py' 文件。
- 'transport': 通信传输协议,这里使用 'stdio' (标准输入输出)。
- 'protocol': 通信协议,这里使用 'json-rpc'。
基本使用方法
-
启动 Streamlit 应用
streamlit run app.py --server.port 8080 -
访问 Web 界面 在浏览器中打开 'http://localhost:8080'。
-
选择运行模式 在 Web 界面的侧边栏选择 MCP 模式 或 Reasoning 模式 以体验 MCP 服务或模型推理增强功能。选择 基本模式 则为普通聊天机器人。
-
上传文档 (可选) 在侧边栏的 "Document Upload" 区域上传文档,支持多种文件格式。
-
开始聊天 在聊天输入框中输入问题,与聊天机器人进行交互。在 MCP 模式 下,可以体验到日期/时间查询和网页搜索功能。
信息
分类
网页与API