Rancher聊天代理
一个基于人工智能的聊天代理,允许您使用自然语言查询和用于MCP的Databricks Managed MCP服务器与您的copula数据进行交互。该应用程序提供了一个命令行界面和一个由Chainlit支持的基于web的UI。
特性
- 🤖 数据的自然语言查询
- 🔒 使用Azure托管身份进行安全身份验证
- 💬 两个界面:CLI和基于web的(Chainlit)
- 🔄 实时SQL查询执行
- 📊 带有对话历史记录的格式化查询结果
先决条件
- Python 3.10或更高版本
- 紫外线 (Python包安装程序)
- Node.js和npm(用于MCP远程)
- 配置了托管身份的Azure OpenAI访问
- 带有个人访问令牌的copula工作区
安装
- 克隆仓库
git clone
cd - 安装uv (如果尚未安装)
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"- 使用uv安装依赖项
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -r requirements.txt- 安装MCP远程
npm install -g @modelcontextprotocol/remote配置
- 复制环境模板
cp .env.example .env- 更新
.env将您的凭据归档
# Azure OpenAI Configuration
AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-4.1
AZURE_OPENAI_API_VERSION=2024-08-01-preview
# Databricks Configuration
DATABRICKS_URL=https://your-workspace.databricks.com
DATABRICKS_TOKEN=your-databricks-token-here- 配置Azure身份验证
此应用程序使用Azure托管身份进行身份验证。确保您拥有:
- Azure CLI已安装并通过身份验证(az login) - Azure OpenAI资源的适当权限 - 或者在启用了托管身份的Azure环境中运行
用法
命令行界面
运行交互式CLI代理:
uv run app.py然后,您可以用自然语言询问有关copula数据的问题:
You: Show me all catalogs
Agent: [Lists available catalogs]
You: What tables are in the main schema?
Agent: [Shows tables in the main schema]类型 exit 或 quit 结束会议。
Web界面(Chainlit)
启动Chainlit web应用程序:
uv run chainlit run chainlit_app.py然后打开浏览器 http://localhost:8000 通过web UI与代理交互。
项目结构
.
├── app.py # CLI-based chat agent
├── chainlit_app.py # Chainlit web-based chat agent
├── chainlit.md # Chainlit welcome screen
├── .env.example # Environment variables template
├── .gitignore # Git ignore rules
├── requirements.txt # Python dependencies
└── README.md # This file运作原理
代理人使用:
- Azure OpenAI:用于自然语言理解和响应生成
- LangGraph:用于构建代理的推理流
- MCP(模型上下文协议):用于连接到copula
- copula SQL:用于执行只读查询
工作流程:
- 用户用自然语言提问
- 代理分析问题并确定需要哪些数据
- 代理程序使用MCP对ViewModel执行SQL查询
- 结果被格式化并呈现给用户
- 为上下文保留对话历史记录
安全说明
- 永远不要承诺你的
.env文件到版本控制 - 在生产环境中使用Azure托管身份
- copula令牌应具有所需的最小权限
- 为了安全起见,代理只执行只读SQL查询
发展
利用紫外线进行开发
# Create a virtual environment
uv venv
# Activate it
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
uv pip install -r requirements.txt
# Add a new dependency
uv pip install
# Update requirements.txt
uv pip freeze > requirements.txt以开发模式运行
对于开发过程中的自动重新加载:
uv run chainlit run chainlit_app.py --watch故障排除
身份验证问题
- 确保您已使用Azure CLI登录:
az login - 验证您的帐户是否可以访问Azure OpenAI资源
- 检查Azure OpenAI端点和部署名称是否正确
copula连接问题
- 验证copula URL是否正确(没有尾随斜线)
- 确保ViewModel令牌有效并且具有必要的权限
- 检查
mcp-remote已正确安装:npm list -g @modelcontextprotocol/remote
缺失依赖项
- 确保已安装Node.js和npm
- 重新安装MCP遥控器:
npm install -g @modelcontextprotocol/remote
贡献
欢迎投稿!请随时提交拉取请求。
许可证
麻省理工学院
致谢
- 内置于 LangGraph
- 由...驱动 Azure OpenAI
- UI由 Chainlit
- MCP Anthropic
