天气预测聊天接口

Sheerwater Chat是一个为天气预测基准测试平台提供的Web聊天界面,连接sheerwater-mcp以让LLMs访问预测评估工具。

  • by rhiza-research
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 rhiza-research/sheerwater-chat

使用说明

Sheerwater聊天

Web聊天界面 透明的水 天气预报基准平台。连接到 sheerwater mcp 为LLM提供预测评估工具。

建筑

User ──▶ Ingress (nginx) ──▶ sheerwater-chat ──▶ sheerwater-mcp (via Tailscale)
              │                     │                      │
              │                     ▼                      ▼
              │                 Anthropic API         Sheerwater / Nuthatch
              │                     │                   (GCS buckets)
              ▼                     ▼
          Keycloak (OIDC)      SQLite (PVC)
  • 认证:Keycloak OIDC(带PKCE的机密客户端)
  • LLM:Anthropic Claude API,通过此服务器代理
  • 主控程序:通过SSE连接到sheerwater mcp以供工具使用
  • 存储:SQLite在一个持久的VolumeClaim上用于聊天历史记录

本地开发

Docker Compose(推荐)

启动整个堆栈:Keycloak、sheerwater mcp和sheerwater chat。

# Set your Anthropic API key
export ANTHROPIC_API_KEY=sk-...

docker compose up

然后打开http://localhost:8080.Keycloak管理员在http://localhost:8180(管理员/管理员)。

组合文件挂载 src/ 用于实时重新加载,并使用预配置的Keycloak领域(keycloak/realm.json).

没有Docker

uv sync --dev
pre-commit install

启动sheerwater mcp服务器:

cd ../sheerwater-mcp
uv run sheerwater-mcp --transport sse --port 8000

启动聊天服务器:

uv run sheerwater-chat

配置

变量 描述 默认值
KEYCLOAK_URL 密钥斗篷服务器URL(内部) --
KEYCLOAK_PUBLIC_URL 浏览器重定向的Keycloak URL --
KEYCLOAK_REALM 密钥斗篷领域名称 --
KEYCLOAK_CLIENT_ID OAuth客户端ID --
KEYCLOAK_CLIENT_SECRET OAuth客户端机密 --
MCP_SERVER_URL sheerwater mcp服务器的URL http://localhost:8000
ANTHROPIC_API_KEY 无烟煤API密钥 -
SECRET_KEY 会话签名机密 --
DATABASE_URL SQLite或PostgreSQL URL sqlite:///./sheerwater_chat.db
BASE_URL 应用程序基本URL http://localhost:8080

部署

通过ArgoCD部署到rhiza GKE集群。

  • 命名空间: sheerwater-chat (由Terraform拥有——在应用程序部署之前,机密必须存在)
  • Helm图表: chart/
  • 容器图片: ghcr.io/rhiza-research/sheerwater-chat (由GitHub Actions基于推送构建) main)
  • 秘密:Terraform创建了一个K8s秘密(sheerwater-chat-secrets)包含 KEYCLOAK_CLIENT_SECRET, ANTHROPIC_API_KEY,以及 SECRET_KEY
  • 入口:通过带TLS的nginx入口公开

基础设施(在 基础设施 回购)

  • terraform/20-gke-cluster/sheerwater-chat.tf --命名空间、机密、ArgoCD应用程序
  • terraform/20-gke-cluster/dns-sheerwater.tf --DNS记录
  • terraform/modules/keycloak/main.tf --Keycloak OIDC客户端注册