目录
一、前言
二、LangChain 概述
2.1 LangChain 是什么
2.2 LangChain 重要特点
2.3 LangChain能做什么和能力一览
2.4 LangChain 重要应用场景
三、环境准备
3.1 python 开发环境
3.1.1 python环境
3.1.2 设置vscode环境
3.1.3 安装LangChain相干插件包
3.2 获取大模型平台ApiKey
3.2.1 获取百度千帆大模型ApiKey
3.2.2 获取百川大模型ApiKey
3.2.3 获取通义大模型apikey
四、平台大模型调用LangChain能力操作实战
4.1 百度千帆大模型调用LangChain
4.1.1 Chat models 能力利用
4.1.2 LLM 能力利用
4.1.3 Embedding 能力利用
4.2 百川大模型调用LangChain
4.2.1 Chat models能力利用
4.2.2 LLM 能力代码操作演示
4.2.3 Embedding模型能力利用
4.3 通义大模型调用LangChain
4.3.1 LLM 能力利用
4.3.2 利用chat models能力
4.3.3 利用Prompt能力
五、写在文末
一、前言
近年来,自然语言处置惩罚(NLP)领域取得了显着希望,特别是大型预训练语言模型的出现,如 ChatGPT 系列、BERT、T5 等。这些模型在各种 NLP 使命中展现了强盛的性能,而且能够通过微调顺应特定应用场景。然而,开发和部署这样的模型对于许多开发者来说仍然是一个复杂的过程,涉及到数据准备、模型选择、训练优化、推理服务等多个环节。因此,需要一个专门的框架来简化这一过程,而 LangChain 的出现很好的解决了这个标题。本文将详细先容下LangChain 的利用。
二、LangChain 概述
2.1 LangChain 是什么
LangChain 是一个专注于构建和毗连语言模型(Language Models, LM)应用的开源框架。它旨在简化开发者在创建基于语言模型的应用和服务时所面临的挑战,提供了一系列工具和库来加速开发过程,并使这些模型更容易被集成到各种应用程序中。
简单来说,LangChain提供了灵活的抽象和AI优先的工具,可帮助开发职员将LLM应用程序从原型转化为生产环境。 它还提供了一套工具,可帮助开发职员构建上下文感知、推理应用程序, LangChain的工具包罗聊天机器人、文档分析、择要、代码分析、工作流自动化、自界说搜索等。官网地址:LangChain
2.2 LangChain 重要特点
LangChain具有下面的特点:
- 模块化架构:
- LangChain 提供了一个高度模块化的架构,允许用户根据需要选择差别的组件进行组合。这种灵活性使得开发者可以根据自己的需求定制解决方案,无论是构建简单的聊天机器人还是复杂的企业级自然语言处置惩罚体系。
- 丰富的预训练模型支持
- 该框架支持多种流行的预训练语言模型,如 GPT 系列、BERT、T5 等等。这为开发者提供了广泛的选择空间,可以根据具体应用场景挑选最符合的模型。
- 强盛的推理与生成能力:
- 框架内置了对文本分类、命名实体辨认、问答体系、对话管理等多种使命的支持,同时也提供了高级功能如文本择要、翻译等,极大地扩展了语言模型的应用范围。
- 便捷的数据处置惩罚工具:
- LangChain 内置了数据清洗、标注、增强等一系列数据处置惩罚工具,帮助开发者更高效地准备训练数据或优化现有数据集的质量。
- 易于部署和扩展:
- LangChain 支持云服务和本地部署两种方式,而且具备精良的可扩展性,能够轻松应对从小型实行项目到大规模生产环境的差别需求。
- 社区驱动的发展模式:
- 作为一个活泼发展的开源项目,LangChain 拥有一个庞大而热情的社区。通过 GitHub、Slack 等平台,成员们可以分享履历、解决标题以及贡献代码,共同推动项目的进步。
- 文档细致:
- LangChain 提供了详细的官方文档和技能博客,帮助新手快速上手,同时也为有履历的开发者提供了深入明白框架内部运作的机会。
2.3 LangChain能做什么和能力一览
下面是一张LangChain的能力模型
联合上面这幅图,对LangChain 的能力做如下总结:
- LLMs & Prompt
- 提供了现在市面上险些全部 LLM 的通用接口,同时还提供了 提示词 的管理和优化能力,同时也提供了非常多的相干适用工具,以方便开发职员利用 LangChain 与 LLMs 进行交互。
- Chains
- LangChain 把 提示词、大语言模型、结果解析封装成 Chain,并提供标准的接口,以便允许差别的Chain 形成交互序列,为 AI 原生应用提供了端到端的 Chain
- Retrieval Augemented Generation
- 检索增强生成式 是一种解决预训练语料数据无法及时更新而带来的回答内容陈旧的方式。LangChain 提供了支持检索增强生成式的Chain,在利用时,这些Chain会起首与外部数据源进行交互以获得对应数据,然后再利用获得的数据与 LLMs 进行交互。典型的应用场景如:基于特定数据源的问答机器人。
- Agent
- 对于一个使命,代理重要涉及让 LLMs 来对使命进行拆分、执行该行动、并观察执行结果,代理 会重复执行这个过程,直到该使命完成为止。LangChain 为 代理 提供了标准接口,可供选择的代理,以及一些端到端的代理的示例。
- Memory
- 指的是 chain 或 agent 调用之间的状态长期化。LangChain 为 内存 提供了标准接口,并提供了一系列的 内存 实现。
- Evaluation
- LangChain 还提供了非常多的评估能力以允许我们可以更方便的对 LLMs 进行评估。
2.4 LangChain 重要应用场景
Langchain可以在下面的一些场景中进利用用
- 个人助手
- 一些app或小程序,输入标题即可得到回答内容
- 聊天机器人
- 表格数据查询
- 文档总结
- API交互
- 信息提取
三、环境准备
在正式开始利用LangChain 之前,需要先把开发环境准备好,LangChain现在有两个语言实现,python和Node.js,本文利用python进行演示。
3.1 python 开发环境
下面操作的环境基于win11的环境之下
3.1.1 python环境
3.1.2 设置vscode环境
- vscode 版本没有限定
- vscode 安装python编码插件,支持python编程
3.1.3 安装LangChain相干插件包
1)更新pip
- pip install --upgrade pip
复制代码 2)设置拉取安装包镜像源
- 可以加速pip install过程中拉取安装包的速率,这里利用的是清华镜像源
- pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
复制代码 3)安装几个与LangChain相干包
- pip install langchain
- pip install qianfan
- pip install langchain_community
复制代码 安装过程
3.2 获取大模型平台ApiKey
由于LangChain支持国表里多种大模型对其API的利用,好比Open AI,国内的通义千问,百川大模型,百度的千帆大模型等,所以在后文的演示中需要对接各个平台,就需要提前获取各个平台的apikey才能在代码集成中正常调用。这里以千帆大模型,百川大模型和通义千问为例进行说明演示。
3.2.1 获取百度千帆大模型ApiKey
1) 登录百度千帆大模型平台
登录地址,如果没有账号可以先注册一个账号
https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application/v1
2)创建应用
在应用接入那里,创建一个测试利用的应用,创建之后,平台会为该应用分配几个基本的信息,好比应用ID,ApiKey信息等,背面程序中需要通过这几个参数来调用langchain的api;
- 应用创建之后,注意保存这个应用的几个核心参数,包罗:API Key,Secret Key
3.2.2 获取百川大模型ApiKey
登录百川平台,点击创建API Key,然后会生成一个可以利用的apikey,过程比较简单
https://platform.baichuan-ai.com/console/apikey
3.2.3 获取通义大模型apikey
参考下面这个文档,获取apikey,通常做法是,在阿里百炼大模型平台注册并获取这个apikey即可
https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
四、平台大模型调用LangChain能力操作实战
4.1 百度千帆大模型调用LangChain
LangChain 支持多种大模型对其API能力的利用,通过官方文档也可以看到,它不仅支持一些主流的大模型平台的调用,好比 OpenAI,也支持像持百度千帆大模型、百川大模型、腾讯混元大模型、通义千问大模型等调用,下面以千帆大模型为例进行Chat模型相干能力的利用。
https://python.langchain.com/v0.2/docs/integrations/llms/
4.1.1 Chat models 能力利用
点击Baidu Qianfan ,调解到下面的页面,官方也提供了详细的接入过程,这里以0.2版本为例进行说明
点击链接进入参考示例,里面给出了详细的接入示例过程
联合官方API示例,提供如下参考代码:
- import os
-
- from langchain_community.chat_models import QianfanChatEndpoint
- from langchain_core.messages import HumanMessage
-
- # 设置环境变量 #换成网页中的API_KEY和SECRET_KEY
- os.environ["QIANFAN_AK"] = "你的apikey"
- os.environ["QIANFAN_SK"] = "你的secretkey"
-
- # 初始化聊天端点
- chat = QianfanChatEndpoint(streaming=True)
-
- # 无限循环,直到用户输入 'exit'
- while True:
- # 获取用户输入
- user_input = input("请输入您的问题(输入'exit'退出): ")
-
- # 检查是否输入了 'exit'
- if user_input.lower() == 'exit':
- print("退出程序...")
- break
-
- # 构造 HumanMessage 对象并发送请求
- response = chat([HumanMessage(content=user_input)])
-
- # 打印响应内容
- print(response.content)
复制代码 运行这段代码,观察控制台输出结果,可以在控制台与langchain进行持续对话了
4.1.2 LLM 能力利用
官方文档地址:
Baidu Qianfan | |