Documentation

RAG Server

📚 文档概述 文档类型: 运维手册 (Runbook) 服务名称: RAG Server (rag-server-svc-plus) 维护团队: Cloud-Neutral Toolkit Team 最后更新: 2026-01-25 版本: 1.0

📚 文档概述 文档类型: 运维手册 (Runbook) 服务名称: RAG Server (rag-server-svc-plus) 维护团队: Cloud-Neutral Toolkit Team 最后更新: 2026-01-25 版本: 1.0

🎯 服务概述 服务信息 服务名称: rag-server-svc-plus 部署平台: Google Cloud Run 区域: asia-northeast1 项目 ID: xzerolab-480008 服务 URL: https://rag-server-svc-plus-266500572462.asia-northeast1.run.app 代码仓库: https://github.com/cloud-neutral-toolkit/rag-server.svc.plus 服务功能 RAG (Retrieval-Augmented Generation) 服务器提供以下功能:

向量检索 (/api/rag/query) - 从知识库中检索相关文档 AI 问答 (/api/askai) - 使用 LLM 生成答案 文档索引 (/api/rag/upsert) - 向知识库添加文档 依赖服务 LLM Provider: NVIDIA AI (integrate.api.nvidia.com) 向量数据库: PostgreSQL with pgvector 认证服务: accounts-svc-plus 前端服务: console.svc.plus (Vercel) 🏗️ 架构说明 系统架构 用户 (https://www.svc.plus) ↓ Console Frontend (Vercel) ↓ Next.js API Routes (/api/askai, /api/rag/query) ↓ RAG Server (Cloud Run) ├─→ NVIDIA AI API (LLM) └─→ PostgreSQL (向量数据库) 配置文件结构 rag-server.svc.plus/ ├── config/ │ └── rag-server.yaml # 主配置文件 ├── api/ │ ├── askai.go # AI 问答端点 │ ├── rag.go # RAG 检索端点 │ └── register.go # 路由注册 ├── cmd/ │ └── rag-server/ │ └── main.go # 主程序入口 ├── Dockerfile # Docker 镜像构建 └── entrypoint.sh # 容器启动脚本 🚀 部署流程 标准部署流程

  1. 代码变更

克隆仓库

git clone https://github.com/cloud-neutral-toolkit/rag-server.svc.plus.git cd rag-server.svc.plus

创建功能分支

git checkout -b feature/your-feature-name

进行代码修改

... 编辑文件 ...

提交变更

git add . git commit -m "feat: your feature description" git push -u origin feature/your-feature-name 2. 创建 Pull Request 访问 GitHub 仓库 创建 PR: feature/your-feature-name → main 等待 CI/CD 检查通过 请求代码审查 合并到 main 分支 3. 部署到 Cloud Run 方式 A: 使用 gcloud CLI (推荐用于紧急修复)

cd /path/to/rag-server.svc.plus

部署到 Cloud Run

gcloud run deploy rag-server-svc-plus
--source .
--region asia-northeast1
--project xzerolab-480008
--platform managed
--allow-unauthenticated
--set-env-vars NVIDIA_API_KEY='your-api-key-here'

部署通常需要 3-5 分钟

方式 B: 通过 Cloud Build (自动化)

触发 Cloud Build

gcloud builds submit
--config cloudbuild.yaml
--project xzerolab-480008 环境变量配置 必需的环境变量:

NVIDIA_API_KEY=nvapi-xxx... # NVIDIA AI API 密钥 DATABASE_URL=postgres://... # PostgreSQL 连接字符串 POSTGRES_USER=postgres # 数据库用户名 POSTGRES_PASSWORD=xxx # 数据库密码 可选的环境变量:

PORT=8080 # 服务端口(Cloud Run 自动设置) LOG_LEVEL=info # 日志级别 (debug/info/warn/error) CONFIG_PATH=/etc/rag-server/rag-server.yaml # 配置文件路径 🔍 监控和日志 查看 Cloud Run 日志 使用 Google Cloud Console:

https://console.cloud.google.com/logs/query;query=resource.type%20%3D%20%22cloud_run_revision%22%0Aresource.labels.service_name%20%3D%20%22rag-server-svc-plus%22 使用 gcloud CLI:

查看最近 50 条日志

gcloud logging read
"resource.type=cloud_run_revision AND resource.labels.service_name=rag-server-svc-plus"
--limit 50
--project xzerolab-480008
--format json

实时查看日志

gcloud logging tail
"resource.type=cloud_run_revision AND resource.labels.service_name=rag-server-svc-plus"
--project xzerolab-480008 关键指标监控 请求成功率: 应该 > 95% 响应时间: P95 < 5s, P99 < 10s 错误率: < 5% 实例数量: 根据负载自动扩缩容 告警设置 建议设置以下告警:

错误率 > 10% 持续 5 分钟 P99 延迟 > 15s 持续 5 分钟 实例启动失败 配置文件加载失败 🐛 故障排查 常见问题和解决方案 问题 1: /api/askai 返回 500 错误 症状:

{ "error": "Post "": unsupported protocol scheme """, "config": {"timeout": 30, "retries": 3} } 原因: ConfigPath 配置错误,无法读取 LLM endpoint

解决方案:

检查 api/askai.go 中的 ConfigPath 变量 确保指向正确的配置文件: config/rag-server.yaml 验证配置文件中的 models.generator.endpoint 不为空 修复代码:

// api/askai.go var ConfigPath = filepath.Join("config", "rag-server.yaml") 问题 2: 数据库连接失败 症状:

postgres connect error: connection refused 排查步骤:

检查 DATABASE_URL 环境变量是否正确 验证 PostgreSQL 服务是否运行 检查网络连接和防火墙规则 如果使用 Stunnel,检查 TLS 隧道是否正常 解决方案:

测试数据库连接

psql "$DATABASE_URL"

检查 Stunnel 状态

ps aux | grep stunnel netstat -an | grep 5432 问题 3: NVIDIA API 调用失败 症状:

askai request failed: 401 Unauthorized 排查步骤:

验证 NVIDIA_API_KEY 环境变量是否设置 检查 API key 是否有效 确认 API quota 未超限 解决方案:

测试 NVIDIA API

curl -X POST https://integrate.api.nvidia.com/v1/chat/completions
-H "Authorization: Bearer $NVIDIA_API_KEY"
-H "Content-Type: application/json"
-d '{"model": "minimaxai/minimax-m2", "messages": [{"role": "user", "content": "test"}]}' 问题 4: 配置文件未找到 症状:

load config err: open config/rag-server.yaml: no such file or directory 排查步骤:

检查 Dockerfile 是否正确复制配置文件 验证 entrypoint.sh 是否正确设置配置路径 检查容器内文件系统 解决方案:

Dockerfile

COPY config/rag-server.yaml /etc/rag-server/rag-server.yaml

entrypoint.sh

CONFIG_FILE="${CONFIG_PATH:-/etc/rag-server/rag-server.yaml}" 调试命令

1. 检查服务状态

gcloud run services describe rag-server-svc-plus
--region asia-northeast1
--project xzerolab-480008

2. 测试健康检查

curl https://rag-server-svc-plus-266500572462.asia-northeast1.run.app/health

3. 测试 RAG 查询

curl -X POST https://rag-server-svc-plus-266500572462.asia-northeast1.run.app/api/rag/query
-H "Content-Type: application/json"
-d '{"question": "test"}'

4. 测试 AI 问答

curl -X POST https://rag-server-svc-plus-266500572462.asia-northeast1.run.app/api/askai
-H "Content-Type: application/json"
-d '{"question": "Hello"}'

5. 查看最新部署版本

gcloud run revisions list
--service rag-server-svc-plus
--region asia-northeast1
--project xzerolab-480008

6. 回滚到上一个版本

gcloud run services update-traffic rag-server-svc-plus
--to-revisions REVISION_NAME=100
--region asia-northeast1
--project xzerolab-480008 🔄 回滚流程 紧急回滚 如果新部署导致严重问题:

1. 列出所有版本

gcloud run revisions list
--service rag-server-svc-plus
--region asia-northeast1
--project xzerolab-480008

2. 回滚到上一个稳定版本

gcloud run services update-traffic rag-server-svc-plus
--to-revisions PREVIOUS_REVISION=100
--region asia-northeast1
--project xzerolab-480008

3. 验证回滚成功

curl https://rag-server-svc-plus-266500572462.asia-northeast1.run.app/health Git 回滚

回滚到上一个提交

git revert HEAD git push origin main

或者硬回滚(谨慎使用)

git reset --hard HEAD~1 git push -f origin main 📊 性能优化 配置优化建议 调整超时时间:

config/rag-server.yaml

api: askai: timeout: 100 # 秒 retries: 3 数据库连接池: vector_db: max_connections: 20 idle_timeout: 300s Cloud Run 资源配置: gcloud run services update rag-server-svc-plus
--memory 2Gi
--cpu 2
--max-instances 10
--min-instances 1
--region asia-northeast1 📝 维护检查清单 每日检查 查看错误日志,确认无异常 检查服务响应时间 验证 API 端点可访问性 每周检查 审查性能指标 检查资源使用情况 更新依赖包(如有安全更新) 每月检查 审查和优化配置 清理旧的 Cloud Run 版本 更新文档 🔐 安全最佳实践 API 密钥管理:

使用 Google Secret Manager 存储敏感信息 定期轮换 API 密钥 不要在代码中硬编码密钥 访问控制:

限制 Cloud Run 服务账号权限 使用 IAM 角色管理访问 启用 Cloud Armor 防护 数据安全:

使用 TLS 加密传输 启用数据库加密 定期备份数据 📞 联系信息 团队联系方式 技术负责人: [姓名] 运维团队: [邮箱] 紧急联系: [电话] 相关链接 GitHub: https://github.com/cloud-neutral-toolkit/rag-server.svc.plus Cloud Console: https://console.cloud.google.com/run/detail/asia-northeast1/rag-server-svc-plus 监控面板: [Monitoring Dashboard URL] 文档: [Documentation URL] 📚 相关文档 API 文档 配置指南 开发指南 故障排查指南 文档维护: 请在每次重大变更后更新此文档 审核周期: 每季度审核一次 版本历史: 见 Git 提交记录

Feedback

Is this page helpful?

XWorkmate

AI Assistant

XWorkmate 助手

当前目标:wss://openclaw.svc.plus