mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
4.0 KiB
4.0 KiB
SQLBot Agent 指南
SQLBot 让业务用户用自然语言提问,基于已配置的数据源生成并安全执行 SQL,返回数据、图表、分析和后续问题建议。领域词汇表见 CONTEXT.md。
仓库结构
| 路径 | 职责 |
|---|---|
backend/ |
Python 3.11 / FastAPI / SQLModel 后端。main.py 组装应用、MCP、中间件、静态资源和 xpack;业务域在 apps/,共享代码在 common/,迁移在 alembic/versions/,全部测试(含仓库守卫)在 tests/。 |
frontend/ |
Vue 3、TypeScript strict、Vite、Pinia、Vue Router 和 Element Plus。请求在 src/api/,共享实体在 src/entity/,状态在 src/stores/,路由在 src/router/,UI 在 src/views/ 和 src/components/。 |
g2-ssr/ |
Node.js 图表渲染服务,使用 @antv/g2-ssr;图表实现位于 charts/,目录内有独立 AGENTS.md。 |
installer/ |
离线安装、卸载、配置模板和服务控制脚本。 |
Dockerfile*、docker-compose.yaml、start.sh |
容器组装和运行时进程启动。 |
商业扩展源码维护在独立仓库 dataease/sqlbot-xpack。它不是 submodule,也不是本仓库的固定子目录。本地 sqlbot-xpack/ checkout 会被主仓库忽略,永远不应出现在本仓库 PR 中。
xpack 工作流
默认使用开源版 SQLBot 工作流:把 sqlbot-xpack 视为版本范围由 backend/pyproject.toml 约束的已发布 wheel(精确版本冻结在不入库的 uv.lock)。不读取、不修改本地 xpack checkout。
只有任务确实需要修改或调试闭源 xpack 代码,或需要两个仓库联动验证时,才按 docs/agents/xpack.md 检查本地关联开关(AGENTS.local.env)并协调两个仓库的变更。
按需文档
| 触发条件 | 必读文档 |
|---|---|
| 修改业务逻辑、数据模型(SQLModel)、权限、Chat 问题流程、助手集成、前端信息架构,或需要命名和领域术语 | CONTEXT.md |
| 修改后端业务代码 | docs/agents/backend.md |
| 修改前端代码 | docs/agents/frontend.md |
| 修改或新增测试、执行验证 | docs/agents/testing.md |
| 修改用户可见文案或新增语言 | docs/agents/i18n.md |
| 修改认证、授权、SQL 执行、上传/下载、嵌入协议或前端渲染安全 | docs/agents/security.md |
| 修改 SQLModel 模型或 Alembic 迁移 | docs/agents/migrations.md |
| 修改 Dockerfile、installer、GitHub Actions 或发布产物 | docs/agents/packaging.md |
| 修改或调试闭源 xpack 代码、双仓库联动验证 | docs/agents/xpack.md |
| 修改图表渲染服务、后端图表配置或图表字段/输出契约 | g2-ssr/AGENTS.md |
| 领域边界仍不明确 | docs/agents/domain-open-questions.md,并向使用者确认 |
全局硬规则
- 在正确仓库检查 status/diff;SQLBot 主仓库和 xpack 独立仓库不要混出同一个提交。
- 不要提交日志、构建产物、
.env值、密钥、本地路径、私有 registry 配置或生成的 xpack 产物。 - 提交信息和 PR 描述不添加
Co-Authored-By、"Generated with" 等任何 AI 工具署名行。 - 提交信息沿用仓库既有 conventional 风格:
fix:、feat:、refactor:等前缀(可带 scope),单行概述。 - 不要为了通过测试削弱安全守卫;安全、权限、SQL、Host、路径和嵌入认证改动必须有相关回归验证。
- 修改 Docker、installer 或路径配置时,核对前端构建产物、后端工作目录、
/opt/sqlbot数据目录、图表输出和日志挂载仍然一致。 - 依赖、lockfile 和版本号只在任务明确需要时更新;不要顺手刷新。
- 验证以构建和测试为准;除非用户明确要求,不构建 Docker 镜像、不启动完整运行栈。
- 除非用户明确要求,不要上传、发布或推送镜像 / wheel / 包。
- 变更涉及本文件或
docs/agents/描述的约定(目录职责、命令、流程)时,同步更新对应文档。