Skip to content

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 "抱歉,知识库中没有找到足够的相关信息。"