RAG 生成优化
TIP
检索到内容后,如何让 LLM 更好地利用这些信息是关键。
提示优化
python
prompt = """基于以下参考信息回答问题。如果信息不足,明确说明无法回答。
参考信息:
{context}
问题: {question}
回答:"""引用溯源
python
prompt = ChatPromptTemplate.from_messages([
("system", "基于以下信息回答问题,引用时标注来源:\n{context}"),
("human", "{question}")
])
chain = prompt | llm | StrOutputParser()自适应 RAG
python
def adaptive_rag(query):
docs = retriever.get_relevant_documents(query)
score = evaluate_relevance(docs, query)
if score > 0.8:
return generate(docs, query)
elif score > 0.5:
new_query = rewrite_query(query)
more_docs = retriever.get_relevant_documents(new_query)
return generate(docs + more_docs, query)
else:
return "抱歉,知识库中没有找到足够的相关信息。"