去年我们尝试过使用 Easysearch + 千问 2 大模型打造一个企业内部知识问答系统,今年又有更加给力的大模型出现了--DeepSeek,性能对标 OpenAI o1 正式版。而且 Easysearch 对比去年也有了不少进步,是时候让我们升级下问答系统了。
DeepSeek
2025 年 1 月 20 日,人工智能领域迎来里程碑式突破!深度求索(DeepSeek)正式发布新一代推理大模型 DeepSeek-R1,不仅实现与 OpenAI 最新 o1 正式版的性能对标,更以全栈开放的生态布局引发行业震动。DeepSeek-R1 是首个遵循 MIT License 开源协议的高性能推理模型,完全开源,不限制商用,无需申请,极大地推动了 AI 技术的开放与共享。
下载模型
我们使用 ollama 下载运行 DeepSeek-R1,根据本地资源情况选择一个大小合适的版本:8b。
- 8b 蒸馏模型源自 Llama3.1-8B-Base
- 7b 蒸馏模型源自 Qwen-2.5 系列
这两个可能是个人用户使用最多的选择,大家资源充足的可以都下载下来对比下效果。
由于是升级,我们只需在原有程序基础上替换新版本的 Easysearch 和集成 DeepSeek 即可,Easysearch 升级成新版本 1.10.1,程序框架和 embedding 模型 (mxbai-embed-large:latest) 仍然保持不变。
数据准备
跟上次一样,使用 "INFINI 产品安装手册.PDF" 作为知识内容,通过程序将文档内容切片、转换成向量后写入 Easysearch 存储,然后结合大模型对其中的内容进行提问。
程序调整
程序代码需要调整 LLM 为 deepseek-r1:8b。另外本地主机资源有限,为节约时间,取消上个版本的用户问题改写功能(注释部分)。定义新的 retriever 和 qa_chain 直接将用户问题和 context 信息发送给大模型。
# # 实例化一个大模型工具
from langchain_community.chat_models import ChatOllamallm = ChatOllama(model="deepseek-r1:8b")# from langchain.prompts import PromptTemplate# my_template = PromptTemplate(
# input_variables=["question"],
# template="""You are an AI language model assistant. Your task is
# to generate 3 different versions of the given user
# question in Chinese to retrieve relevant documents from a vector database.
# By generating multiple perspectives on the user question,
# your goal is to help the user overcome some of the limitations
# of distance-based similarity search. Provide these alternative
# questions separated by newlines. Original question: {question}""",
# )# 实例化一个MultiQueryRetriever
# retriever_from_llm = MultiQueryRetriever.from_llm(
# retriever=docsearch.as_retriever(),
# llm=llm,
# prompt=my_template,
# include_original=True)retriever = docsearch.as_retriever()
# 实例化一个RetrievalQA链
qa_chain = RetrievalQA.from_chain_type(llm, retriever=retriever)
至此程序修改已经完成,原程序算上注释也不过 100 来行,大家感兴趣的可以去查看原博客。
效果测试
模拟用户提问:网关运行后监听哪个端口。
系统回答如下。
在回答中,可以看到 DeepSeek 的"思考"过程,另外回答结果也非常正确,文档中原文还是用的英语 INFINI Gateway 表示网关。
模拟用户提问:LOGGING_ES_ENDPOINT 有什么用。
系统回答如下。
文档原文内容如下。
好了,我对 DeepSeek 的表现很满意,至此知识问答系统就升级完了。
如有任何问题,请随时联系我,期待与您交流!