【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 一起交流💬,一起进步💪。
  • 微信公众号也可搜【同学小张】 🙏
  • 踩坑不易,感谢关注和围观

本站文章一览:

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
人工智能 JSON 自然语言处理
基于阿里云通义千问的AI模型应用开发指南
阿里云通义千问是阿里巴巴集团推出的多模态大语言模型平台,提供了丰富的API和接口,支持多种AI应用场景,如文本生成、图像生成和对话交互等。本文将详细介绍阿里云通义千问的产品功能,并展示如何使用其API来构建一个简单的AI应用,包括程序代码和具体操作流程,以帮助开发者快速上手。
714 3
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
566 2
|
11天前
|
人工智能 数据管理 API
阿里云百炼又获大奖!阿里云百炼入选 2024 最受开发者欢迎的 AI 应用开发平台榜15强
2024年最受开发者欢迎的AI应用开发平台榜单发布,阿里云百炼入选15强。持续推动AI开发者生态建设,提供开放平台、培训支持、行业解决方案,注重数据安全与合规,致力于生态合作与共赢,加速企业数智化转型。
|
2月前
|
存储 人工智能 uml
介绍一款好用的开源画图神器-draw.io | AI应用开发
draw.io 是一款基于浏览器的开源绘图工具,无需安装即可使用,支持多种操作系统和设备。其简洁的界面、丰富的形状库、智能对齐功能和强大的云端协作能力,使其成为专业人士和创意爱好者的首选。无论是产品设计、流程图绘制还是思维导图构建,draw.io 都能满足你的多样化需求。【10月更文挑战第7天】
235 0
|
2月前
|
存储 人工智能 分布式计算
Parquet 文件格式详解与实战 | AI应用开发
Parquet 是一种列式存储文件格式,专为大规模数据处理设计,广泛应用于 Hadoop 生态系统及其他大数据平台。本文介绍 Parquet 的特点和作用,并演示如何在 Python 中使用 Pandas 库生成和读取 Parquet 文件,包括环境准备、生成和读取文件的具体步骤。【10月更文挑战第13天】
392 60
|
1月前
|
JSON 数据可视化 NoSQL
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
本文介绍了LangChain的LLM Graph Transformer框架,探讨了文本到图谱转换的双模式实现机制。基于工具的模式利用结构化输出和函数调用,简化了提示工程并支持属性提取;基于提示的模式则为不支持工具调用的模型提供了备选方案。通过精确定义图谱模式(包括节点类型、关系类型及其约束),显著提升了提取结果的一致性和可靠性。LLM Graph Transformer为非结构化数据的结构化表示提供了可靠的技术方案,支持RAG应用和复杂查询处理。
122 2
基于LLM Graph Transformer的知识图谱构建技术研究:LangChain框架下转换机制实践
|
2月前
|
人工智能 Java API
阿里云开源 AI 应用开发框架:Spring AI Alibaba
近期,阿里云重磅发布了首款面向 Java 开发者的开源 AI 应用开发框架:Spring AI Alibaba(项目 Github 仓库地址:alibaba/spring-ai-alibaba),Spring AI Alibaba 项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。本文将详细介绍 Spring AI Alibaba 的核心特性,并通过「智能机票助手」的示例直观的展示 Spring AI Alibaba 开发 AI 应用的便利性。示例源
1277 12
|
1月前
|
人工智能 运维 Serverless
【CAP评测有奖】邀您共探 AI 应用开发新趋势,赢取多重好礼!
云应用开发平台 CAP(Cloud Application Platform)是阿里云推出的一站式应用开发和生命周期管理平台。是专为现代开发者打造的一站式解决方案,旨在简化应用开发流程,加速创新步伐。它集成了丰富的 Serverless + AI 应用模板、开源工具链与企业级应用管理功能,让无论是个人还是企业开发者,都能轻松构建云上应用,并实现持续迭代升级。
|
2月前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
355 6
|
2月前
|
存储 人工智能 Java
Neo4j从入门到精通:打造高效知识图谱数据库 | AI应用开发
在大数据和人工智能时代,知识图谱作为一种高效的数据表示和查询方式,逐渐受到广泛关注。本文从入门到精通,详细介绍知识图谱及其存储工具Neo4j,涵盖知识图谱的介绍、Neo4j的特点、安装步骤、使用方法(创建、查询)及Cypher查询语言的详细讲解。通过本文,读者将全面了解如何利用Neo4j处理复杂关系数据。【10月更文挑战第14天】
171 6