将检索到的文档传递给大型语言模型时的问题
我目前在Coursera上参加一个课程,学习如何用Python实现一个基于检索的问题回答系统(RetrievalQA)。这个课程提供了一段代码,使用了RetrievalQA.from_chain_type()这个方法来创建一个包含大型语言模型(LLM)和向量检索器的RetrievalQA链。
在查看这段代码时,我发现相关的文档是通过vectordb.similarity_search()从向量存储中检索出来的。不过,似乎没有明确的步骤将这些检索到的文档传递给LLM,以便在RetrievalQA链中进行问题回答。
我的理解是,在一个典型的RetrievalQA过程中,从向量存储中检索到的相关文档会被传递给LLM。这样可以确保LLM能够利用这些检索到的信息,生成准确的用户查询回答。
我想了解如何将检索到的文档正确地整合到RetrievalQA链中,以确保LLM能够有效地使用这些信息。如果有任何见解、建议或代码示例来帮助实现这个整合,我将非常感激。谢谢你的帮助!
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
persist_directory = 'docs/chroma/'
embedding = OpenAIEmbeddings()
vectordb = Chroma(persist_directory=persist_directory, embedding_function=embedding)
question = "What are major topics for this class?"
docs = vectordb.similarity_search(question,k=3)
len(docs)
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(model_name=llm_name, temperature=0)
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(
llm,
retriever=vectordb.as_retriever()
)result = qa_chain({"query": question})
result["result"]
1 个回答
暂无回答