调试-叙事可视化POC

构建环境

程序基础框架

这个在初期,被我们忘记了

LLM 问题

输出内容少一部分

输出格式的限制:中英文符号等问题

网络问题

笔记本无法连接公司网络调试 GPT 接口

物理机插个 USB 的 wifi 网卡,然后笔记本通过这个网络上网,这样就能连上公司网络了。

(TODO)wifi 经常断掉的问题

本地调试

缺乏 LLM 调试工具

接的是公司的 LLM 服务,应该做个输入框,方便快速验证 Prompt,而不是每次修改程序再命令行查看。
针对这种输出内容多的场景,命令行可读性很差。

线上调试

代理线上的资源到本地

缺乏 LLM 日志的查看功能,导致不知道当前 LLM 返回的内容是什么

需要日志入库,并提供查看页面,辅助调试。

发布问题

新增模块后修改 Pipeline

注意得修改 2 个 step:
1、新增一个空白的 step,加上 aidp 的 build 命令:

镜像名:frontend/custom-node-js:v18.16.0

1
2
3
4
5
6
7
8
9
10
11
name: {{ .name }}
image: 'hub-dev.hexin.cn/{{ .image }}'
commands:
- npm config set registry 'http://repositories.myhexin.com:8081/repository/npm-public/'
- cd aidp
- npm i --unsafe-perm
- npm run build
- cd ../
- echo 'aidp打包成功'
depends_on:
- 最外层打包

2、在“容器镜像”这一步的depends_on中加上这个新的 step:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
name: {{ .name }}
image: hub-dev.hexin.cn/pack-ci-plugin/docker-build
settings:
dockerfile_path: {{ .dockerfile_path }}
image_group: {{ .image_group }}
image_name: {{ .image_name }}
tag: {{ .tag }}
pull_always: {{ .pull_always }}
tag_method: {{ .tag_method }}
online_dockerfile: {{ .online_dockerfile }}
build_args_from_env:
- BRANCH
- REVISION
- CURRENT_TIME
volumes:
- name: docker
path: /var/run/docker.sock
depends_on:
- 最外层打包
- uploader打包
- demo打包
- vidai打包
- aidp打包

注意:test 和 prod 都要加上这 2 个 step。

第三方包依赖了高版本 Node

查看 Build 的报错,调整该 step 的 Node 版本即可。

教训

  • 没有在初期把搭建程序框架的内容考虑进去
  • 没有在初期把前后端的接口协议固定下来
  • 没有在初期把 Mock 数据准备好
  • 本地没验证通过就发布正式了(到了线上才发现前后端接口不一致)
  • 新增了 uri 前缀,但是没有提前联系测试和运维修改 Nginx 配置
  • 不看报错信息
  • 没有预先在本地 build,到发布流程上才出错
  • 调试 HTTP 问题,不看 HTTP 请求头信息