LangChain入门和应用 | 豆包MarsCode AI刷题

335 阅读4分钟

LangChain入门和应用

LangChain 是一个全方位的、基于大语言模型这种预测能力的应用开发工具,它的灵活性和模块化特性使得处理语言模型变得极其简便。不论你在何时何地,都能利用它流畅地调用语言模型,并基于语言模型的“预测”或者说“推理”能力开发新的应用。

LangChain 的标志,我想是1只能说会道的鹦鹉+1个链条

LangChain 的预构建链功能,就像乐高积木一样,无论你是新手还是经验丰富的开发者,都可以选择适合自己的部分快速构建项目。对于希望进行更深入工作的开发者,LangChain 提供的模块化组件则允许你根据自己的需求定制和创建应用中的功能链条。

LangChain支持Python和JavaScript两个开发版本,我们这个教程中全部使用Python版本进行讲解。

安装和配置LangChain

LangChain的基本安装特别简单。

pip install langchain

这是安装 LangChain 的最低要求。LangChain 要与各种模型、数据存储库集成,比如说最重要的OpenAI的API接口,比如说开源大模型库HuggingFace Hub,再比如说对各种向量数据库的支持。默认情况下,是没有同时安装所需的依赖项。

也就是说,当你 pip install langchain 之后,可能还需要 pip install openaipip install chroma(一种向量数据库)……

用下面两种方法,我们就可以在安装 LangChain 的方法时,引入大多数的依赖项。

安装LangChain时包括常用的开源LLM(大语言模型) 库:

pip install langchain[llms]

不懂的小伙伴我们也会在以后单独配置模型

OpenAI API

下面说一说OpenAI的API。

LangChain本质上就是对各种大模型提供的API的套壳,是为了方便我们使用这些API,搭建起来的一些框架、模块和接口。

因此,要了解LangChain的底层逻辑,需要了解大模型的API的基本设计思路。而目前接口最完备的、同时也是最强大的大语言模型,当然是OpenAI提供的GPT家族模型。

img

当然,要使用OpenAI API,你需要先用科学的方法进行注册,并得到一个API Key。

img

但是,考虑到国内的便利性和学习的需求,我们还是使用国内的大模型去实践

智谱 AI

如何在 LangChain 中使用 ZHIPU AI API,使用 langchain.chat_models.ChatZhipuAI。

GLM-4 是一种与人类意图一致的多语言大型语言模型,具有问答、多轮对话和代码生成等功能。与上一代相比,新一代基模型 GLM-4 的整体性能得到了显着提升,支持更长的上下文;更强大的多模态;支持更快的推理速度,更高的并发性,大幅降低推理成本;同时,GLM-4 增强了智能代理的能力。

安装

首先,在 Python 环境中安装 zhipuai 包。运行以下命令

#!pip install --upgrade httpx httpx-sse PyJWT

导入所需模块

安装后,将必要的模块导入 Python 脚本

pip install langchain_community
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage

API 参考: ChatZhipuAI | AIMessage | HumanMessage | SystemMessage

设置API 密钥

登录 ZHIPU AI 获取 API 密钥以访问模型。

image.png

import osos.environ["ZHIPUAI_API_KEY"] = "zhipuai_api_key"

初始化 ZHIPU AI 聊天模型

以下是初始化聊天模型的方法

chat = ChatZhipuAI(
    model="glm-4",    // 模型选择,参考控制台,有些模型是付费的。
    temperature=0.5, // 采样温度,一般默认0.5
)

基本用法

使用系统和人类消息调用模型,如下所示

messages = [
    AIMessage(content="Hi."),
    SystemMessage(content="Your role is a poet."),
    HumanMessage(content="Write a short poem about AI in four lines."),
]

这段代码是使用 Langchain 库来处理聊天模型的请求。

在代码中,具体使用的 Langchain 模块包括:

  • langchain_community.chat_models 中的 ChatZhipuAI 类:用于创建与 ZhipuAI 进行交互的实例。
  • langchain_core.messages 中的消息类(AIMessageHumanMessageSystemMessage):用于构建聊天上下文中的消息格式。
response = chat.invoke(messages)
print(response.content)  # Displays the AI-generated poem

完整代码

from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
​
import os
​
os.environ["ZHIPUAI_API_KEY"] = "你的key"
chat = ChatZhipuAI(
    model="glm-4",
    temperature=0.5,
)
messages = [
    AIMessage(content="你好,有什么可以帮你的吗"),
    SystemMessage(content="你现在是一个诗人"),
    HumanMessage(content="写一首四行小诗"),
]
response = chat.invoke(messages)
print(response.content)  # Displays the AI-generated poem

注意,初次使用可能会报这个错误,只需按提示安装相应的包即可

*ImportError: jwt package not found, please install it with`pip install pyjwt`*
// pyjwt 是一个用于处理 JSON Web Tokens (JWT) 的 Python 库。

安装pyjwt:

pip install pyjwt

模型将会输出一个四行小诗

image-20241103102935619

image.png

现在,你已经完成了LangChain调用国产模型的基本使用。

下一节,我们来做一个快速实战项目,简单的体会下langchain的优势。 文章到此结束啦,第一次写文章,请多多关照!