AI 影工场内置了 49 条剧本范本。很多用户问:为什么要用 RAG 向量检索,直接关键词搜索不行吗?这篇文章拆开讲讲我们做这个功能时踩过的坑。
为什么不用关键词搜索
假设你搜"龙族奇幻"。关键词搜索只能找到标题或正文里包含这四个字的范本。但如果你想找的是"东方玄幻带复仇线"的范本,它可能叫《少年觉醒》——关键词搜索就漏了。
RAG(检索增强生成)的思路是:把每条范本转成一串向量(数字坐标),意思相近的范本在向量空间里离得近。你搜"东方玄幻复仇",它能找到《少年觉醒》,因为语义相近,哪怕字面上一个重合的字都没有。
嵌入模型选了 bge-m3
我们用的是 BAAI 的 bge-m3 模型做嵌入。选它的原因:
- 中文支持好,比 OpenAI 的 ada 模型在中文语义上准
- 开源免费,可以本地跑(配合 Ollama)
- 8192 token 上下文,长剧本范本塞得下
有个坑要提醒:bge-m3 默认的上下文窗口设置太小会报 HTTP 500 "input length exceeds context length"。我们把 num_ctx 调到了 8192 才正常。
双模式:在线智谱 / 本地 Ollama
AI 影工场支持两种嵌入模式:
- 在线模式:调智谱 API,不需要本地 GPU,但每次检索要联网
- 离线模式:用本地 Ollama 跑 bge-m3,完全离线,但需要你自己的电脑跑得起
两种模式生成的向量不在同一个向量空间——这是个大坑。你在线模式下嵌入的 49 条范本,切到本地模式直接搜,结果全是错的。所以我们的做法是:切换模式时自动清空旧向量,重新嵌入。用户不需要知道这个细节,切了就重嵌,不会出现"搜出来风马牛不相及"的问题。
性能数字
49 条范本全量嵌入后存在本地 SQLite 里。实测:
- 软件冷启动到范本库可搜索:约 0.6 秒
- 一次检索(输入一句话,返回 Top 3 范本):约 0.8 秒
- 新增一条范本并即时可检索:约 2 秒(嵌入 + 入库)
这个速度在本地跑,不需要数据库服务器。
它解决的真实问题
做漫剧最烦的事之一是"风格漂移"——第一条是龙族奇幻的质感,第十条就变成了都市爽文。RAG 范本库的作用就是:你每次生成新剧本时,它自动把最接近的范本捞出来作为风格参考注入提示词。范本库就是这个软件的"审美记忆"——你喂进去多少好东西,它就能稳定输出什么风格。
这也是为什么我们说它是"让 AI 影工场有了学习的大脑"。
← 返回博客
下一篇:逆向拆解功能实战
