LangChain安装和入门案例

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介: LangChain安装和入门案例

一、介绍

LangChain是一个用于开发由语言模型驱动的应用程序的框架

官网

https://www.langchain.com/

中文官网

https://www.langchain.com.cn/

python langchain

https://python.langchain.com.cn/docs/get_started/introduction

https://python.langchain.com/docs/get_started/introduction

二、模块

langchain中有六大核心模块,分别是

  1. 模型输入输出 ( Model I/O ):与语言模型进行接口对于模型,LangChain中可以使用如下三种的不同类型的模型
    LLMs
    大型语言模型(LLMs)是将文本字符串作为输入,并返回文本字符串作为输出。
    聊天模型
    聊天模型将聊天消息列表作为输入,并返回聊天消息。
    文本嵌入模型
    文本嵌入将文本作为输入,并返回一个浮点数列表。
  2. 检索:与特定于应用程序的数据进行接口
  3. 管道:构建调用序列
  4. 代理:让管道根据高级指令选择使用哪些工具
  5. 内存:在管道运行期间保持应用程序状态
  6. 回调:记录和流式传输任何管道的中间步骤

三、安装

1、永久设置pip源为国内源

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

2、安装langchain 如果不想永久设置国内源,可以指定临时源

pip install langchain -i https://mirrors.aliyun.com/pypi/simple

四、基于LLM模型实现简单的程序

1、什么是大型语言模型(LLM)

大语言模型(LLM)是指使用大量文本数据训练的深度学习模型,可以生成自然语言文本或理解语言文本的含义。大语言模型可以处理多种自然语言任务,如文本分类、问答、对话等,是通向人工智能的一条重要途径。

简单理解:

2、目前大型语言模型(LLM)实例

  • GPT3/3.5/4(MoE),openAI公司
  • LLaMA (Meta数据泄漏,开源社区狂欢)
  • chatGLM (中文语料),清华大学开源

3、目前大型语言模型发展历程

GPT3 June 11,2020 发布

2022年11月,OpenAI发布GPT3.5 API的新模型(text-davinci-003)

2022 12月,互联网热度爆发

2022 12月,Langchain第一版发布

4、对于大语言模型的使用会遇到的几个问题

于是LangChain出现了

 

5、简单的LLM模型的应用程序

现在我们已经安装了 LangChain 并设置了我们的环境,我们可以开始构建我们的语言模型LLM应用程序了。

我们可以在自己的本地运行一个开源的LLM模型,但是性能好点的LLM模型需要庞大的GPU资源,家里一般电脑无法支撑,当然你如果有一个a100的显卡那可以

既然我们无法本地搭建,那就可找第三方已经搭建好的模型,有提供好的API供我们使用,比如

  • 百度的 文心ERNIE
  • 阿里 的通义千问
  • Openai
  • Replicate

这些公司都有API,通过这些API调用他们自己搭建好的模型

这里使用国外openai的API调用模型,所以我们首先需要安装他们的 SDK:

pip install openai -i https://mirrors.aliyun.com/pypi/simple

openai api key 获取参考

https://zhuanlan.zhihu.com/p/626463325

我们需要在终端设置环境变量。

export OPENAI_API_KEY="xxxx"

或者,你可以在 Jupiter 教程(或 Python 脚本)内部完成:

import os
os.environ["OPENAI_API_KEY"] = "xxxx"

比如我们要构建一个基于公司产品生成公司名称的服务。首先需要导入 LLM 包装器。

from langchain.llms import OpenAI

然后可以用任何参数初始化包装器。在这个例子中,我们可能希望输出更加随机,所以我们将以温度(temperature)初始化它。

llm = OpenAI(temperature=0.9)

如果你不想设置环境变量,你可以在初始化OpenAI LLM类时直接通过openai_api_key命名参数传递密钥:

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

然后根据输入调用LLM

text = "What would be a good company name for a company that makes colorful socks?"
print(llm(text)) # Feetful of Fun

完整代码

import os
from langchain.llms import OpenAI
 
os.environ["OPENAI_API_KEY"] = "xxxx"
 
llm = OpenAI(temperature=0.9)
text = "What would be a good company name for a company that makes colorful socks?"
print(llm(text))

上面案例演示了LLM最基本的功能:根据输入的文本生成新的文本

实际llm模块中的predict方法专门用于根据输入文本生成对应文本

所以上面的代码也可以如下实现

import os
from langchain.llms import OpenAI
 
os.environ["OPENAI_API_KEY"] = "xxxx"
 
llm = OpenAI()
 
llm.predict("What would be a good company name for a company that makes colorful socks?",temperature=0.9)
 


相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
相关文章
|
2月前
|
前端开发 机器人 API
前端大模型入门(一):用 js+langchain 构建基于 LLM 的应用
本文介绍了大语言模型(LLM)的HTTP API流式调用机制及其在前端的实现方法。通过流式调用,服务器可以逐步发送生成的文本内容,前端则实时处理并展示这些数据块,从而提升用户体验和实时性。文章详细讲解了如何使用`fetch`发起流式请求、处理响应流数据、逐步更新界面、处理中断和错误,以及优化用户交互。流式调用特别适用于聊天机器人、搜索建议等应用场景,能够显著减少用户的等待时间,增强交互性。
612 2
|
4月前
langchain 入门指南 - 使用 Agent
langchain 入门指南 - 使用 Agent
176 0
|
8天前
|
数据采集 监控 搜索推荐
商业案例 I 数据中台用户场景案例
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
4月前
|
安全 API 数据库
langchain 入门指南 - 函数调用
langchain 入门指南 - 函数调用
149 1
|
4月前
|
机器学习/深度学习
langchain 入门指南 - In-context Learning
langchain 入门指南 - In-context Learning
123 0
|
4月前
langchain 入门指南 - 链式请求
langchain 入门指南 - 链式请求
84 0
|
2月前
|
人工智能 前端开发 JavaScript
前端大模型入门(二):掌握langchain的核心Runnable接口
Langchain.js 是 Langchain 框架的 JavaScript 版本,专为前端和后端 JavaScript 环境设计。最新 v0.3 版本引入了强大的 Runnable 接口,支持灵活的执行方式和异步操作,方便与不同模型和逻辑集成。本文将详细介绍 Runnable 接口,并通过实现自定义 Runnable 来帮助前端人员快速上手。
|
2月前
|
存储 人工智能 安全
LangChain-23 Vector stores 向量化存储 并附带一个实际案例 通过Loader加载 Embedding后持久化 LangChain ChatOpenAI ChatGLM3对话
LangChain-23 Vector stores 向量化存储 并附带一个实际案例 通过Loader加载 Embedding后持久化 LangChain ChatOpenAI ChatGLM3对话
92 0
|
4月前
|
存储 机器学习/深度学习 传感器
langchain 入门指南 - 实现一个多模态 chatbot
langchain 入门指南 - 实现一个多模态 chatbot
130 0
|
4月前
|
前端开发 人机交互
langchain 入门指南 - ReAct 模式
langchain 入门指南 - ReAct 模式
119 1