eightbf-analysis-go

8BF「多岗位会商」后台服务的 Go 实现,行为对齐 Java 仓 eightbf-analysis 与
docs/服务端开发设计要求.md。

  • 同一套 HTTP:/api/v1/analysis/...
  • 同一张表:eba_analysis_job(schema.sql)
  • 同一套环境变量:EBA_DB_* / EBA_DF_*(Go 另支持 EBA_DB_DSN)
  • 前端可经 Nginx /analysis-api 指向本进程(默认仍 :18097,勿与 Java 实例同时占端口)

与 Java 的关系

Java Go(本仓)
定位 现网/本机主用 同构移植,便于无 JVM 环境部署
API 权威契约 兼容同一契约
表结构 schema.sql 共用同一 schema

两进程不要同时写同一库抢同一 queued(尚无领取互斥)。切换时停掉一侧再起另一侧。

运行

# 需要 Go 1.21+、MySQL(库 eightbf_analysis)
export EBA_DB_USER=eba
export EBA_DB_PASSWORD=eba_local_dev
# 或直接:
# export EBA_DB_DSN='eba:eba_local_dev@tcp(127.0.0.1:3306)/eightbf_analysis?parseTime=true&loc=Asia%2FShanghai&charset=utf8mb4'

export EBA_DF_BASE_URL=http://127.0.0.1:8001
export ANALYSIS_MODE=live          # demo 则假进度
# export ANALYSIS_AUTH_ENABLED=true

cd /project/eightbf-analysis-go
go run ./cmd/server
# 默认 :18097

构建:

go build -o bin/eightbf-analysis-go ./cmd/server
./bin/eightbf-analysis-go

接口(与 Java 一致)

  • GET /api/v1/analysis/health
  • POST /api/v1/analysis/jobs
  • GET /api/v1/analysis/jobs/{id}
  • GET /api/v1/analysis/jobs?taskId=&latest=
  • POST /api/v1/analysis/jobs/{id}/cancel|resume|plan|inject
  • GET /api/v1/analysis/jobs/{id}/result

身份头:X-Account-Id、X-Analysis-Role。

目录

cmd/server          入口
internal/api        HTTP
internal/service    编排 / 鉴权投影 / DemoWorker
internal/worker     LiveWorker / LiveChainRunner / 提示词
internal/deerflow   登录、SSE、模型校验
internal/repo       MySQL
internal/domain     作业实体与状态常量
internal/config     环境变量
docs/               设计要求(自 Java 同步)+ env.sample

日志

遵循设计要求 §11:业务日志带 jobId=;禁止打印 token/密码/完整 dialogues。
当前写 stdout,正式环境用 systemd/Docker 收集或挂滚动文件。

S
Description
8BF 多岗位会商后台服务(Go,对齐 eightbf-analysis)
Readme
76 KiB
0 Stars 1 Watchers 0 Forks
Languages
Go 98.9%
Shell 1.1%