这是基于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 成为可能。

参考内容

  1. deeplearning.ai的短课程:https://learn.deeplearning.ai/langchain/lesson/1/introduction
  2. Python版LangChain的文档地址:https://python.langchain.com/docs/get_started/introduction

基于LangChain的LLM应用开发1——介绍的更多相关文章

  1. 基于纯注解的spring开发的介绍

    几个核心注解的介绍1.@Configuration它的作用是:将一个java类修饰为==配置文件==,在这个java类进行组件注册1package com.kkb.config; import org ...

  2. 基于CkEditor实现.net在线开发之路(7)列表页面开发动作介绍

    一个列表页面不止是查询,它也包含了很多业务上功能的实现,这些业务功能的实现的逻辑我称之为动作.如触发单击按钮删除数据,更改业务表数据,调用webService,调用WCF接口,弹出新窗体新增.修改.查 ...

  3. cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(二)

    cWeb是基于微软的.Net Framework 4框架,数据库是sql server 2008 r2. cWeb开发框架下载,点击这里去下载. cWeb开发框架借鉴三层架构理论分为三层,分别是:cD ...

  4. cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)

    cWeb开发框架是基于asp.net的B/S应用开发平台,采用三层架构理论,应用简单.代码简洁.运行快速. cWeb是bubufx提供,是分享资源,无任何版权限制,bubufx继续传承互联网精神,可随 ...

  5. 前端基于react,后端基于.net core2.0的开发之路(1) 介绍

    文章提纲目录 1.前端基于react,后端基于.net core2.0的开发之路(1) 介绍 2.前端基于react,后端基于.net core2.0的开发之路(2) 开发环境的配置,注意事项,后端数 ...

  6. 基于ionic+angulajs的混合开发实现地铁APP

    基于ionic+angulajs的混合开发实现地铁APP 注:本博文为博主原创,转载时请注明出处. 项目源码地址:https://github.com/zhangxy1035/SubwayMap 一. ...

  7. Python黑帽编程1.2 基于VS Code构建Python开发环境

    Python黑帽编程1.2  基于VS Code构建Python开发环境 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Atta ...

  8. SharePoint Server 2013开发之旅(一):新的开发平台和典型开发场景介绍

    我终于开始写这个系列文章,实际上确实有一段时间没有动笔了.最近重新安装了一套SharePoint Server 2013的环境,计划利用工作之余的时间为大家写一点新的东西. SharePoint Se ...

  9. 基于webpack的前端工程化开发解决方案探索(一):动态生成HTML(转)

    1.什么是工程化开发 软件工程的工程化开发概念由来已久,但对于前端开发来说,我们没有像VS或者eclipse这样量身打造的IDE,因为在大多数人眼中,前端代码无需编译,因此只要一个浏览器来运行调试就行 ...

  10. BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备

    上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...

随机推荐

  1. Thread 和 ThreadPool 简单梳理(C#)【并发编程系列】

    〇.前言 对于 Thread 和 ThreadPool 已经是元老级别的类了.Thread 是 C# 语言对线程对象的封装,它从 .NET 1.0 版本就有了,然后 ThreadPool 是 .Net ...

  2. PhotoShop AI 爱国版保姆级安装和使用

    上篇Photoshop AI 令人惊叹的生成式填充介绍了 PhotoShop AI 的新特性功能,有人以为我收了 Adobe 公司的钱帮它们做推广~~~.别不信,事实上确有其事,某平台审核直接把它删掉 ...

  3. UPS设备在物流机房中的应用浅析

    1 UPS 简介 UPS 即不间断电源 (Uninterruptible Power Supply),是一种含有储能装置的不间断电源.主要用于给部分对电源稳定性要求较高的设备,提供不间断的电源. 当市 ...

  4. npm 切换源

    切换到淘宝源 npm config set registry https://registry.npm.taobao.org 切换回官方源 npm config set registry http:/ ...

  5. 一文搞懂TCP的三次握手和四次挥手

    目录 1.三次握手 2.四次挥手 3.11种状态名词解析 TCP的三次握手和四次挥手实质就是TCP通信的连接和断开. 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所 ...

  6. Promise的理解和使用(二)

    一.Promise的常用APIpromise的这些方法执行完成都会返回一个新的promise,promise的状态由执行的结果决定. (1) new Promise()中的excutor函数 new ...

  7. koa搭建nodejs项目并注册接口

    使用nodejs注册接口逻辑处理会比较复杂,直接通过express或者koa能够简化开发流程,这里记录用koa来搭建nodejs项目并注册接口,对koa不太熟悉的话可以参考这一篇.让nodejs开启服 ...

  8. 二代水务系统架构设计分享——DDD+个性化

    系统要求 C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护.相比于一代Winform,界面要求美观,控件丰富可定制. 解决方案 依托.Net6开发平台,采用模块化思想设计(即分而治之的 ...

  9. Linux cpu 亲缘性 绑核

    前言 https://www.cnblogs.com/studywithallofyou/p/17435497.html https://www.cnblogs.com/studywithallofy ...

  10. 给你安利一款带有AI功能的数据库管理工具

    写在前面 说到数据库管理工具,大家应该不陌生了 小伙伴们应该都用过Navicat.DBever.DataGrip.SQLyog.plsqldeveloper等数据库管理工具 这些工具呢都各自有优缺点. ...