头图

去年我们尝试过使用 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 ChatOllama

llm = 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 的表现很满意,至此知识问答系统就升级完了。

如有任何问题,请随时联系我,期待与您交流!


极限实验室
9 声望2 粉丝

极限科技,全称极限数据(北京)科技有限公司,是一家专注于实时搜索与数据分析的软件公司。旗下品牌极限实验室(INFINI Labs)致力于打造极致易用的数据探索与分析体验。