用码道给电气答疑工具扩一条知识库:两个踩坑记录
背景
我做了一个电气类课程的小工具《电小助》,主体是一个前端问答应用:输入一句课程问题,用关键词加权匹配到知识库条目,返回定义、公式、要点和常见误区。知识库放在 js/qa.js 的 KNOWLEDGE 数组里,一个条目大致长这样:
{
id: 'node-mesh',
title: '节点电压法与网孔电流法',
keywords: ['节点电压法', '网孔电流法', '支路电流法', 'nodal', 'mesh'],
definition: '...',
formulas: ['...'],
points: ['...'],
misconceptions: ['...'],
related: '/practice'
}
最近一轮我用华为云码道(AI 开发者空间体验版里的 CodeArts 智能体)给知识库加了一条「节点电压法与网孔电流法」,顺带把两个坑踩明白了,记录一下。
为什么加这一条
之前的 18 条偏向「某个定律/某个物理量怎么算」,缺一条讲「拿到一个电路,怎么系统地列方程」的总纲。学生问「两个节点三条支路怎么列方程」时,匹配会散到基尔霍夫定律条目上,答得对但不系统。
所以这一条的目标不是再讲一遍 KCL/KVL,而是给出两条可套用的矩阵式:
节点电压法:
[G][Un] = [Is]
网孔电流法:
[R][Im] = [Us]
配套写了 4 条要点(参考节点怎么选、自导与互导的正负、电流源支路的处理、网孔方向与互阻符号)和 2 条常见误区(把互导写成正值、电流源支路漏掉等效变换)。
关键词给了 10 个,中英文各一半,因为中文提问里经常混着 nodal / mesh 这样的英文术语。
让码道来做这件事
在体验版开发者空间里打开 CodeArts,把需求说得尽量死:
在 js/qa.js 的 KNOWLEDGE 新增 1 条条目:id 为 node-mesh,标题「节点电压法与网孔电流法」,keywords 含节点电压法/网孔电流法/支路电流法/nodal/mesh;definition 说明两种系统化列方程方法;formulas 给出节点电压法矩阵式与网孔电流法矩阵式;points 至少 4 条;misconceptions 至少 2 条;related 用 /practice。test.js 增加对应断言,跑 node test.js 全绿,只提交不 push。
这里有个经验:约束给得越具体,返工越少。第一次我只说「加一条节点电压法的知识」,它给的内容是对的,但字段缺了 misconceptions,related 也随手填了个不存在的路由——测试里的完整性检查会直接挂。
两个坑
1. 默认模型报「消费 Key 无效或已停用」
沙箱里默认选中的模型是 glm-5.1,provider 是 hwdevspace。发任何一句话都返回:
消费 Key 无效或已停用
换 hi 也照样报,说明不是 prompt 的问题。用 Ctrl+P 打开命令面板,执行 switch model,把模型切到 GLM-5.3(provider huaweicloud-maas),同一句话立刻正常返回。
如果遇到同样的报错,别在代码上找原因,先确认当前会话挂的是哪个 provider。这类错误是模型服务侧的鉴权问题,和你的仓库、代码一点关系都没有。
2. 容器里 git push 报 could not read Password
沙箱里没有交互终端,而仓库的 HTTPS 地址如果拼成:
git push https://$TOKEN@gitcode.com/user/repo.git main
git 会把 $TOKEN 当成用户名,接着去找密码,找不到就报:
fatal: could not read Password for 'https://***@gitcode.com': No such device or address
正确写法是补上用户名段:
git push "https://<用户名>:<令牌>@gitcode.com/user/repo.git" main
再顺手加两个环境变量,避免在无 tty 环境里卡住:
export GIT_TERMINAL_PROMPT=0 # 不弹交互,直接失败
另外注意别把令牌打进日志,输出里可以用 sed "s/$TOKEN/***/g" 遮蔽。
验证
改完跑全量测试:
通过: 948, 失败: 0
全部通过!
比改动前的 934 条多了 14 条,其中 5 条是新条目的专项断言(条目存在、formulas 非空、中英文关键词查询都能命中 node-mesh),剩下的是完整性检查按条目数自动展开的部分。
抽查三个问句的匹配结果:
- 「两个节点三条支路怎么列方程」 →
node-mesh - 「网孔电流法怎么定方向」 →
node-mesh - 「节点电压法矩阵怎么写」 →
node-mesh
小结
- 知识库类项目,条目字段的完整性检查比内容本身更容易出问题,测试要覆盖到每个字段。
- 云上开发环境报模型鉴权错误时,先查 provider 和模型挂载,别改代码。
- 无交互终端里用令牌推送,URL 必须是
用户名:令牌,不是只放令牌。
- 点赞
- 收藏
- 关注作者
评论(0)