代码海洋AI代理聊天工具

一个基于Streamlit的聊天界面,通过Claude和MCP(模型上下文协议)驱动的AI代理与Code Ocean交互,提供代码管理、数据资产管理和计算工作流运行等功能。

  • by codeocean
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 codeocean/strands-agent-with-codeocean-mcp-server-and-streamlit-demo

使用说明

Code Ocean MCP客服聊天

一个极简主义的Streamlit聊天界面,用于通过由Claude和MCP(模型上下文协议)支持的AI代理与Code Ocean进行交互。

🚀 特性

  • 聊天界面:基于Streamlit的干净聊天UI,用于自然对话
  • 代码海洋集成:通过MCP直接访问Code Ocean的计算平台
  • AI 代理:克劳德动力助理,专门从事Code Ocean操作
  • 会话管理:具有会话清除功能的持久对话历史记录
  • 工具集成:搜索、运行和管理胶囊、数据资产和计算

📋 先决条件

  • Python 3.11或更高版本
  • 具有API访问权限的Code Ocean帐户
  • 无烟煤API键

🛠️ 安装

1.安装uv(Python包管理器)

pip install uv

2.同步依赖关系

uv sync

⚙️ 环境变量

# Anthropic API Key for Claude
ANTRHROPIC_API_KEY=your_anthropic_api_key_here

# Code Ocean Configuration
CODEOCEAN_DOMAIN=your_codeocean_domain
CODEOCEAN_TOKEN=your_codeocean_token

获取API密钥:

  1. 无烟煤API密钥:

  2. Code Ocean证书:

    • 登录您的Code Ocean帐户
    • 导航到帐户设置→ API
    • 生成新的API令牌
    • 使用您的Code Ocean域名(例如。, mycompany.codeocean.com)

📁 项目结构

├── code/
│   ├── agent.py           # Main agent configuration and setup
│   ├── model.py           # Anthropic Claude model configuration
│   ├── mcps.py           # Code Ocean MCP client setup
│   └── streamlit_app.py  # Streamlit chat interface
├── scratch/              # Session storage directory
├── pyproject.toml        # Project dependencies
├── uv.lock              # Dependency lock file
└── README.md            # This file

📚 文件描述

code/agent.py

  • 目的:核心代理设置和配置
  • 关键功能:
    • get_agent():使用新会话创建新代理实例
  • 特性:
    • 基于文件存储的会话管理
    • 滑动窗口对话记忆(10条消息)
    • 与Code Ocean工具和Claude模型集成

code/model.py

  • 目的:仿人克劳德模型配置
  • 配置:
    • 型号: claude-sonnet-4-20250514
    • 最大令牌数:4096
    • 环境变量中的API键

code/mcps.py

  • 目的:Code Ocean MCP(模型上下文协议)客户端设置
  • 特性:
    • 连接到Code Ocean MCP服务器
    • 提供用于胶囊和数据资产管理的工具
    • 需要 uvx 和 codeocean-mcp-server

code/streamlit_app.py

  • 目的:基于Web的聊天界面
  • 特性:
    • 带有消息历史记录的干净聊天界面
    • 新用户欢迎说明
    • 清晰的聊天功能
    • 带有加载指示器的实时代理响应

🚀 用法

1.启动Streamlit应用程序

cd code
streamlit run streamlit_app.py

2.访问界面

打开浏览器 http://localhost:8501 (或终端中显示的URL)

3.与Aqua聊天

AI助手可以帮助您:

  • 🔍 搜索胶囊和数据资产
  • ▶️ 运行计算工作流
  • 📊 管理和创建数据资产
  • 📁 下载并分析结果

4.命令示例

试着问Aqua:

  • “列出我最近的胶囊”
  • “搜索与机器学习相关的数据资产”
  • “使用我的数据集运行capsule XYZ”
  • “显示ABC计算的结果”

添加新依赖项

uv add package-name

更新依赖关系

uv sync --upgrade

🐛 故障排除

常见问题:

  1. MCP连接错误:确保 uvx 已安装和 codeocean-mcp-server 可用的
  2. API关键问题:验证环境变量是否设置正确
  3. 导入错误:运行 uv sync 确保所有依赖项都已安装

调试模式:

运行Streamlit应用程序时检查终端输出,以获取详细的错误消息。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

[在此处添加您的许可证信息]

📞 支持

关于以下问题:


内置于❤️ 使用Streamlit、Claude和Code Ocean MCP