【AI大模型应用开发】【LangChain系列】0. LangChain框架介绍,实现LangChain的Hello World

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: 【AI大模型应用开发】【LangChain系列】0. LangChain框架介绍,实现LangChain的Hello World

AI时代,相信大家或多或少都听过 LangChain 的大名。通俗的说,LangChain是一个面向大模型的开发框架(SDK)。

目前 LangChain 仍在快速迭代中,所以在使用中要时刻关注你所使用的版本和接口变更。

0. 认识LangChain框架

从上图可以看到,LangChain 目前有四层框架:

  • 最下层深色部分:LangChain的Python和JavaScript库。包含无数组件的接口和集成,以及将这些组件组合到一起的链(chain)和代理(agent)封装,还有链和代理的具体实现。
  • Templates:一组易于部署的参考体系结构,用于各种各样的任务。
  • LangServe:用于将LangChain链部署为REST API的库。
  • LangSmith:一个开发人员平台,允许您调试、测试、评估和监控基于任何LLM框架构建的链,并与LangChain无缝集成。

在最下层深色部分- LangChain的Python和JavaScript库中,可以看到它封装了一系列模块。

  • 模型 I/O 封装,包括:
  • LLMs:大语言模型
  • ChatModels:一般基于 LLMs,但按对话结构重新封装
  • Prompt:提示词模板
  • OutputParser:解析输出
  • Retrieval 数据连接与向量检索封装,包括:
  • Retriever: 向量的检索
  • Document Loader:各种格式文件的加载器
  • Embedding Model:文本向量化表示,用于检索等操作
  • Verctor Store: 向量的存储
  • Text Splitting:对文档的常用操作
  • Agents 根据用户输入,自动规划执行步骤,自动选择每步需要的工具,最终完成用户指定的功能,包括:
  • Tools:调用外部功能的函数,例如:调 google 搜索、文件 I/O、Linux Shell 等等
  • Toolkits:操作某软件的一组工具集,例如:操作 DB、操作 Gmail 等等
  • Chain 实现一个功能或者一系列顺序功能组合
  • Memory 记忆封装,也就是上下文的管理能力封装
  • Callbacks 一些过程回调函数

1. 动手实现你的第一个LangChain程序

1.1 LangChain 环境

(1)安装 LangChain

  • pip 安装
pip install langchain
  • conda 安装
conda install langchain -c conda-forge

(2)安装 LangChain X OpenAI

LangChain封装了对于大模型的调用接口,也就是说,我们可以选择使用的模型,无论是在线模型还是本地部署的模型。本文我们还是使用OpenAI的API来调用大模型。

pip install -U langchain-openai

1.2 通过LangChain的接口来调用OpenAI对话

import os
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
from langchain_openai import ChatOpenAI ## langchain封装的openai对话接口
 
llm = ChatOpenAI() # 默认是gpt-3.5-turbo
response = llm.invoke("你是谁") ## 通过 invoke 传入对话
print(response.content)
## 运行结果输出:我是一个AI助手,没有具体的身份。我是由OpenAI开发的,可以帮助回答问题和提供信息。

1.3 多轮对话的封装

import os
# 加载 .env 到环境变量
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
from langchain_openai import ChatOpenAI
 
llm = ChatOpenAI() # 默认是gpt-3.5-turbo
from langchain.schema import (
    AIMessage, #等价于OpenAI接口中的assistant role
    HumanMessage, #等价于OpenAI接口中的user role
    SystemMessage #等价于OpenAI接口中的system role
)
messages = [
    SystemMessage(content="你是[同学小张]的个人助理。你叫[小明]"), 
    HumanMessage(content="我叫[同学小张]"), 
    AIMessage(content="好的老板,你有什么吩咐?"),
    HumanMessage(content="我是谁") 
]
response = llm.invoke(messages)
print(response.content)
## 运行输出:您是同学小张。

通过以上代码可以看到:

  • LangChain内封装了AIMessage、HumanMessage、SystemMessage等消息类型,区分消息来源。
  • invoke对话接口接收一系列消息,可以实现多轮对话(上述代码中的多轮对话在哪:第一轮是“我叫[同学小张]”,第二轮我问它"我是谁"时,第一轮我的名字的信息带进去了,所以它才能回复:“您是同学小张”)。

这样模型封装的意义在哪?

  • 可以实现不同模型间的无缝切换,llm = ChatOpenAI()是GPT模型,它可以换成 llm = ErnieBotChat(),其它代码都不用改,就可以切换到文心大模型。

好了,本文先写到这,算是对 LangChain 系列开了个头。后面咱们深入各个模块去学习和实战。

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是同学小张
  • 欢迎 点赞 + 关注 👏,促使我持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏
  • 踩坑不易,感谢关注和围观

本站文章一览:

相关实践学习
使用CLup和iSCSI共享盘快速体验PolarDB for PostgtreSQL
在Clup云管控平台中快速体验创建与管理在iSCSI共享盘上的PolarDB for PostgtreSQL。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
AI大模型的核心成功因素通常可以归结为三大要素:大数据、大算力和强算法。
AI大模型的核心成功因素通常可以归结为三大要素:大数据、大算力和强算法。
19 0
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
AI大模型的核心
AI大模型的核心
13 0
|
4天前
|
机器学习/深度学习 存储 前端开发
大模型应用框架-LangChain(二)
LangChain由 Harrison Chase 创建于2022年10月,它是围绕LLMs(大语言模型)建立的一个框架,LLMs使用机器学习算法和海量数据来分析和理解自然语言,GPT3.5、GPT4是LLMs最先进的代表,国内百度的文心一言、阿里的通义千问也属于LLMs。LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。 LangChain目前有两个语言的实现:python、nodejs。
|
4天前
|
机器学习/深度学习 自然语言处理 API
大模型应用框架-LangChain(一)
LangChain由 Harrison Chase 创建于2022年10月,它是围绕LLMs(大语言模型)建立的一个框架,LLMs使用机器学习算法和海量数据来分析和理解自然语言,GPT3.5、GPT4是LLMs最先进的代表,国内百度的文心一言、阿里的通义千问也属于LLMs。LangChain自身并不开发LLMs,它的核心理念是为各种LLMs实现通用的接口,把LLMs相关的组件“链接”在一起,简化LLMs应用的开发难度,方便开发者快速地开发复杂的LLMs应用。 LangChain目前有两个语言的实现:python、nodejs。
|
4天前
|
机器学习/深度学习 人工智能 算法
AI - 决策树模型
决策树算法起源于古希腊的逻辑推理,20世纪在军事策略研究中首次提出。它通过构建树形模型模拟决策过程,每个节点代表一个属性判断,分支代表可能结果。ID3算法基于信息增益,C4.5则引入信息增益率,解决了ID3偏好多值属性的问题,还能处理缺失值。CART决策树适用于分类和回归任务,使用基尼系数或信息增益来选择特征。在Python的`sklearn`库中,`DecisionTreeClassifier`实现决策树分类,通过参数如`criterion`、`max_depth`等控制模型。
|
4天前
|
机器学习/深度学习 资源调度 算法
AI-逻辑回归模型
逻辑回归是一种用于分类问题的统计模型,尤其适合二分类任务,如预测广告点击率、判断邮件是否为垃圾邮件、评估疾病风险和预测信用卡违约等。模型通过线性方程(logit函数)结合Sigmoid函数将结果映射到0到1区间,表示概率。损失函数通常使用交叉熵,优化时常用梯度下降。评估指标包括ROC曲线和AUC,后者衡量模型整体性能,值越接近1表示性能越好。在不平衡数据集上,可使用`class_weight='balanced'`来调整样本权重。
|
4天前
|
机器学习/深度学习 算法 大数据
AI-线性回归模型(二)
这篇内容介绍了梯度下降法在机器学习中的应用,特别是在线性回归中的角色。它是一种迭代优化算法,用于找到损失函数最小值的参数。全梯度下降(FGD)使用所有数据计算梯度,适合大数据但计算成本高;随机梯度下降(SGD)随机选取样本,速度快但可能收敛到局部最小值。随机平均梯度下降(SAG)结合两者的优点,提高收敛速度。评估线性回归模型的性能通常使用平均绝对误差、均方误差和均方根误差。文中还展示了波士顿房价预测案例,使用SGDRegressor进行训练,并讨论了学习率的影响。最后提到了如何使用`joblib`库保存和加载模型。
|
4天前
|
机器学习/深度学习 API Python
AI-线性回归模型(一)
线性回归是用于分析变量间线性关系的统计方法,常见于房价预测、销售额预测和贷款额度评估。通过最小二乘法寻找最佳直线方程y=wx+b,其中y是因变量,x是自变量,w和b是模型参数。在Python的`sklearn`库中,使用`LinearRegression`类可构建模型,通过`fit`训练和`predict`进行预测。损失函数通常用平方损失(均方误差)衡量预测误差,优化目标是最小化这些误差的平方和。
|
5天前
|
人工智能 自然语言处理 测试技术
通义灵码评测: 阿里云出品通义大模型AI代码编程辅助工具
通义灵码是阿里云出品的一款基于通义大模型的AI智能编码辅助工具,提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力,并针对阿里云 SDK/OpenAPI 的使用场景调优,助力开发者高效、流畅的编码。
209 0
|
5天前
|
人工智能 自然语言处理 搜索推荐
AI时代:人工智能大模型引领科技创造新时代
AI时代:人工智能大模型引领科技创造新时代
36 0

热门文章

最新文章