我是浪链和LLama指数世界的新手。我正在使用法学硕士开展一个文件咨询(建筑法规)项目。我注意到,例如,在 LLama Index 上,我使用查询引擎时,响应仅基于摄取的数据。然而,当我使用聊天引擎时,法学硕士也会(如果不是仅仅)从其背景知识中获取知识。我想构建一个仅从我的文档中提取内容的聊天机器人。
有人知道为什么吗?以及如何解决这个问题?
这是代码:
documents = SimpleDirectoryReader('./data').load_data()
parser = SimpleNodeParser()
nodes = parser.get_nodes_from_documents(documents)
index = GPTVectorStoreIndex(nodes, show_progress = True)
query_engine = index.as_query_engine()
query = input()
response = query_engine.query(query)
print(response)
在这种情况下,如果我问“谁是克里斯托福罗·科伦坡?”之类的问题正确的回答是“我不知道”。
另一方面,使用以下代码:
documents = SimpleDirectoryReader('./data').load_data()
parser = SimpleNodeParser()
nodes = parser.get_nodes_from_documents(documents)
index = GPTVectorStoreIndex(nodes, show_progress = True)
service_context = ServiceContext.from_defaults(llm=OpenAI(model="gpt-3.5-turbo-0613"))
chat_engine = index.as_chat_engine(chat_mode="openai", verbose=True, service_context = service_context)
index.as_chat_engine(chat_mode="openai", verbose=True, service_context = service_context)
query =''
while query != "stop":
query = input()
response = chat_engine.chat(query)
print(response)
答案似乎取自它的背景知识,它知道克里斯托弗·哥伦布是谁
使用聊天模式“condense_question”。它总是会查询文档。