基于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 -- 开发环境介绍及多维数据集数据源准备
上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...
随机推荐
- SQL Server中的NULL值处理:判断与解决方案
摘要: 在SQL Server数据库中,NULL是表示缺少数据或未知值的特殊标记.处理NULL值是SQL开发人员经常遇到的问题之一.本文将介绍SQL Server中判断和处理NULL值的不同方法,以及 ...
- iOS 百度导航没有语音播报
1.百度地图没有语音播报 可以尝试如下方式: 1.tts确认相关key正确,可以放入官方demo测试 2.setting中 Product Name 尝试设置成英文,在info.plist设置Bund ...
- 基于JavaFX的扫雷游戏实现(五)——设置和自定义控件
它来了它来了,最后一期终于来了.理论上该讲的全都讲完了,只剩下那个拖了好几期的自定义控件和一个比较没有存在感的设置功能没有讲.所以这次就重点介绍它们俩吧. 首先我们快速浏览下设置的实现,上图: ...
- Centos7 安装部署 Kubernetes(k8s) 高可用集群
目录 一.系统环境 二.前言 三.Kubernetes(k8s)高可用简介 四.配置机器基本环境 五.部署haproxy负载均衡器 六.部署etcd集群 七.部署Kubernetes(k8s) mas ...
- python连接 Basler pylon相机遇到的问题
今天使用下图程序去连接相机 以下是摄像头IP参数 电脑IP参数 在确认电脑能够ping通相机的情况下 以及检查专用软件能否访问之后 依然遇到了以下错误 经过了多番调试之后发现即使能够ping通,子网掩 ...
- 2021-7-6 vue和axios使用get请求api实例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...
- jQuery入口函数测试
<script src="js/jquery-1.12.4.js"></script><script> window.onload = func ...
- Blazor前后端框架Known-V1.2.9
V1.2.9 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Gith ...
- 【Leaflet入门篇】 Leaflet快速入门
0 前言 Leaflet 是一个开源并且对移动端友好的交互式地图 JavaScript 库. 它大小仅仅只有 42 KB of JS, 并且拥有绝大部分开发者所需要的所有地图特性 .Leaflet 简 ...
- openlayers学习笔记
https://www.cnblogs.com/suRimn/p/10649816.html