67922c589a68fa353b97fae2d27732452bdc90dd
All checks were successful
CI / verify (push) Successful in 45s
AI Customer Service
AI customer service service focused on secure webhook ingress, dialog routing, handoff ticket flow, auditability, and platform adapter delivery.
当前仓库已经从 monorepo 独立拆出,适合作为单独服务持续演进,不再与 立交桥 主仓共享日常开发节奏。
当前状态
- 已具备最小客服主链:
webhook -> session -> intent -> reply/handoff -> ticket -> audit - 已具备 PostgreSQL 持久化、migration、health、HMAC webhook 安全校验
- 已具备
Sub2API第一版平台适配:- 平台入口
- 平台事件 outbox
- callback worker
- retry / dead letter
- integration / e2e 覆盖
NewAPI当前仍是同构占位 profile,返回501 profile not implemented
快速开始
前置要求
- Go
1.22+ - PostgreSQL
- 可选:本地测试库
host=localhost port=5434 user=ai_cs password=ai_cs_secret dbname=ai_customer_service sslmode=disable
本地运行
最小内存模式:
AI_CS_RUNTIME_ENV=test \
go run ./cmd/ai-customer-service
PostgreSQL 模式:
AI_CS_RUNTIME_ENV=development \
AI_CS_POSTGRES_ENABLED=true \
AI_CS_POSTGRES_DSN="host=localhost port=5434 user=ai_cs password=ai_cs_secret dbname=ai_customer_service sslmode=disable" \
AI_CS_POSTGRES_MIGRATION_DIR="./db/migration" \
go run ./cmd/ai-customer-service
平台适配层示例配置:
cp .env.platform-adapters.example .env.platform-adapters.local
常用命令
make test
make run
go test ./... -count=1 -p 1
go test -race ./... -p 1
go vet ./...
目录结构
| 路径 | 说明 |
|---|---|
cmd/ai-customer-service |
服务启动入口 |
internal/app |
应用装配、server、worker 启动 |
internal/http |
路由、handler、中间件 |
internal/service/dialog |
主对话链路 |
internal/platformadapter |
平台入口适配器 |
internal/service/platformevents |
平台事件构建 |
internal/service/platformdelivery |
callback signer / worker |
internal/store/postgres |
PostgreSQL 持久化实现 |
db/migration |
schema migration |
docs/ |
runbook、review、上线门禁、验证记录 |
prd/ |
产品范围、SLA、流程约束 |
test/ |
integration / e2e 测试 |
核心接口
基础 webhook:
POST /api/v1/customer-service/webhookPOST /api/v1/customer-service/webhook/{channel}
平台入口:
POST /api/v1/customer-service/platforms/sub2api/webhook- 后续预留:
POST /api/v1/customer-service/platforms/newapi/webhook
健康检查:
GET /actuator/healthGET /actuator/health/liveGET /actuator/health/ready
配置
真实配置契约以这里为准:
如果要做平台联调,先看:
发布与验证
当前推荐的验证顺序:
go test ./... -count=1 -p 1go test -race ./... -p 1go vet ./...bash -n scripts/verify_preprod_gate_b.shbash -n scripts/verify_gate_c_rollback.sh
灰度与回滚相关文档:
协作约定
- 提交使用 Conventional Commits
- 仓库审阅归属见 .github/CODEOWNERS
- PR 会自动执行基础 CI:
GitHub 执行
go test ./... -count=1、go test -race ./...、go vet ./...、Gate 脚本语法检查; Gitea/TKSea 因共享测试库约束,执行go test ./... -count=1 -p 1、go test -race ./... -p 1、go vet ./...、Gate 脚本语法检查 - GitHub 使用
.github/workflows/ci.yml,Gitea/TKSea 使用.gitea/workflows/ci.yml workflow名称和verifyjob 名称属于受保护契约。当前分支保护依赖这两个状态上下文:CI / verify (push)、CI / verify (pull_request);不要随意改名- 本地默认共享 PostgreSQL 测试库,所以本地验证命令统一使用
-p 1串行执行,避免跨包并发污染测试表 - 变更配置契约时,必须同步更新:
docs/CONFIG_CONTRACT_BASELINE.mdtest/QA_GATE_STATUS.md- 相关 runbook / plan 文档
- 不要把“测试通过”直接写成“可生产上线”,门禁口径必须区分代码级、预生产级和灰度放量级
- 贡献方式和 PR 校验要求见 CONTRIBUTING.md
提问题
请优先使用仓库内置 issue 模板:
- Bug Report
- Feature Request
提交问题前建议附上:
- 运行环境
- 复现步骤
- 预期结果 / 实际结果
- 相关日志或失败命令
Description
AI customer service service focused on secure webhook ingress, dialog routing, handoff ticket flow, auditability, and platform adapter delivery.
Languages
Go
95.4%
Shell
4.5%