背景
最近在弄一个国外的开源库,它提供了全英文的api文档,因为我是负责这块以及我英文阅读还行。所以我自己读起来是没有任何困难的,但是我这个负责的模块要给其它模块来进行调用,所以就导致了其它开发人员的阅读困难,因为他们不了解,所以需要不断找我,我就使用RAG将api文档作为语料来使LLM能够对QA进行回答。
第一阶段
在这个阶段,考虑了直接将英文翻译成中文,但是文件过大,所以并不能使用gpt来进行翻译,只能通过翻译软件来进行翻译,这样就导致了一个问题,http请求参数以及响应中的字段也会被翻译,作为语料效果不好,遂放弃。
第二阶段
既然api文档大,原始的内容不好翻译,那就在prompt中写上要求gpt将中文问题翻译成英文问题,再在知识库中进行索引,这样就解决了中文问题在api文档中搜索不到相关知识。
但是又出现了虽然现在能搜索到相关知识点了,但是返回输出的依然是英文,这样也不方便,所以就要求gpt将返回的内容除了请求和响应这两部分之外的内容翻译成中文,这样就达到了中文问,中文回答的效果了。
第三阶段
用的过程中发现返回的信息由于gpt不知道该将那些翻译那些不翻译,所以就会产生格式问题,还得开发人员来进一步处理,比较麻烦,所以手工造了一个QA样例告诉gpt什么样是对的,什么样是错的。这样它就知道如何处理QA了。
总结
以下是每个阶段的改进措施及其作用总结:
第一阶段:内容翻译尝试
改进措施:最初尝试将英文API文档整体翻译成中文,以便所有开发人员能直接读取中文内容。
问题:由于文档体积过大,无法使用GPT直接翻译;通过翻译软件翻译会导致API请求和响应字段也被翻译,从而影响了技术术语和参数的准确性。
作用:这一阶段主要探索了全中文内容的可行性,但验证了保持API关键字段不变的必要性,因此最终放弃。
第二阶段:问题翻译与英文索引
改进措施:将中文问题翻译成英文,以便在知识库中进行英文检索;检索后,要求GPT将回答内容中的请求和响应部分保持英文,其余内容翻译成中文。
问题:虽然这种方法解决了中文提问和知识检索的问题,但输出的格式仍然不理想,GPT在翻译过程中对哪些部分需要保持英文并不清晰,造成了格式不统一。
作用:该阶段实现了中文提问、中文回答的基本效果,减少了开发人员阅读英文内容的障碍,但翻译一致性问题仍需优化。
第三阶段:格式优化与QA样例示例
改进措施:创建手工QA样例,提供正确和错误示例,以明确示范哪部分应保持英文,哪部分需翻译成中文。这样GPT可以依样例调整回答格式,保持一致性。
问题:格式问题在有示例后得到解决;但需要前期花费一些时间制作符合需求的样例。
作用:这一阶段通过QA示例标准化了回答的格式,确保了输出中技术字段的准确性和回答的易读性。开发人员无需额外格式调整,显著提升了沟通效率。
结论
每个阶段的改进最终解决了中文问答的流畅性和技术内容的准确性问题:
- 第一阶段明确了全翻译的弊端;
- 第二阶段实现了中文提问、部分翻译的初步效果;
- 第三阶段通过QA示例统一了输出格式,减少了后续人工调整,提高了使用体验和效率。