当前位置: 首页 > news >正文

LangChain入门:构建LLM驱动的应用程序的初学者指南

LangChain & DemoGPT

一、介绍

        你有没有想过如何使用大型语言模型(LLM)构建强大的应用程序?或者,也许您正在寻找一种简化的方式来开发这些应用程序?那么你来对地方了!本指南将向您介绍LangChain,这是一个简化构建LLM驱动的应用程序的过程的工具。我们还将深入研究 DemoGPT,这是一项尖端技术,可自动执行管道生成过程,提供无缝的开发体验。

二、开始使用语言链

        LangChain是一个促进端到端语言模型应用程序开发的平台。要开始使用 LangChain 开始您的旅程,第一步是安装它。详细的安装说明可以在 LangChain 文档中找到。我们这里简述为:

11 最低安装

pip install langchain

        这将安装 LangChain 的最低要求。 LangChain 的很多价值在于将其与各种模型提供程序、数据存储等集成。默认情况下,并未安装执行此操作所需的依赖项。然而,还有另外两种安装 LangChain 的方法可以引入这些依赖项。

2  要安装常见 LLM 提供程序所需的模块,请运行:

pip install langchain[llms]

3 要安装所有集成所需的所有模块,请运行:

pip install langchain[all]

请注意,如果使用 ,则在将方括号作为参数传递给命令时,需要用方括号括起来,例如:zsh

pip install 'langchain[all]'

        安装后,您需要将LangChain与大型语言模型(LLM)集成。在本指南中,我们将使用 OpenAI 的 API,这些 API 不需要额外的设置。

三、使用 LangChain 构建语言模型应用程序

        在设置 LangChain 并将其与 LLM 集成之后,有趣的部分开始了——构建您的语言模型应用程序。LangChain 提供了各种模块,您可以组合这些模块来创建复杂的应用程序或单独用于更简单的应用程序。

3.1 使用法学LLM进行预测

        LangChain最基本的构建块是在某些输入上调用LLM。例如,假设我们正在创建一个服务,该服务根据公司制作的内容生成公司名称。下面是如何使用 LangChain 实现此目的的简单示例:

import { OpenAI } from "langchain/llms/openai"; 
const model = new OpenAI({ openAIApiKey: "sk-…", temperature: 0.9 }); 
const res = await model.call("What would be a good company name for a company that makes colorful socks?"); 
console.log(res); // Outputs: '\n\nFantasy Sockery'

3.2 管理LLM的提示

        在应用程序中使用 LLM 时,通常不会将用户输入直接发送到 LLM。相反,您将使用用户输入构造提示并将其发送到 LLM。LangChain 使这变得简单:

import { PromptTemplate } from "langchain/prompts"; 
const template = "What is a good name for a company that makes {product}?"; 
const prompt = new PromptTemplate({ template: template, inputVariables: ["product"] }); 
const res = await prompt.format({ product: "colorful socks" }); 
console.log(res); // Outputs: 'What is a good name for a company that makes colorful socks?'

3.3 使用 LangChain 创建多步骤工作流

        实际应用程序不仅仅是单个基元,而是它们的组合。LangChain 允许您创建由链接组成的链,这些链接可以是原语,如 LLM 或其他链。下面是如何创建 LLMChain 的示例,该 LLMChain 使用 PromptTemplate 格式化用户输入并将格式化的响应传递给 LLM:

import { OpenAI } from "langchain/llms/openai"; 
import { PromptTemplate } from "langchain/prompts"; 
import { LLMChain } from "langchain/chains";
const model = new OpenAI({ temperature: 0.9 }); 
const template = "What is a good name for a company that makes {product}?"; 
const prompt = new PromptTemplate({ template: template, inputVariables: ["product"] }); 
const chain = new LLMChain({ llm: model, prompt: prompt });
const res = await chain.call({ product: "colorful socks
" }); 
console.log(res); // Outputs: { text: '\n\nColorfulCo Sockery.' }

3.4使用代理动态运行链

        LangChain超越了代理的预定工作流程。代理使用 LLM 来确定要执行的操作以及顺序。此高级功能使您的应用程序能够实时适应用户输入,从而显著增强其功能。

3.5 使用 DemoGPT 自动化整个管道

        虽然LangChain为构建LLM驱动的应用程序提供了强大的基础,但还有另一个工具可以增强您的开发过程:DemoGPT。

        DemoGPT 利用 LangChain 文档的强大功能来自动化管道生成、执行代码调试并交付精美的演示应用程序。通过根据需求智能创建数据处理管道,无需手动施工,节省开发人员的时间和精力。

        此外,它还提供交互式演示生成、版本控制和多个产品版本的无缝管理。它显着提高了效率和准确性,使其成为软件开发工具包中的宝贵工具。

        如果您有兴趣观看使用 LangChain 和 DemoGPT 构建的应用程序的现场演示,请查看 Streamlit 应用程序上的 DemoGPT

        此演示展示了 DemoGPT 的功能,并通过模拟交互和实时可视化提供了实践经验。

四、结论

        LangChain和DemoGPT是强大的工具,可以简化开发LLM驱动的应用程序的过程。通过自动化管道生成过程并提供基于用户输入的动态链,它们允许开发人员轻松创建复杂的应用程序。无论您是经验丰富的开发人员还是刚刚开始使用LLM,这些工具都可以提供无缝且高效的开发体验。

        那么,你还在等什么?立即开始使用 LangChain 和 DemoGPT构建您的 LLM 应用程序!

        本指南只是使用这些工具可以实现的目标的开始。随着您进一步探索它们,您将发现它们可以增强您的开发过程并使您能够创建强大的交互式应用程序的更多方法。

        我希望本指南内容丰富且鼓舞人心。祝您编码愉快!

参考资料:

Getting Started with LangChain: A Beginner’s Guide to Building LLM-Powered Applications | by DemoGPT | Jul, 2023 | AI Mind

相关文章:

LangChain入门:构建LLM驱动的应用程序的初学者指南

LangChain & DemoGPT 一、介绍 你有没有想过如何使用大型语言模型(LLM)构建强大的应用程序?或者,也许您正在寻找一种简化的方式来开发这些应用程序?那么你来对地方了!本指南将向您介绍LangChain&#x…...

gitlab修改远程仓库地址

目录 背景: 解决: 1.删除本地仓库关联的远程地址,添加新的远程仓库地址 2.直接修改本地仓库关联的远程仓库地址 3.打开.git隐藏文件修改远程仓库地址 4.拉取代码报错(git host key verification failed) 背景: 公司搬家&#…...

VB+SQL自动点歌系统设计与实现

摘 要 随着社会的发展,人类的进步,21世纪人们的生活的水平有所提高,为了满足人们对生活的需要,丰富业余生活,就需要有一些娱乐的设施来弥补这些空缺,所以开发了自动点歌系统。 论文详细论述了系统总体设计思想、数据库设计以及功能模块设计等,给出了自动点歌系统一般流程…...

设计模式之适配器模式(Adapter)的C++实现

1、适配器模式的提出 在软件功能开发中,由于使用环境的改变,之前一些类的旧接口放在新环境的功能模块中不再适用。如何使旧接口能适用于新的环境?适配器可以解决此类问题。适配器模式:通过增加一个适配器类,在适配器接…...

C#系统锁屏事件例子 - 开源研究系列文章

今天有个网友问了个关于操作系统锁屏的问题。 我们知道,操作系统是基于消息和事件处理的,所以我们只要找到该操作系统锁屏和解屏的那个事件,然后在事件里进行处理即可。下面是例子介绍。 1、 项目目录; 下面是项目目录&#xff1a…...

R语言实现免疫浸润分析(2)

原始数据承接免疫浸润分析&#xff08;1&#xff09;&#xff0c;下面展示免疫浸润结果&#xff1a; #直接使用IOBR包内的cell_bar_plot pic<-cell_bar_plot(input quantiseq_immo_de[1:20,], title "quanTiseq Cell Fraction") #使用ggplot2 library(ggplot2)…...

系统架构设计师-信息安全技术(2)

目录 一、安全架构概述 1、信息安全所面临的威胁 二、安全模型 1、安全模型的分类 2、BLP模型 3、Biba 模型 4、Chinese Wall模型 三、信息安全整体架构设计 1、WPDRRC模型 2、各模型的安全防范功能 四、网络安全体系架构设计 1、开放系统互联安全体系结构 2、安全服务与安…...

STM32F4X-GPIO输入功能使用

STM32F4 GPIO输入模式配置 上一节讲GPIO的时候说到了将GPIO设置成输出模式&#xff0c;并通过将GPIO的电平拉高拉低控制LED灯的例程。GPIO除了用作输出功能之外&#xff0c;还可以用作输入功能。最常用的就是检测按键的输入电平。 硬件设计 本章的硬件是基于正点原子的探索者…...

Jenkins-CICD-python/Java包升级与回退

Jenkins- CICD流水线 python/Java代码升级与回退 1、执行思路 1.1、代码升级 jenkins上点击 upgrade和 代码版本号 --${tag} jenkins 推送 代码 和 执行脚本 到目标服务器/opt目录下 执行命令 sh run.sh 代码名称 版本号 upgrade 版本号 来自jenkins的 构建参数中的 标签…...

模糊测试面面观 | 模糊测试工具知多少

自1988年威斯康星大学的Barton Miller首次提出模糊测试这一概念以来&#xff0c;模糊测试领域经历了持续长久发展。模糊测试作为一种软件测试方法&#xff0c;旨在通过向程序输入模糊、随机、异常的数据&#xff0c;探测和发现潜在的漏洞和错误。这种方法备受安全研究人员的青睐…...

esp8266+电压检测模块检测电池电压

该模块5v时输出1v&#xff0c;因esp8266 ADC引脚(A0)支持电压范围是0v-1v&#xff0c;所以该方案仅支持0-5v电压检测 接线&#xff1a; - 接 esp8266GND 可不接 S 接 ADC esp8266 为 A0 VCC 被检测直流电 GND 被检测直流电- #include <Wire.h>const int adcPin A0; // …...

MongoDB增删改查操作

数据库操作&#xff1a; 在MongoDB中&#xff0c;文档集合存在数据库中。 要选择使用的数据库&#xff0c;请在mongo shell程序中发出 use <db> 语句 // 查看有哪些数据库 show dbs;// 如果数据库不存在&#xff0c;则创建并切换到该数据库&#xff0c;存在则直接切换到…...

Python | Package | Python的三种包安装方式(pip/whl/tar.gz)

文章目录 PIP 安装与卸载Source 安装与卸载Whell 安装与卸载 PIP 安装与卸载 pip install xxx pip install xxxversion_numberpip install captcha pip install captcha0.4# XXX/anaconda3/envs/py373/lib/python3.7/site-packages pip uninstall captchaSource 安装与卸载 p…...

1. 微信小程序开发环境搭建

下载 微信的小程序开发需要使用到微信开发者工具&#xff0c;通过https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html可以下载 下载完成后 安装...

Redis五大基本数据类型及其使用场景

文章目录 **一 什么是NoSQL&#xff1f;****二 redis是什么&#xff1f;****三 redis五大基本类型**1 String&#xff08;字符串&#xff09;**应用场景** 2 List&#xff08;列表&#xff09;**应用场景** 3 Set&#xff08;集合&#xff09;4 sorted set&#xff08;有序集合…...

优于立方复杂度的 Rust 中矩阵乘法

优于立方复杂度的 Rust 中矩阵乘法 迈克克维特 跟随 发表于 更好的编程 6 分钟阅读 7月 <> 143 中途&#xff1a;三次矩阵乘法 一、说明 几年前&#xff0c;我在 C 年编写了 Strassen 矩阵乘法算法的实现&#xff0c;最近在 Rust 中重新实现了它&#xff0c;因为我继续…...

CentOS gcc介绍及快速升级

1.gcc介绍 GCC&#xff08;GNU Compiler Collection&#xff09;是一个开源的编译器套件&#xff0c;由 GNU(GNUs Not Unix!的递归缩写) 项目开发和维护。它是一个功能强大且广泛使用的编译器&#xff0c;支持多种编程语言&#xff0c;包括 C、C、Objective-C、Fortran、Ada 和…...

IO多路复用中select的TCP服务器模型和poll服务模型

select的TCP服务器模型 服务器端 #include <head.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <unistd.h> #include <sys/select.h> #include <sys/time.h>#define PORT 6666 //1024~4…...

AI工程师招募;60+开发者AI工具清单;如何用AI工具读懂插件源码;开发者出海解读;斯坦福LLM课程 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 一则AI工程师招募信息&#xff1a;新领域需要新技能 Vision Flow (目的涌现) 是一家基于 AGI 原生技术的创业公司&#xff0c;是全球探…...

Mysql 使用JSON_SEARCH函数 判断多表查询时,某个拼接字段是否包含另外一个字段

场景 两个表管理查询 关联字段为A表id, B表的ids A表id是正常的整数, B的ids是id拼接成的字符类型, 格式是111,222,333这样的. A: B: id ids11 11,22,3322 33,44,5533 …...

C++头文件

C头文件 一般头文件特殊头文件windows.hbits/stdc.h 一般头文件 C头文件是一种包含预定义函数、类和变量声明的文件。它们通常用于在源代码文件中引入外部库或模块的功能。 头文件的作用是提供程序所需的声明信息&#xff0c;以便在源代码文件中使用这些声明。当你在源代码文…...

无脑入门pytorch系列(四)—— scatter_

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…...

【Spring源码】Spring扩展点及顺序

Spring扩展点及顺序 01-调用BeanFactoryPostProcessor的构造器 02-调用了BeanFactoryPostProcessor的postProcessBeanFactory 03-调用了BeanPostProcessor构造器 04-调用InstantiationAwareBeanPostProcessor构造方法 05-调用了InstantiationAwareBeanPostProcessor接口的Befo…...

广州华锐互动:3D数字孪生开发编辑器助力企业高效开发数字孪生应用

3D数字孪生开发编辑器是一种新兴的技术&#xff0c;它可以帮助企业更好地管理和维护其物联网设备。这些工具可以帮助企业实现对设备的实时监控、故障排除和优化&#xff0c;从而提高生产效率和降低成本。 数字孪生系统是一种将物理世界与数字世界相结合的技术&#xff0c;它可以…...

【脚踢数据结构】图(纯享版)

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的…...

[leetcode] 707 设计链表

707. 设L计链表 中等 902 相关企业 你可以选择使用单链表或者双链表&#xff0c;设计并实现自己的链表。 单链表中的节点应该具备两个属性&#xff1a;val 和 next 。val 是当前节点的值&#xff0c;next 是指向下一个节点的指针/引用。 如果是双向链表&#xff0c;则还需…...

JIRA:项目管理的秘密武器

引言 在当今动态且快速变化的商业环境中&#xff0c;项目管理已经成为任何组织成功的关键因素。能够有效地管理项目&#xff0c;保证项目在设定的时间和预算内按照预期的质量完成&#xff0c;是每个项目经理的目标。为了实现这个目标&#xff0c;项目经理需要依赖强大的工具&a…...

ARM 作业1

一、思维导图 二、 1. 2. .text 文本段 .globl _start 声明_start:mov r0,#0mov r1,#0fun:cmp r1,#100bhi stopadd r0,r0,r1add r1,r1,#1b fun stop:b stop .end...

【解析postman工具的使用---基础篇】

postman前端请求详解 主界面1.常见类型的接口请求1.1 查询参数的接口请求1.1.1 什么是查询参数?1.1.2 postman如何请求 1.2 ❤表单类型的接口请求1.2.1 复习下http请求1.2.2❤ 什么是表单 1.3 上传文件的表单请求1.4❤ json类型的接口请求 2. 响应接口数据分析2.1 postman的响…...

Elasticsearch:如何在 Ubuntu 上安装多个节点的 Elasticsearch 集群 - 8.x

Elasticsearch 是一个强大且可扩展的搜索和分析引擎&#xff0c;可用于索引和搜索大量数据。 Elasticsearch 通常用于集群环境中&#xff0c;以提高性能、提供高可用性并实现数据冗余。 在本文中&#xff0c;我们将讨论如何在 Ubuntu 20.04 上安装和配置具有多节点集群的 Elast…...