借助 LangChain 轻松调用本地 DeepSeek API

2,512 阅读3分钟

引言

在人工智能和自然语言处理领域,模型的应用变得越来越广泛。DeepSeek 作为一款强大的语言模型,在本地部署后,我们可以借助 LangChain 这个优秀的工具来灵活调用它,实现各种有趣的自然语言处理任务。本文将详细介绍如何使用 LangChain 调用本地部署的 DeepSeek API,为程序员们提供一个实用的参考。

环境准备

在开始之前,我们需要完成一些必要的环境准备工作:

1. 部署 DeepSeek 模型

确保你已经在本地成功部署了 DeepSeek 模型。如果使用 Ollama 进行部署,可以通过以下命令拉取模型:

ollama pull deepseek-r1:1.5b

并启动 Ollama 服务:

ollama run deepseek-r1:1.5b

默认情况下,Ollama 服务会监听 http://localhost:11434 地址

2. 安装必要的 Python 库

我们需要安装 langchain 和 ollama 这两个 Python 库。可以使用 pip 进行安装:

pip install langchain ollama langchain_community

使用 LangChain 调用本地 DeepSeek API

示例代码

下面是一个完整的示例代码,展示了如何使用 LangChain 调用本地的 DeepSeek API:

from langchain_community.llms import Ollama
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

# 创建 Ollama 实例,指定模型名称和本地服务地址
llm = Ollama(model="deepseek-r1:1.5b", base_url="http://localhost:11434")

# 定义提示模板
prompt = PromptTemplate(
    input_variables=["question"],
    template="请回答以下问题:{question}"
)

# 创建 LLM 链
chain = LLMChain(llm=llm, prompt=prompt)

# 定义问题
question = "1+1=?"

# 调用链进行推理
result = chain.invoke({"question": question})
if isinstance(result, dict):
    result = result.get("text", "")

# 打印结果
print(result)
嗯,用户让我回答“1+1=?”。这应该是简单的问题,但也许我应该再仔细想一想。

首先,数字1加1等于2。这是一个基本的数学知识,我记得没错。那为什么会有这样的疑问呢?可能是因为用户刚开始学数学,或者只是想确认答案正确性。

或许还有更深层次的原因。比如,用户可能在学习其他学科,遇到了类似的数学问题。比如说,他在编程的时候需要确认变量的值,或者是在处理简单的逻辑问题。

再想想,如果用户觉得这个回答太简单,那他们可能没有接触到这些内容,所以才会问这个问题。也有可能是出于好奇,想了解更复杂的问题背后的简单原理,比如1+1为什么等于2,或者在其他领域中类似的问题。

还有可能是用户在寻找答案的验证方法,确保自己理解了正确的计算方式。毕竟,在日常生活中,我们也会用到加法,比如支付现金、计算距离等。

不过,也有可能是我在回答时过于肯定,没有考虑到用户的潜在需求。也许他们需要更深入的解释,或者想了解其他类似的问题,比如3+5=8之类的。

再考虑一下,如果用户的问题太基础,我应该提供详细的步骤或解释,帮助他们理解。但在这里,可能不需要那么详细,因为问题很简单,答案明确。

总的来说,1+1=2应该是最简单的数学答案之一,没有更多的深意需要挖掘。也许用户的深层需求是想确认自己的计算能力,或者激发进一步学习的兴趣。

1 + 1 = 2