Skip to content

PancrePal-xiaoyibao/xiaoxinbao_UI

Repository files navigation

Xiaoxinbao (小馨宝)

前端和后端现在是彻底分离的两套进程:

  • 前端:Next.js,只负责页面、交互、录音采集和调用后端。
  • 后端:Go,独立提供 /api/chat/api/stt/api/stt/ws/api/tts

密钥只允许存在于 Go 后端环境变量中。前端只持有后端地址,不再包含任何第三方服务代理逻辑。

目录结构

  • src/:前端 UI
  • backend/:Go 原生后端
  • .env.example:前端环境变量模板
  • backend/.env.example:后端环境变量模板

前后端分离约束

  • Next.js src/app/api 已移除,前端仓库不再提供业务 API。
  • 豆包/阿里云/chat 的密钥只给 Go 后端。
  • 前端通过 NEXT_PUBLIC_API_BASE_URLNEXT_PUBLIC_WS_BASE_URL 访问后端。
  • 流式语音识别走 Go 后端的 WebSocket,再由 Go 后端代理到豆包。

启动方式

  1. 安装前端依赖
npm install

后端需要 Go 1.25.8 或更高版本;仓库已在 backend/go.mod 中锁定该版本,旧版本 Go 在执行 go rungo buildgo test 时会继续触发标准库漏洞告警。

  1. 配置前端环境变量

根目录创建 .env.local

NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
# 可选;不填时默认从 NEXT_PUBLIC_API_BASE_URL 推导
NEXT_PUBLIC_WS_BASE_URL=
  1. 配置后端环境变量

复制backend/.env.examplebackend/.env Go backend 启动时会自动读取这个文件;如果你已经在 shell 里显式导出同名环境变量,显式值优先,不会被 backend/.env 覆盖。

最小配置通常至少包括:

BACKEND_PORT=8080
CORS_ALLOWED_ORIGINS=http://localhost:3000,https://localhost:3000
LOG_LEVEL=log
CHAT_PROVIDER=fastgpt
CHAT_API_URL=https://your-fastgpt-host/api/v1/chat/completions
CHAT_API_KEY=fastgpt-app-key
CHAT_REQUEST_TIMEOUT_MS=300000
FASTGPT_STREAM_DETAIL=false
STT_PROVIDER=doubao
TTS_PROVIDER=doubao
DOUBAO_STT_APP_ID=...
DOUBAO_STT_ACCESS_KEY=...
DOUBAO_TTS_APP_ID=...
DOUBAO_TTS_ACCESS_KEY=...
DOUBAO_TTS_SPEAKER=...

如果 chat 上游是 FastGPT:

  • CHAT_PROVIDER=fastgpt
  • CHAT_API_URL 使用 FastGPT 文档里的 /api/v1/chat/completions
  • 前端会自动把当前会话 ID 作为 chatId 传给后端,后端再转发给 FastGPT
  • FASTGPT_STREAM_DETAIL=false 时,返回的是 OpenAI 风格 SSE,当前前端可直接解析
  • 如果你后续要接 FastGPT 的工作流节点事件,再把 FASTGPT_STREAM_DETAIL=true
  • LOG_LEVEL=log 只输出常规日志;LOG_LEVEL=debug 会额外输出上游握手、SSE/STT WebSocket 细节和请求调试信息
  1. 启动后端
npm run dev:backend
  1. 启动前端
npm run dev

如需 HTTPS 前端开发环境:

npm run certs
npm run dev:https

构建

前端构建:

npm run build

后端构建:

npm run build:backend

前端生产启动:

npm start

后端生产启动:

go run ./backend/cmd/server

校验

前端:

npm run lint
npx tsc --noEmit

后端:

npm run test:backend
cd backend && go build ./cmd/server

About

用于实现小馨宝文字聊天与语音对话的可部署前端项目

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages