首页
看点啥
插画图片
首页 科技看点 大语言模型的开发利器langchainan安装使用快速入门学习实用指南

大语言模型的开发利器langchainan安装使用快速入门学习实用指南

2026-08-21 0

平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“大语言模型的开发利器langchainan安装采用快速入门学习”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。

简介

落到代码里,最近随着ch@tgpt的兴起,人工智能和大语言模型又再次进入了人们的视野,不同的是这一次像是来真的,各大公司都在拼命投入,希望能在未来的AI赛道上占有一席之地。因为AI需大规模的算力,尤其是对于大语言模型来说。大规模的算力就意味着需大量金钱的投入。那么对于小公司或者个人来说是不是什么都做不了呢?

从实现思路看,当然不是,虽然小公司或者个人不能开发底层的大语言模型,但是我们能够在大语言模型之上进行应用开发,这应该就是我们现在能做到的。

落到代码里,今天给大家介绍一个大语言模型的开发框架langchain,有了它,在AI的世界,你能够如虎添翼。

什么是langchain

从实现思路看,轻松来说,langchain是一个基于大语言模型只上的开发框架,有了他,我们就能够轻松在各种大模型之上进行实际应用的开发。

实际处理时,langchain的主要特点有两个,第一点就是组件化。langchain提供了各种封装好的组件供我们采用,大大缩短了我们开发的时间。

第二点就是提供了工具链,能够组装各种组件,从而实现更加复杂的功能。

langchain的安装

废话不多说,我们来看下langchain是如何安装的。

落到代码里,AI时代大家一定要学一下python,至于为什么要学习python呢?因为其他语言都不好使......

在这个场景下,langchain实际上是python的一个开发包,所以能够借助pip或者conda两种方式来安装:

pip安装

pip install langchain

conda安装

conda install langchain -c conda-forge

从实现思路看,默认情况下上面的安装方式是最轻松的安装,还有很多和langchain集成的modules同时没有安装进来,如果你希望安装common LLM providers的依赖模块,那么能够借助下面的命令:

pip install langchain[llms]

若你想安装所有的模块,那么能够采用下面的命令:

pip install langchain[all]

因为langchain是开源软件,所以你也能够借助源代码来安装,下载好源代码之后,借助下面的命令安装即可:

pip install -e .

langchain更快采用

下面我们以几个具体的例子来讲解一下langchain如何采用的。

从实现思路看,因为langchain只是一个大语言模型上的开发框架,它的所有的能力都是依赖于大语言模型的,所以在采用langchain之前,我们需一个大语言模型,最轻松同时也是最强大的大语言模型就是openai的ch@tgpt了。

下面我们就以接入openai为例子进行讲解。

结合项目来看,当然langchain也能够接入其他的大语言模型框架,后面的系列教程中我们会细致说明。

实际处理时,要采用openai,必须先注册一个openai的账号,随后拿到openai的api key。

具体的注册流程这里就不讲了。大家能够自行参考网络上的各种教程。

有了api key之后,我们需设置一下环境变量:

export OPENAI_API_KEY="..."

然后安装openai的包:

pip install openai

下面就能够愉快的采用openai提供的各种功能了。

落到代码里,当然,如果你不想在环境变量中设置openai的key,我们也能够在OpenAI的构造函数中传入openai_api_key:

from langchain.llms import OpenAI
llm = OpenAI(openai_api_key="...")

构建应用

有了上面的准备工作,下面我们就能够开始采用langchain了。

理解这一步时,当然,最最基础的一个应用就是跟大模型交互了,比如跟openai交互,我们能够让openai给我们写首诗:

>>> from langchain.llms import OpenAI
>>> llm = OpenAI(temperature=0.9)
>>> llm.predict("请以古龙的口吻,写首关于春天诗")
春天来了,万物复苏,
终于迎来了一个新的时辰,
草儿花儿抬起头,
喜迎新绿与绚丽的颜色。
山林里,小草发芽,
河畔边,花儿香烈,
这让我们感到心旷神怡,
这真是一个美好的世界。
春天来了,列位朋友,
请喜迎这样一个新时辰,
不要抱怨什么,
享受春的温暖与欣慰。

虽然写出来了,但是我觉得写的一般般吧。

实际处理时,但是这不重要,我们知道了如何借助langchain来调用openai的大模型,这个才是最重要的。

聊天模式

理解这一步时,上面我们调用LLM采用用的是"text in, text out"的模型。

从实现思路看,虽然聊天模式也是基于LLM,但是他更进了一步,因为他保存了会话的上下问题,所以在对话上更加智能化。

在代码上,传入的就不是文本了,而是message对象。

落到代码里,在langchain里,目前兼容下面几种消息类型:AIMessage, HumanMessage, SystemMessage 和 ChatMessage。

从实现思路看,在绝大多数情况下,我们只需用到AIMessage, HumanMessage, SystemMessage即可。

下面是采用的代码例子:

from langchain.ch@t_models import ChatOpenAI
from langchain.schema import (
    AIMessage,
    HumanMessage,
    SystemMessage
)
ch@t = ChatOpenAI(temperature=0)
[email protected]_messages([HumanMessage(content="请以古龙的口吻,写首关于春天诗")])

那么聊天模式和LLM模式有什么不一样呢?

结合项目来看,大家能够看到,聊天模式调用的是predict_messages接口, 而LLM模式调用的是predict接口。

从实现思路看,事实上聊天模式底层还是采用的是LLM,为了便于大家的采用,你也能够直接采用[email protected]方法来进行LLM方式的调用,如下所示所示:

[email protected]("请以古龙的口吻,写首关于春天诗")

Prompt的模板

落到代码里,开发过LLM应用的人都知道,在LLM中Prompt是很重要的,一个好的Prompt直接决定了这个应用的质量。

实际处理时,但是Prompt肯定需结合用户的输入和我们自己做的一些限定来结合采用。

实际处理时,这时候就需用到Prompt的模板功能了。 我们能够在系统中设置好模板,用户只需填充模板中的特定消息即可。

在LLM模式里,能够采用PromptTemplates,这样来写:

from langchain.prompts import PromptTemplate
prompt = PromptTemplate.from_template("请帮忙我详细描述一下这个物体,这个物体的名字是: {object}?")
prompt.format(object="猫")

最后生成的结果如下所示:

请帮忙我详细描述一下这个物体,这个物体的名字是: 猫

结合项目来看,若是在ch@t models中,代码会复杂一点点,但是逻辑实际上是一样的。 在ch@t models中,需用到几种MessagePromptTemplate,比如:ChatPromptTemplate,SystemMessagePromptTemplate和HumanMessagePromptTemplate。

我们具体来看下如何采用:

from langchain.prompts.ch@t import (
    ChatPromptTemplate,
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
)
template = "现在,你的角色是{your_role}, 请根据你的角色回答后续的问题."
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
ch@t_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
ch@t_prompt.format_messages(your_role="教师", text="世界上最远的地方是哪里?")

对应的输出如下所示:

[
落到代码里,SystemMessage(content="现在,你的角色是教师, 请根据你的角色回答后续的问题.", additional_kwargs={}),
HumanMessage(content="世界上最远的地方是哪里?")
]

很完美。

Chains

理解这一步时,langchain还有一个很有用的功能就是Chains,他能够把多种不同的功能结合起来。

从实现思路看,比如上面我们用到了LLM,还用到了Prompt的模板,那么我们能够用Chains把他们结合起来:

from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)
chain.run("猫")

当然,也能够结合ch@t采用:

from langchain import LLMChain
from langchain.ch@t_models import ChatOpenAI
from langchain.prompts.ch@t import (
    ChatPromptTemplate,
    SystemMessagePromptTemplate,
    HumanMessagePromptTemplate,
)
ch@t = ChatOpenAI(temperature=0)
template = "现在,你的角色是{your_role}, 请根据你的角色回答后续的问题."
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
human_template = "{text}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
ch@t_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])
chain = LLMChain(llm=ch@t, prompt=ch@t_prompt)
chain.run(your_role="教师", text="世界上最远的地方是哪里?")

Agents

什么是agents? 从字面意义上看,Agents就是代理。

事实上langchain中的Agents就是代理的意思。

从实现思路看,比如我们现在需向openai询问昨天的天气,但是openai本身只是一个大模型,它同时不知道实时的信息。但是借助agents就能够先进行一次判断,看看这个问题是交给大模型处理合适,还是交给搜索引擎来查询比较合适。

这就是agents的作用。

从实现思路看,agents借助LLM来判断需怎么处理这个任务,同时且以什么样的顺序来处理这个任务。

落到代码里,但是采用agents是要有些条件的,首先你这个LLM模型必须兼容agent,这样才能进行后续的工作。

在这个场景下,其次是需挑选合适的工具来进行你想要做的事情,比如:Google Search, Database lookup, Python REPL等等。

落到代码里,最后就是需指定兼容的agent的名字,这样LLM才知道到底需进行哪种action。

下面是一个采用SerpAPI结合openai来进行搜索的例子:

from langchain.agents import AgentType, initialize_agent, load_tools
from langchain.llms import OpenAI
# The language model we're going to use to control the agent.
llm = OpenAI(temperature=0)
# The tools we'll give the Agent access to. Note that the 'llm-math' tool uses an LLM, so we need to pass that in.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
# Finally, let's initialize an agent with the tools, the language model, and the type of agent we want to use.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
# Let's test it out!
agent.run("What was the high temperature in SF yesterday in Fahrenheit? What is that number raised to the .023 power?")

agent比较复杂,功能也很强大,后续我们会细致说明。

Memory

最后要讲解的langchain的一个功能就是Memory。

落到代码里,因为很多时候,我们的应用应该是一个有状态的,也就是说应用需知道你之前做了什么,这样才能够给用户提供更好的服务。

但是之前我们将的LLM或者chain都是无状态的。

从实现思路看,所以langchain提供了一个Memory的功能,能够把之前的输入输出保存起来,便于后续的采用。

总结

落到代码里,有了langchain的各种工具,现在你就能够更快开发一个属于你自己的LLM应用啦。

从实现思路看,以上就是大语言模型的开发利器langchain更快入门学习的详细内容,更多关于大语言模型开发langchain的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
  • ollama搭建本地ai大模型并应用调用的操作方法
  • langchain Prompt大语言模型采用技巧详解
  • Docker AIGC等大模型深度学习环境搭建步骤最新详细版
  • 前端AI机器学习在浏览器中训练模型
  • AI:如何训练机器学习的模型
  • django数据模型on_delete, db_constraint的采用详解
  • TensorFlow入门采用 tf.train.Saver()保存模型
  • Python从零开始训练AI模型的实用教程
喜欢(0)

上一篇

国内用户使用和安装Codex并设置中文回复的实战教程

国内用户使用和安装Codex并设置中文回复的实战教程

下一篇

太吾绘卷天幕心帷刷威望与历练实用技巧分享

太吾绘卷天幕心帷刷威望与历练实用技巧分享
猜你喜欢