最近在做一个知识库问答的RAG项目,用的LangChain + OpenAI。我参考了一些网上的做法,把system prompt写得很详细,什么“请基于以下上下文回答,如果找不到答案请明确说明”之类的,还加了few-shot示例。结果发现,prompt越复杂,模型反而越容易答非所问,甚至忽略检索到的上下文,直接开始“自由发挥”。而且有时候检索到的内容明明很相关,但模型就是不肯用。我现在很困惑,到底prompt应该写得“简单粗暴”一点,还是需要设计很精细?有没有那种经过验证的通用模板结构?希望有经验的朋友能指点一下,谢谢。