最近很火的 LangChain 你了解吗

news2024/11/26 18:30:18

最近 ChatGPT 很火,AIGC 很火,各类国产化 AI 很火。周边的 AI 工具集、框架也很火。各类新词也层出不穷。今天和大家学习和分享的是重量级新选手 LangChain。

一、什么是 LangChain

LangChain 是一个 2023 年 1 月(v0.0.64)在 GitHub 上新开源的新框架,框架的作用是可以通过可组合性使用 LLM 构建你的应用程序。

现阶段更新频率较高。有 Python 和 JS 的两种版本。和 AIGC 一样的热度,广受追捧,Stars 已经冲到了 38k 左右。

官方的说辞:LangChain 是一个用于开发由语言模型驱动的应用程序的框架。我们相信,最强大、最与众不同的应用程序不仅会通过API调用语言模型,而且还会:

  • 具有数据意识:将语言模型与其他数据源连接起来。
  • 具有自主性:允许语言模型与其环境进行交互。

总的而言,LangChain 设计目标就是支持以上这些类型的应用程序。

不知名网友的说辞:看起来是个基于语言模型(LLM)各路集成、封装,串联、扩展,提供开箱即用的框架集,看起来概念不少。

二、价值在哪

LangChain 说,自己的主要价值在于以下:

  • 组件化(Components):LangChain 为使用语言模型所需的组件提供了模块化的抽象。LangChain 还为所有这些抽象提供了实现的集合。
  • 特定于用例的链(Use-Case Specific Chains):链可以被认为是以特定的方式组装这些组件,以便最好地完成特定的用例。它们旨在成为一个更高级的接口,人们可以通过它轻松地开始使用特定的用例。这些链也被设计为可定制的。

第一点:很好理解,LangChain 把各种东西做成了组件化、模块化,我们可以直接填个 OpenAI Key 就实现开箱即用,或是自己实现这个组件。就是做了各类的抽象接口化。

第二点:看着有点绕口。一开始听别人介绍 LangChain 时,也总满口链什么什么的。。。一开始真的不太理解。其实照官方的信息一看,这就是支持场景化的意思,可以把一个个行为拼装成一个 ”链“。

具体的组件和链会在后面再进一步展开。

三、安装和使用

我们先安装,直接用 pip 或 pip3 都可以。在命令行运行如下安装命令。

安装 langchain:

$ pip3 install langchain

安装 openai:

$ pip3 install openai

安装完后,这两个软件库就已经被拉取到你的本地目录下了。

如果有兴趣查看,可以使用:pip3 show -f openai 命令,就看到 openai 这个库的具体信息和目录:

$ pip3 show -f openai
Name: openai
Version: 0.27.6
Summary: Python client library for the OpenAI API
Home-page: https://github.com/openai/openai-python
Author: OpenAI
Author-email: support@openai.com
License: None
Location: /usr/local/lib/python3.9/site-packages
Requires: tqdm, aiohttp, requests
Required-by: 
Files:
  ../../../bin/openai
  openai-0.27.6.dist-info/INSTALLER
  openai-0.27.6.dist-info/LICENSE

四、快速 Demo

安装完毕后,快速写一个 LangChain Demo。在你常用的代码目录,新建一个 .py 文件,用于编写 Demo 代码。

代码如下:

import os
from langchain.llms import OpenAI

os.environ["OPENAI_API_KEY"] = "设置你的 OpenAI KEY"

llm = OpenAI(temperature=0.9)

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

输出结果:

Rainbow Sockz

每次输出的结果可能都不太一样。作为一个 Demo,我们先跑起来,后续再进一步深究。

注意:如果调用不通的话,可能需要科学上网。

五、使用 OpenAI KEY

Demo 代码中的 OpenAI 的 KEY 可以到 https://platform.openai.com/account/api-keys 获取或创建一个新的。

在 Usage 栏目也可以看到自己当前账号的使用额度和调用情况。早期的账号是有默认送 18 美金的免费额度,现在(2023年中)的是送 5 美金。

如下图:

六、总结

今天我们快速的介绍了 LangChain 是一个基于 LLM 的各路集成、封装,串联、扩展,提供开箱即用的框架集,主要价值是组件和链。初步的涉猎了里面的一些大概念。

紧接着我们运行了一个 Demo,初步跑通了 LangChain。完成了第一步的学习和了解。后续我们会继续深入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页聊天室测试

1.项目介绍: 该项目是一个基于网页的聊天室应用,具有用户注册、登录、会话列表、好友列表、发送消息等功能。下面是更详细的项目介绍: 用户注册和登录功能:用户可以通过输入用户名和设置密码来注册新账户,在注册过程中…

实施工程师需要了解的mysql知识

一、前言 做为实施工程师,在现场有时候是需要协助开发人员做一些简单的sql查询、更新动作的,不需要多复杂,下面就简单介绍下mysql的安装以及举一些最简单常用的sql用例。 二、安装mysql 2.1 下载安装包 第一步:在百度搜索"…

vue 通过多组复选框来过滤数据

1.通过if else 来筛选数据 <template> <div><div><label><input type"checkbox" v-model"checkedNames" value"北京"> 北京</label><label><input type"checkbox" v-model"chec…

使用python进行AI选股之同花顺问财

通过问财python库&#xff0c;可以输入中文就能获取AI选股结果&#xff0c;而不需要写很多代码来进行股票选取&#xff0c;如上图就是输入中文”均线多头排列的股票”获取的结果。本文主要介绍问财python库的选股功能和使用步骤。 什么是问财python库 同花顺i问财是同花顺旗下…

Echarts 定制化日历图

目录 改造一&#xff08;变化X轴、Y轴label&#xff09;&#xff1a; 改造二&#xff08;单元格、图例改造&#xff09;&#xff1a; 改造三&#xff08;tooltip、细节优化&#xff09;&#xff1a; 最近在做可视化&#xff0c;发现日历图挺有意思&#xff0c;分享一波吧&am…

SpringBoot项目打包Docker镜像

1、创建springboot项目&#xff0c;并在根目录新建Dockerfile文件 Dockerfile文件内容 FROM adoptopenjdk/openjdk8:jre8u-nightly ADD target/test-k8s-0.0.1-SNAPSHOT.jar test-k8s-0.0.1-SNAPSHOT.jar ENTRYPOINT ["java","-jar","/test-k8s-0.0.…

Python编程——字符串的拼接

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 本文专栏&#xff1a;python专栏 专栏介绍&#xff1a;本专栏为免费专栏&#xff0c;并且会持续更新python基础知识&#xff0c;欢迎各位订阅关注。 前言 本文将讲解字符串的拼接与使用%进行拼接。 目录 ​编…

(二)Qt下多线程实现多个海康工业相机内触发采集回调取流显示

系列文章目录 提示&#xff1a;这里是该系列文章的所有文章的目录 第一章&#xff1a;&#xff08;一&#xff09;Qt下实现多个海康工业相机内触发采集回调取流显示 第二章&#xff1a;&#xff08;二&#xff09;Qt下多线程实现多个海康工业相机内触发采集回调取流显示 文章目…

单例模式之常见模式详解

单例模式之常见模式详解 单例模式的定义单例模式的分类饿汉模式懒汉模式 单例模式的主要特点单例模式的应用场景总结 单例模式的定义 单例模式是一种设计模式&#xff0c;用于确保一个类只有一个实例&#xff0c;并提供一个全局访问点来获取该实例。 在单例模式中&#xff0c;类…

2023需求最高的编程语言:Python、JavaScript和Java

科技招聘平台 CodinGame 和 CoderPad 最新发布了一份 2023 年科技行业招聘报告&#xff0c;基于对 14000 名专业人士的调查&#xff0c;对 2023 年科技行业招聘人员和求职者可能面临的情况进行了深入分析。其中一些关键亮点包括&#xff1a; 59% 的开发人员没有计算机科学方面的…

吴恩达机器学习笔记-week2

第2周 目录 第2周 四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征4.2 多变量梯度下降4.3 梯度下降法实践1-特征缩放4.4 梯度下降法实践2-学习率4.5 特征和多项式回归4.6 正规方程4.7 正规方程及不可逆性(可选) 四、多变量线性回归(Linear Regres…

docker的安装以及常用命令详解

目录 一、docker简介 二、docker安装 三、常用命令 1、显示 Docker 版本信息 2、显示 Docker 系统信息&#xff0c;包括镜像和容器数 3、帮助 四、镜像管理 1、列出镜像 2、获取一个新的镜像 3、查找镜像 4、删除镜像 5、镜像导入与导出 五、容器生命周期 1、运行…

Bring Your Data!Self- supervised Evolution of Large Language Models

Bring Your Data&#xff01;Self- supervised Evolution of Large Language Models IntroductionMethod参考 Introduction 这篇论文提出了一种自监督的评估方式来衡量大型语言模型的能力和局限性。常规的基于数据集的评估方式存在一些缺点: 需要不断新建数据集。存在数据集和…

外包软件定制开发中时间和进度管理

引言 时间和进度管理是外包软件定制开发项目中至关重要的方面。有效地管理时间和进度可以确保项目按计划顺利进行&#xff0c;减少延误和风险&#xff0c;从而提高交付的可靠性和质量。然而&#xff0c;由于外包团队和客户位于不同的地理位置和时区&#xff0c;时间和进度管理…

[MySQL]MySQL索引

[MySQL]MySQL索引 文章目录 [MySQL]MySQL索引1. 索引的概念2. 认识磁盘磁盘的内部结构磁盘中的一个盘片结构定位扇区磁盘随机访问与连续访问 3. MySQL与磁盘交互的基本单位4. 建立共识5. 索引的理解创建测试表进行测试理解单个page理解多个page页目录其他的数据结构的问题聚簇索…

ModaHub魔搭社区:AI原生云向量数据库Zilliz Cloud角色与权限

目录 组织和项目 角色和权限 访问权限等级 文档推荐 Zilliz Cloud 提供访问控制。您可以灵活管理用户,为用户分配不同角色,授予用户不同的集群资源访问和操作权限。无权限的用户无法访问特定资源。 组织和项目 Zilliz Cloud 通过组织和项目实现访问控制和资源分离。 …

PostgreSQL数据库的部署与优化

文章目录 一.PostgreSQL数据库1.PostgreSQL数据库的概念1.1 PostgreSQL 的核心概念 2.PostgreSQL特点3.PostgreSQL的作用4.PostgreSQL的应用场景5.PostgreSQL、mysql、oracle的对比 二.Linux系统安装PostgresSQL&#xff08;Centos7&#xff09;1.更新yun源2.安装PostgreSQL2.1…

【消息队列设计总结】RabbitMQ、Kafka、RocketMQ对比之运行架构

目录 1 RabbitMQ 1.1 工作原理 1.2 名词解释 1.3 交换机的几种类型 2 Kafka 2.1 工作原理 2.2 基本概念 3 RocketMQ 3.1 工作原理 3.2 基本概念 4 RabbitMQ & Kafka & RocketMQ的差异 5 参考文档 1 RabbitMQ 1.1 工作原理 1.【消息生产】生产者&#xff0…

润本股份提交注册:拟募资约9亿元,赵贵钦、鲍松娟夫妇为实控人

撰稿|汤汤 来源|贝多财经 近日&#xff0c;润本生物技术股份有限公司&#xff08;下称“润本股份”&#xff09;在上海证券交易所递交招股书&#xff08;注册稿&#xff09;。据贝多财经了解&#xff0c;润本股份于2023年3月递交上市申请材料&#xff0c;准备在上海证券交易所…

MySQL-DDL-表的结构-查询修改删除

DDL&#xff08;表操作&#xff09; 查询 查询当前数据库所有表&#xff1a;show tables 查询表结构&#xff1a;desc 表名 查询建表语句&#xff1a;show create table 表名 修改&#xff08;主要还是通过图形化界面进行操作&#xff09; 添加字段&#xff1a;alter table …