LangChain之模型调用

1.两者的关系

LangChain 是一个大模型应用开发框架,不是大模型本身。 它的核心目标:帮你把 LLM(GPT、DeepSeek、通义千问等)串联上外部能力,快速搭建智能应用,不用从零写大量胶水代码。

在我看来就类似于之前的那个coze,两者在这方面我个人认为作用或者说意义是一样的。通过这个LangChain来构建框架从而实现让AI实现以模版的方式来实现问题。

2.怎么进行模型调用

2.1 基本配置

如果说我们是在pycharm里面的终端里面下载一些包,这样我们就可以在pycharm里面对其进行调用了。具体可以上网查一下,对了,过低版本的解释器会让包安装失败。

同时我们还需要去申请一个模型API

2.2 模型的调用执行过程

当我们把一条消息发给了AI模型之后,AI是通过一种类似于链表的方式来进行思考,最后得出结果的。所以这一点待会在我们下面的调用里面也会有所体现。

2.3 调用方式

2.3.1 标准接口调用

这个的话就是通过我们的标准接口来执行的,相当于是我们一步一步的去执行,把AI模型的一套分成了很多我们能看见的步骤(实际上后面的话几步代码就直接可以了)。这个的话不常用,在这里说只是为了我们更好的去理解这个过程。

我们来看下面这个代码,首先我们需要先定义一个变量model,然后给他赋值一个ChatDeepSeek,同时在里面指定它的模型的类型。

接着我们定义一个变量叫做messages,给里面填入两个变量,分别代表了用户消息和系统消息。

ps:系统消息相当于我们需要叫模型做的事情。而用户消息相当于我们作为一个普通用户发给AI的消息。

接着我们需要使用invoke函数,通过这个函数来提取两个消息,把其赋值给result,最后打印就可以了。

python 复制代码
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_deepseek import ChatDeepSeek
from langchain_openai import ChatOpenAI

model=ChatDeepSeek(model="deepseek-v4-flash")            #定义AI模型
#不用写这个模型的key,因为已经配置到环境变量了

messages=[                                        #定义消息
    SystemMessage(content="帮我翻译下面的话,翻译成中文"),  #表示系统消息(相当于你告诉AI需要做什么) 这个通常是第一条消息
    HumanMessage(content="helloworld!") #表示用户消息
]

result=model.invoke(messages)                     #这一步是在调用大模型,然后把数据转给result
print(result)

最后的输出结果。

2.3.2 通过解析器来输出

接下来我们来演示通过解析器的方式来进行输出。

解析器的话就是把直接把模型的输出结是按照解析器的方式解析成字符串并输出得到结果。

我们来看下面这个代码,老样子先创建定义模型,然后定义消息。

最后再输出的时候我们直接提过StrOutputParser()来进行解析,StrOutputParser就是我们前面说的解析器。最后通过解析器输出打印。

PS:在这边我们可能会疑惑为什么需要多此一举呢,为啥不直接在定义result之后直接打印呢,这是因为我们使用解析器的作用是为了追求统一化的输出结果,所以这才需要使用解析器。

python 复制代码
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_deepseek import ChatDeepSeek


model=ChatDeepSeek(model="deepseek-v4-flash")

messages=[
    SystemMessage(content="翻译成中文"),
    HumanMessage(content="helloworld!")
]

result = model.invoke(messages) #是把模型输出的结果给给输出解析器
print(result)

parser=StrOutputParser()
print(parser.invoke(result))#这一步是在定义输出解释器

下面是最后的输出结果,我们来看是有两个你好世界的,但是我们看上面那一个的,它的后面就跟了很长一串的东西,这个的话就是直接invoke后直接输出的结果,而我们经过解析器后输出的结果就只有你好世界了,其他多余的都被删除了,这就是解析器的作用。

2.3.3 执行链调用

接下来我们来通过执行链的方式来进行模型的输出结果。执行链的话是需要我们先把输出结果解析成为字符串的。

我们来看下面这代码,我们只需要在一个 | 的符号就可以建立管道,然后我们直接

model | parser就可以了,这一步的话相当于让模型按照链的方式来直接完成任务。我们在这边的话会觉得这个还不如第一个的好用,这是因为我们在这边的代码比较短小,所以我们看不出为什么执行链好用。

最后我们通过print直接输出就好了。

python 复制代码
from langchain_core.messages import SystemMessage, HumanMessage
from langchain_core.output_parsers import StrOutputParser
from langchain_deepseek import ChatDeepSeek


model=ChatDeepSeek(model="deepseek-v4-flash")

messages=[
    SystemMessage(content="翻译成中文"),
    HumanMessage(content="helloworld!")
]

parser=StrOutputParser()

chain=model|parser        #这个是通过执行链的方式
print(chain.invoke(messages))
相关推荐
10年前端老司机5 小时前
你的RAG检索正在“高效地重复废话”:一文彻底搞懂MMR算法
langchain·llm·agent
全栈练习生7 小时前
AI Agent 沙箱
python·ai
SEO_juper8 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
用户8356290780519 小时前
使用 Python 对 Excel 工作表进行排序
后端·python
for_ever_love__9 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
用户8356290780519 小时前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_4617694010 小时前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_9669496510 小时前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿10 小时前
Python实战第1期:Python环境搭建与第一个程序
python
心易行者10 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache