LLM 系列 | 15:如何用LangChain做长文档问答?( 二 )


运行结果如下:
" Li Xingyun's martial arts include the Qinglian Sword Song, the Shock Rainbow, the Zhisheng Qiankun Gong, the Five Thunder Heart Sutra, and the Illusion Sound Sutra. He also wields the Suxin Sword."
可以看出 , 回复内容多数是胡说八道 , 比如竟然出现"至圣乾坤功"和"五雷天心诀" 。效果整体比较差 。以下将QA部分的模型更换为 。
from langchain.chains.question_answering import load_qa_chainmodel_name = "gpt-3.5-turbo-16k"llm = OpenAI(model_name=model_name, temperature=0)chain = load_qa_chain(llm=llm)query = "李星云会哪些武功?"chain.run(input_documents=docs, question=query)
输出结果如下:
'李星云会青莲剑歌、惊虹、天罡诀、华阳针法等武功 。'
可以看出 , 这种召回+的方式容易受到召回数据的干扰 。所以 , 这种方式很大程度上依赖于召回阶段的质量 , 特别是当上述问题的答案分布于多处的情况 。
综合整个长文档 , 其实上述答案其实很接近真实的答案 , 但是玩了一个trick:用等武功这类话术 。其实还缺了了一个龙泉七星诀 。
小结
今天这篇小作文作为实践专题的首篇 , 主要介绍如何基于接口做长文档问答 。后续会持续介绍其他的问答接口和其他的向量化方案 , 感兴趣的小伙伴们可以留意关注下 。