LangChain的简单使用介绍


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/511/

请添加图片描述

(封面图由文心一格生成)

LangChain的简单使用介绍

欢迎来到LangChain的世界!今天,我们将一起探索LangChain的基本使用方法,以便您能快速上手这个强大的工具。

初步设置

首先,您需要安装LangChain。可以通过Pip或Conda进行安装:

  • 使用Pip:pip install langchain
  • 使用Conda:conda install langchain -c conda-forge

LangChain的使用通常需要与模型提供商、数据存储、API等进行集成。例如,我们将使用OpenAI的模型API。首先需要安装OpenAI的Python包:pip install openai。然后,获取API密钥并将其设置为环境变量:export OPENAI_API_KEY="..."

基础组件

LangChain提供了多个模块,用于构建语言模型应用。这些模块可单独使用,也可组合使用以实现更复杂的用例。基本组件包括:

  1. LLM/聊天模型:语言模型是这里的核心推理引擎。
  2. 提示模板:向语言模型提供指令,控制其输出。
  3. 输出解析器:将语言模型的原始响应转换为更易使用的格式。

组合使用LCEL

LangChain表达式语言(LCEL)允许您将这些组件合并成一个链。例如,可以创建一个链来接收输入变量,通过提示模板生成提示,将提示传递给语言模型,然后通过(可选的)输出解析器处理输出。使用|语法将这些组件连接起来,如下示例所示:

from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import BaseOutputParserclass CommaSeparatedListOutputParser(BaseOutputParser[List[str]]):"""Parse the output of an LLM call to a comma-separated list."""def parse(self, text: str) -> List[str]:"""Parse the output of an LLM call."""return text.strip().split(", ")# 示例模板
template = "..."
chat_prompt = ChatPromptTemplate.from_messages([...])
chain = chat_prompt | ChatOpenAI() | CommaSeparatedListOutputParser()
chain.invoke({"text": "colors"})

这种方法便于将模块化逻辑打包。

使用LangSmith进行跟踪

一旦设置了环境变量,所有的模型和链调用都会自动记录到LangSmith中。您可以使用LangSmith来调试和注释应用程序跟踪,然后将它们转换为评估应用程序未来迭代的数据集。

使用LangServe进行服务

最后,您可能需要将构建的应用程序提供服务。LangServe可帮助开发者将LCEL链作为REST API部署。您需要创建一个包含链定义、FastAPI应用程序和路由定义的serve.py文件。然后执行此文件,即可看到链在本地服务器上提供服务。LangServe还提供了一个简单的内置UI,用于配置和调用应用程序,以及查看中间步骤的输出。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shell循环:for(一)

语法结构: for 变量名 [ in 取值列表] do 循环体 done 示例1: 1、需求:自动循环创建10个用户 2、演示: [rootlocalhost ~]# vim for.sh #脚本编写 #!/bin/bash for i in {1..10} do useradd "user$…

图神经网络的数学原理总结

图深度学习(Graph Deep Learning) 多年来一直在加速发展。许多现实生活问题使GDL成为万能工具:在社交媒体、药物发现、芯片植入、预测、生物信息学等方面都显示出了很大的前景。 本文将流行的图神经网络及其数学细微差别的进行详细的梳理和解释,图深度学…

Chrome 访问不了项目?10080端口 ERR_UNSAFE_PORT:问题原因 / 解决方案

文章目录 被禁用端口列表解决方法方法一、更换端口 / 使用代理 / 使用域名方法二、对浏览器下手WindowsMac 最近有客户反馈,在chrome浏览器中访问不了项目,其他浏览器都是正常的。 ?奇了怪了,难道客户对chrome做了什么操作&#x…

java飞翔的鸟

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”,并在src中创建一个包命名为“com.qiku.bird",在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”,并向需要的图片素材导入到包内。 二.代码呈现 p…

itext - PDF模板套打

目录 环境配置 快速使用 代码实现 添加图片 封装 项目需求:获取列表数据之后直接将数据生成一个pdf。因此需要使用到 itext 对pdf进行直接操作。 环境配置 需要为pdf添加文字域,因此需要安装Adobe Acrobat 准备一个空的PDF文件,如果有现…

如何为您的企业选择合适的多因素认证?

在传统的网络安全架构中,重点在于防止非法入侵,例如防火墙、VPN 、堡垒机等安全设备的重心都在于防止用户违规访问企业资源,一旦合法用户的账号密码被入侵者拿到,就可以冒充合法用户访问企业资源,所有的安全设备形同虚…

解决:ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘

解决:ImportError: cannot import name ‘Adam‘ from ‘keras.optimizers‘ 背景 在使用之前的代码时,报错: from keras.optimizers import Adam ImportError: cannot import name ‘Adam’ 报错问题 from keras.optimizers import Adam I…

微机原理_2

一、单项选择题(本大题共15小题,每小题3分,共45分。在每小题给出的四个备选项中,选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 下列数中最大的数为() A. 10010101B B. (126)8 C. 96H D. 100 CPU 执行 OUT 60H,…

vue一个页面左边是el-table表格 当点击每条数据时可以在右边界面编辑表格参数,右边保存更新左边表格数据

实现思路: 1.点击当前行通过row拿到当前行数据。 2.将当前行数据传给子组件。 3.子组件监听父组件传过来的数据并映射在界面。 4.点击保存将修改的值传给父组件更新表格。 5.父组件收到修改过后的值,可以通过字段判断比如id,通过 findIn…

Co-DETR:DETRs与协同混分配训练论文学习笔记

论文地址:https://arxiv.org/pdf/2211.12860.pdf 代码地址: GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一种新的协同混合任务训练方案,即Co-DETR,以从多种标…

element中el-switch的v-model自定义值

一、问题 element中的el-switch的值默认都是true或false&#xff0c;但是有些时候后端接口该字段可能是0或者1&#xff0c;如果说再转换一次值&#xff0c;那就有点太费力了。如下所示&#xff1a; <template><el-switchinactive-text"否"active-text&quo…

System-V共享内存和基于管道通信实现的进程池

文章目录 一.进程间通信:进程间通信的本质: 二.Linux管道通信匿名管道:关于管道通信的要点:基于匿名管道构建进程池: 三.System-V共享内存共享内存和命名管道协同通信 参考Linux内核源码版本------linux-2.4.3 一.进程间通信: 操作系统中,为了保证安全性,进程之间具有严格的独…