AWS Bedrock多模型聊天应用

一个功能丰富的聊天界面,支持AWS Bedrock基础模型的多模态输入、推理模式和可选的MCP工具调用。

  • by terrificdm
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 terrificdm/bedrock-streamlit-chat-mcp

使用说明

AWS Bedrock Foundation模型的Streamlit聊天应用程序

AWS基岩基础模型的功能丰富的聊天界面,支持多模式输入、推理模式和可选的MCP(模型上下文协议)工具调用。

🚀 快速开始

先决条件

  • 具有Bedrock访问权限的有效AWS凭据
  • Python 3.8+

安装

# Clone the repository
git clone <repo-url>
cd <repo-folder>

# Install dependencies
pip install -r requirements.txt

# Run the application
streamlit run bedrock_streamlit_converseAPI.py

✨ 特性

  • 多模型支持:亚马逊新星、拟人克劳德、DeepSeek、Qwen模特
  • 多模式能力:文本、图像、文档和视频(取决于型号)
  • 推理模式:Claude和Qwen模型的扩展思维
  • 可配置参数:温度、top-p、top-k、最大标记
  • AWS凭证管理:环境变量、共享凭据或手动输入
  • 跨区域支持:美国地区推断概况
  • MCP集成 (可选):使用外部服务调用工具

📝 配置

添加新模型

只需编辑 models_config.json -无需更改代码:

"Your Model Name": {
  "model_id": "your.model.id",
  "max_tokens": 4096,
  "supports_multimodal": true,
  "supports_video": false,
  "supports_reasoning": false,
  "supports_tools": true,
  "top_k_max": 500,
  "model_family": "your_family",
  "supports_top_k": true,
  "supports_top_p": true
}

保存后,模型将自动出现在UI下拉列表中。

配置文件

  • models_config.json -模型定义和功能
  • config_manager.py -配置管理实用程序
  • mcp.json -MCP服务器配置(可选,见下文)

🔧 MCP集成(可选)

通过以下方式启用工具调用功能 模型上下文协议(MCP) 让AI与外部服务交互。

设置

  1. 复制示例配置:

    cp mcp.json.example mcp.json
    
  2. 编辑 mcp.json 使用您的服务器配置(请参阅 mcp.json.example 详细示例)

  3. 安装uv (适用于本地服务器):

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  4. 重新启动应用程序 加载MCP服务器

连接类型

  • 标准 (本地):命令行服务器-必需 command + args
  • 超文本传输协议 (远程):HTTP服务器-需要 url (建议远程使用)
  • SSE (远程):服务器发送事件-需要 url + "connection_type": "sse" (遗产)

用法

配置后,自然提问:

  • “在GitHub上搜索Python存储库”
  • “阅读AWS S3存储桶策略文档”

AI会自动选择并使用适当的工具。在侧边栏中查看服务器状态。

资源: MCP文件 | 可用服务器

📋 重要提示

  • AWS凭据:使用标准boto3证书链(环境变量 或 共享凭据文件).您还可以通过UI手动提供凭据。
  • 跨区域推断:对于美国地区概况,确保首先在这些地区启用模型访问。
  • 主控程序:可选功能-该应用程序在没有标准聊天功能的情况下可以完美运行。
  • 文件支持:图像、文档和视频理解取决于模型功能。

📸 截图

📁 项目结构

├── bedrock_streamlit_converseAPI.py  # Main application
├── config_manager.py                 # Configuration management
├── models_config.json                # Model definitions
├── mcp_client.py                     # MCP client (optional)
├── mcp_config.py                     # MCP configuration (optional)
├── tool_handler.py                   # Tool execution (optional)
├── stream_tools_sync.py              # Streaming with tools (optional)
├── asyncio_loop_manager.py           # Async event loop (optional)
├── archived/                         # Legacy implementations
└── utils/                            # UI assets

包括文件在内的所有代码均由 基罗 基于 基岩streamlit聊天库