【LLM】Langflow 的简单使用

(PS:爆肝整理,请不要吝啬你的点赞和收藏。)

什么是 Langflow ?Langflow 是一种用于构建多智能体和RAG应用的可视化框架。它提供了个无需编码的 AI 生态系统,能够无缝集成各种常用工具和技术栈。Langflow 以 Python 为基础,非常灵活,支持多种大型语言模型(LLM)和向量存储。

Langflow 凭借其用户友好的界面和强大的功能,使开发人员能够快速构建原型和构建 AI 应用程序。无论您是经验丰富的 AI 开发人员还是新手,Langflow 都能提供将 AI 创意变为现实所需的工具。

通过这篇文章,你将学会如何快速安装和启动 Langflow,并尽量少的避免安装和启动的坑。这篇文章会通过两个例子(智能聊天机器人和构建文档问答系统)带你初步上手 Langflow。

前提条件

  • Python 版本为 3.10-3.12
  • 已安装 uv,pip或pipx
  • 已申请 HuggingFace 或 OpenAI 或  Google Generative AI 或 百度千帆的ApiKey。

我使用的是 Google Generative AI。

参考:我的系统为Win11、Python 版本为 3.11、pip 版本为 24.3.1、uv 版本为 0.5.11。

如果你不想本地安装,可以直接体验 HuggingFace的Langflow 。

安装

官方提供了三种本地安装方式,uv、pip 和 pipx(建议使用 uv,其它两种方式安装特别慢,最后还会失败,使用 uv 安装用时在几分钟内)。

创建虚拟环境

创建一个虚拟环境以隔离 LangFlow 的依赖:

# 创建虚拟环境
python -m venv langflow_env
# 进入虚拟环境
langflow_env\Scripts\activate
# 拓展(不要执行):离开虚拟环境
deactivate

注:以下操作将在虚拟环境中进行

uv 安装

使用清华镜像源,这样安装比较快。

# 安装uv,uv 是一个用于创建和管理 Python 虚拟环境的工具,可以通过 pip 安装
pip install uv
# 使用清华镜像源
uv pip install langflow -i https://pypi.tuna.tsinghua.edu.cn/simple

pip 安装

此安装方式会比较慢,如果一定要使用该安装方式并且一直安装不成功,可参考这里

python -m pip install langflow

启动

uv 方式

uv run langflow run

pip 方式

python -m langflow run

出现下图表示启动成功,如果失败可参考文章最后的‘问题与解决’。

浏览器访问 http://127.0.0.1:7860 你将进入 Langflow 工作流配置界面。

简单上手

创建工作流

进入默认项目-创建流(New Flow)

在弹出的页面中可以根据自己需求选择模板进行编辑

 下图为部分模板截图(已翻译)。

配置界面:左边为组件区,包含输入(Inputs)、输出(Outputs)、提示词(Prompts)、使用的模型(Model)、词嵌入(Embedding)、向量数据库(Vector Stores)等等,右边为工作台区域,拖动相应组件到工作台即可开始你的工作流配置。

使用 Langflow 商店中的模板

入口:首页 - store

进入 Langflow store 界面,需要先配置 Langflow Api-key(地址: 申请Langflow Api-key)。

点击'+'号选择自己想要的模板,下载的模板将在'项目配置界面'展示。

案例

1、智能聊天机器人

需要的组件

a. Helpers 中的 Message History:存储和检索最多100条以前的消息;维护对话上下文;跟踪单独的聊天会话;保留发件人信息和消息顺序。

b. Inputs 中的 Chat Input,输入组件。

c. Prompts 中的 Prompt,创建动态提示模板;将内存集成到对话流中。

You are a helpful assistant that answer questions.Use markdown to format your answer, properly embedding images and urls.History: {memory}

e. Models 中的 Google Generative AI,使用谷歌的语言模型,根据文档上下文生成对查询响应。

d. Outputs 中的 Chat Output,输出组件。

测试

聊天界面:点击工作台右上方的 'Playground' 按钮

 

2、构建文档问答系统

需要的组件

a. Data 中的 File,以支持的格式加载和处理文档。

b. Process 中的 Parse Data,使用指定的模板将加载的文档转换为文本,以实现一致的处理。

c. Inputs 中的 Chat Input,输入组件。

d. Prompts 中的 Prompt,通过将解析的文档内容与用户问题相结合来形成结构化查询,下面是内容。

Answer user's questions based on the document below:---{Document}---Question:

e. Models 中的 Google Generative AI,使用谷歌的语言模型,根据文档上下文生成对查询响应。

d. Outputs 中的 Chat Output,输出组件。

测试

我上传的文件是‘中华人民共和国民法典.pdf’。

问题与解决

1、第二次启动 Langflow 出现的问题

第二次启动 Langflow 出现如下问题:

原因:secret_key 文件权限不足。

解决方案:找到该文件并赋予当前用户该文件的所有权限。

2、使用 Google Generative AI 存在网络问题(待解决)

目前发现调用谷歌API,如果使用rpc、grpc方式调用会存在网络问题,使用rest风格方式没有问题,可以尝试使用api代理,或者改动 Langflow 调用谷歌API的代码。

参考文档

Langflow文档 ,Langflow github

部分平台ApiKey申请地址

a. openAI:openai.com

b. 谷歌Gemini:google.com

c.  HuggingFace:huggingface.co

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

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

相关文章

linux自动化批量分发SSH密钥同时批量测试SSH连接教程(包含自动化脚本代码)

1、检查端口 检查分发对象22端口是否打开 nmap -p22 ip地址如果要批量检查端口可以参考我写的这篇文章:linux自动化一键批量检查主机端口 2、命令行分发密钥原理 Linux分发密钥原理主要涉及SSH(Secure Shell)协议,该协议用于…

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程

Ubuntu 下使用命令行将 U 盘格式化为 ext4、FAT32 和 exFAT 的详细教程 作者:Witheart更新时间:20241228 本教程将详细介绍如何将 U 盘格式化为 ext4、FAT32 和 exFAT 文件系统,同时包括如何安装必要工具(如 exfat-utils&#x…

【漫话机器学习系列】028.CP

Mallows’ Cp:标准化公式解析与应用 Mallows’ Cp 是一种常用的模型选择工具,用于在一系列候选模型中权衡拟合度和复杂性,帮助我们选择性能最优的模型。本文将基于其标准化公式展开详细解析,并探讨其应用场景、实现方法、优点与局…

Python编程技术

设计目的 该项目框架Scrapy可以让我们平时所学的技术整合旨在帮助学习者提高Python编程技能并熟悉基本概念: 1. 学习基本概念:介绍Python的基本概念,如变量、数据类型、条件语句、循环等。 2. 掌握基本编程技巧:教授学生如何使…

论文阅读《Cross-scale multi-instance learning for pathological image diagnosis》

From:2024 MIA CS-MIL GitHub:https://github.com/hrlblab/CS-MIL 一、Abstract: 在数字病理学中,分析高分辨率全幻灯片图像(WSIs)时涉及多个尺度的信息是一个重大挑战。多实例学习(MIL&#x…

短视频平台的视频水印怎么去除?

当你看到某个短视频,觉得内容非常有价值,想要个人收藏以便日后学习或回顾,但发现短视频平台无法直接下载且带有水印时,以下提供的几种方法将帮助你轻松去除水印,获取高清无水印的视频内容。 方法一:使用第…

【Redis】Redis 典型应用 - 缓存 (cache)

目录 1. 什么是缓存 2. 使用 Redis 作为缓存 3. 缓存的更新策略 3.1 定期生成 3.2 实时生成 4. 缓存的淘汰策略 5. 缓存预热, 缓存穿透, 缓存雪崩 和 缓存击穿 关于缓存预热 (Cache preheating) 关于缓存穿透 (Cache penetration) 关于缓存雪崩 (Cache avalanche) 关…

解决springdoc-openapi-ui(Swagger3)跳转默认界面问题

文章目录 问题现象解决方法 问题现象 项目正确引入springdoc-openapi-ui依赖&#xff0c;但是访问/swagger-ui/index.html界面时&#xff0c;跳转到了默认的界面&#xff0c;如下图所示&#xff1a; 解决方法 1、升级maven依赖为1.8.0以上&#xff1a; <dependency>…

绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图

clc clear close all %% 读取数据 load(MyColor.mat) %读取颜色包for iloop 1:25 %提取工作表数据data0(iloop) {readtable(data.xlsx,sheet,iloop)}; end%% 解析数据 countzeros(23,14); for iloop 1:25index(iloop) { cell2mat(table2array(data0{1,iloop}(1,1)))};data(i…

HALCON中用于分类的高斯混合模型create_class_gmm

目录 一、创建用于分类的高斯混合模型函数二、代码和效果展示三、相关函数 一、创建用于分类的高斯混合模型函数 create_class_gmm( : : NumDim, NumClasses, NumCenters, CovarType, Preprocessing, NumComponents, RandSeed : GMMHandle)create_class_gmm创建用于分类的高斯…

lua-debug for Sublime

目标 Sublime 也支持 lua-debug&#xff0c;操作体验与 VSCode 一致。 优势 执行效率高&#xff0c;不掉帧 可随时开启 配置简单&#xff0c;一份配置兼容 VSCode 和 Sublime 安装 要求 Sublime 4 的版本&#xff08;注&#xff1a;从 Sublime 3 升到 4 的不算&#xff0c;…

Kafka消息不丢失与重复消费问题解决方案总结

1. 生产者层面 异步发送与回调处理 异步发送方式&#xff1a;生产者一般使用异步方式发送消息&#xff0c;异步发送有消息和回调接口两个参数。在回调接口的重写方法中&#xff0c;可通过异常参数判断消息发送状态。若消息发送成功&#xff0c;异常参数为null&#xff1b;若发…

leetcode 3312. 查询排序后的最大公约数

题目如下 错误示范: 暴力做法遍历nums数组分别求公约数 using namespace std; int gcd(int a,int b) {int a1 a , b1 b;if(a < b) {a1 b;b1 a;}if(a1 % b1 0) return b1;return gcd(a1 % b1,b1);}//logn vector<int> gcdValues(vector<int>& nums, …

VuePress搭建个人博客

VuePress搭建个人博客 官网地址: https://v2.vuepress.vuejs.org/zh/ 相关链接: https://theme-hope.vuejs.press/zh/get-started/ 快速上手 pnpm create vuepress vuepress-starter# 选择简体中文、pnpm等, 具体如下 .../19347d7670a-1fd8 | 69 .../19…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

ABB RobotStudio学习记录(二)SmartGripper模拟

SmartGripper模拟 准备具体操作 准备 名称版本Robot Studio6.08 为了简化开发&#xff0c;我研究了 ABB 机械臂 SmartGripper 在 ABB RobotStudio 中的模拟操作。 具体操作 主要分3个步骤&#xff1a; 修改机械装置&#xff0c;设置Pose; 我这里使用的ABB YuMi&#xff0c…

terminal_学习

参考&#xff1a; 让你的 Mac 提前用上 macOS Catalina 的 Shell——Oh My Zsh 配置指南 https://sspai.com/post/55176MAC 终端美化教程&#xff08;来个全套 &#xff09;https://blog.csdn.net/weixin_42326144/article/details/121957795 x.1 zsh做美化&#xff08;安装oh…

音视频入门知识(四):封装篇

⭐四、封装篇 H264封装成mp4、flv等格式&#xff0c;那为什么需要封装&#xff1f; ​ h264也能播放&#xff0c;但是按照帧率进行播放&#xff0c;可能不准 ★FLV **FLV&#xff08;Flash Video&#xff09;**是一种用于传输和播放视频的容器文件格式。FLV 格式广泛应用于流媒…

使用 ASP.NET Core wwwroot 上传和存储文件

在 ASP.NET Core 应用程序中上传和存储文件是用户个人资料、产品目录等功能的常见要求。本指南将解释使用wwwroot存储图像&#xff08;可用于文件&#xff09;的过程以及如何在应用程序中处理图像上传。 步骤 1&#xff1a;设置项目环境 确保您的 ASP.NET 项目中具有必要的依…

S2-007-RCE(CVE-2012-0838)--vulhub

S2-007-RCE(CVE-2012-0838) 攻击者可以利用不安全的输入数据&#xff0c;构造OGNL表达式&#xff0c;最终导致服务器执行恶意命令。特别是在没有适当的输入验证或配置的情况下&#xff0c;攻击者可以在 HTTP 请求中嵌入 OGNL 表达式&#xff0c;触发远程代码执行。 Affected …