基于LangChain的LLM应用开发1——介绍
这是基于LangChain的大语言模型应用开发系列的第一篇。
文章内容会参考deeplearning.ai的短课程(https://learn.deeplearning.ai/langchain/),加上其他的资料和个人的理解。
Harrison Chase是谁
Harrison Chase是LangChain的创始人和首席执行官。
在创立LangChain之前,Harrison Chase在Robust Intelligence(一家专注于测试和验证机器学习模型的MLOps公司)领导ML团队,并在Kensho(一家金融科技初创公司)领导实体链接团队。他曾在哈佛大学学习统计和计算机科学。
什么是LangChain
LangChain于2022年10月作为一个开源项目由Harrison Chase启动,当时他在机器学习初创公司Robust Intelligence工作。该项目很快人气飙升,Twitter上的讨论热度高涨,项目的Discord服务器活动频繁,YouTube涌现很多教程,还在旧金山和伦敦举办了很多聚会。
通过对大语言模型使用提示(Prompt),现在开发AI应用的难度已经大大降低,开发的速度也更快。但是一个AI应用程序可能需要对一个大语言模型多次写Prompt,并且对大语言模型的输出进行解析。这里有技巧优化Prompt,让大语言模型输出有利于程序解析的结果:如生成json格式的结果,如果不能输出,则直接返回“Invalid Request”,不生成额外的输出。但是这种方式仍然需要开发者写很多胶水代码来集成大语言模型。Harrison Chase创建的LangChain大大简化了大语言模型应用的开发过程。
LangChain是一个用于构建LLM应用的开源开发框架,目前有Python和JavaScript(TypeScript)版本的库(没有java!总感觉java在ai时代变成了庶出的,最早支持的总是Python),注重组合和模块化。
LangChain一个很有价值的地方是有很多可以单独使用或者和其他组件结合使用的独立组件。另一个有价值的地方是有很多不同的用例,可以将这些组件通过链式(Chain)组合成更完整、更复杂的应用程序,并且非常容易上手。
LangChain(Python版)在GitHub的网址是:https://github.com/langchain-ai/langchain ,目前已经有6万多(64.9k) Stars,源代码非常活跃,有1700名贡献者,今天刚加了百川模型(Add baichuan model)。

LangChain 中的具体组件

- 模型(Models)
对各大语言模型的抽象,连接各大语言模型(是的,可以很轻松切换各种大语言模型),包含各大语言模型的 LangChain 接口和调用细节,以及输出解析机制。
- 提示(Prompts)
使提示工程流线化,进一步激发大语言模型的潜力。通过Prompt Templates实现。
- 数据检索(Indexes)
构建并操作文档的方法,接受用户的查询并返回最相关的文档(检索召回数据),将数据与模型结合起来,轻松搭建本地知识库。
- 记忆(Memory)
通过短时记忆和长时记忆,在对话过程中存储和检索数据,让 Chatbot 记住你是谁。
- 链(Chains)
是 LangChain 中的核心机制,以特定方式封装各种功能,并通过一系列的组合,自动而灵活地完成常见用例。类似于Unix系统的管道?上一阶段的输出可以作为下一阶段的输入。
- 代理(Agents)
是另一个 LangChain 中的核心机制,使用大语言模型作为推理引擎,让大模型自主调用外部工具和内部工具,使强大的“智能化”自主 Agent 成为可能。
参考内容
- deeplearning.ai的短课程:https://learn.deeplearning.ai/langchain/lesson/1/introduction
- Python版LangChain的文档地址:https://python.langchain.com/docs/get_started/introduction
基于LangChain的LLM应用开发1——介绍的更多相关文章
- 基于纯注解的spring开发的介绍
几个核心注解的介绍1.@Configuration它的作用是:将一个java类修饰为==配置文件==,在这个java类进行组件注册1package com.kkb.config; import org ...
- 基于CkEditor实现.net在线开发之路(7)列表页面开发动作介绍
一个列表页面不止是查询,它也包含了很多业务上功能的实现,这些业务功能的实现的逻辑我称之为动作.如触发单击按钮删除数据,更改业务表数据,调用webService,调用WCF接口,弹出新窗体新增.修改.查 ...
- cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(二)
cWeb是基于微软的.Net Framework 4框架,数据库是sql server 2008 r2. cWeb开发框架下载,点击这里去下载. cWeb开发框架借鉴三层架构理论分为三层,分别是:cD ...
- cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)
cWeb开发框架是基于asp.net的B/S应用开发平台,采用三层架构理论,应用简单.代码简洁.运行快速. cWeb是bubufx提供,是分享资源,无任何版权限制,bubufx继续传承互联网精神,可随 ...
- 前端基于react,后端基于.net core2.0的开发之路(1) 介绍
文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数 ...
- 基于ionic+angulajs的混合开发实现地铁APP
基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...
- Python黑帽编程1.2 基于VS Code构建Python开发环境
Python黑帽编程1.2 基于VS Code构建Python开发环境 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...
- SharePoint Server 2013开发之旅(一):新的开发平台和典型开发场景介绍
我终于开始写这个系列文章,实际上确实有一段时间没有动笔了.最近重新安装了一套SharePoint Server 2013的环境,计划利用工作之余的时间为大家写一点新的东西. SharePoint Se ...
- 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)
1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...
- BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备
上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...
随机推荐
- 使用Stable Diffusion生成艺术二维码
在数字艺术的世界中,二维码已经从单纯的信息承载工具转变为可以展示艺术表达的媒介.这是通过使用Stable Diffusion的技术实现的,它可以将任何二维码转化为独特的艺术作品.接下来,我们将一步步教 ...
- AcWing 4495. 数组操作题解
思路 此题较为简单,简述一下思路. 从小到大排序,每次选取最小值,只要不为0即可 每次都为序列减去一个数字太慢,但每个数又减去的数字一样,所以可以用minus记录每个数要减去的数 C++代码 #inc ...
- SketchUp Pro 2023 下载和安装教程
SketchUp Pro 2023 下载和安装教程 下载链接 123云盘:https://www.123pan.com/s/JyAKVv-NTXB.html 安装教程 演示操作系统:Windows 1 ...
- Html转换PDF(Java实用版)
前言: 在工作当中,遇到了需要把HTML页面转化为PDF文档,有很多中实现,如下进行一个对比,大家个借鉴去进行使用 各实现对比表 于Windows平台进行测试: 此博客仅基于IText和基于WKHtm ...
- TCP的Keep-Alive机制:链接存在但是没有数据传输,内核怎么处理
服务端/客户端会定期发送探测报文来检测客户端的存活状态. 由三个内核参数控制: 首次发送探测报文时间:net.ipv4.tcp_keepalive_time有报文传输时重置 探测报文的发送间隔:net ...
- Shell 摘抄:growpart中的参数处理
下面这段代码中,变量cur表示这次循环所要处理的参数.如果没有触发前面的选项开关,第一个参数会被赋值给$DISK,第二个参数会赋值给$PART. 强无敌!- while [ $# -ne 0 ]; d ...
- 五 Android Capabilities讲解(转)
1.Capabilities介绍 可以看下之前代码里面设置的capabilities DesiredCapabilities capabilities = new DesiredCapabilitie ...
- 如何利用AI智能聊天机器人10秒钟做出一个故事绘本的神奇插件
原文链接:如何利用AI智能聊天机器人10秒钟做出一个故事绘本的神奇插件 ChatGPT以下称为AI智能聊天机器人 一.AI智能聊天机器人4中集成"Stories"插件 对于已经熟悉 ...
- 架构师必会之-DBA级问题的数据库底层设计思想
大家好,我是sulny_ann,这期想跟大家分享一下我之前在面试里面问过比较难的数据库相关的问题. 大家经常也在调侃后端好像就是技术数据库的增删改查,所以作为后端开发,你对应数据库这一块掌握的怎么样, ...
- Leetcode刷题笔记——二分法
二分法是搜索算法中极其典型的方法,其要求输入序列有序并可随机访问.算法思想为 输入:有序数组nums,目的数值target 要求输出:如果target存在在数组中,则输出其index,否则输出-1 将 ...