最前端|Flowise本地调试指南,让你轻松掌握调试技巧

目录

一、前言

二、环境要求

三、开发环境准备

四、调试后端代码

五、调试前端代码

六、环境变量配置【非必须】


一、前言

Flowise 是一个具备 3 个不同模块的 monorepo 工程,这 3 个模块分别负责:

  • server: Node API 后端服务
  • ui: React 前端
  • components: Langchain 组件

二、环境要求

  • Node.js v16 +
  • 安装 yarn v1:
npmi -g yarn

三、开发环境准备

1、ForkFlowise Github Repository在新窗口打开

2、Clone 你 Fork 的仓库并 cd 到项目根目录

3、创建并切换到一个分支,名字随意

4、安装依赖:

yarn install

提示:
安装过程可能要 10 分钟左右,请耐心等待

5、构建代码

yarn build

6、在 http://localhost:3000 上启动应用(非开发模式):

yarn start

7、【可选】配置环境变量:参考下文环境变量

8、使用开发模式启动项目:

yarn dev

在开发模式下
对packages/ui或packages/server的所有改动会更新到http://localhost:8080
如果有对packages/components的改动,需要重新执行yarn build使其生效

四、调试后端代码

1、在.vscode目录下创建文件launch.json

2、在 configurations 数组里创建一个配置对象,主要关注以下配置:

  • type:配置类型
  • name:显示在启动下拉菜单中的名称
  • cwd:执行启动命令的绝对路径,通常会用到表示 vscode 当前工作路径的变量 workspaceFolder
  • runtimeExecutable:用什么命令启动,默认为 node
  • runtimeArgs:启动命令的参数列表

3、根据 IntelliSense 设置其他你需要的配置,hover 配置选项可以看到说明

4、示例配置(启动命令为 yarn dev):

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Backend",
"skipFiles": ["<node_internals>/**"],
"runtimeExecutable": "yarn",
"runtimeArgs": ["dev"],
"cwd": "${workspaceFolder}"
}
]
}

5、侧边栏切换至 Run and Debug 一栏,在下拉菜单中选择我们的配置,F5 启动调试

6、在packages/server中打断点测试,重启调试后能够正常进入断点即可

五、调试前端代码

1、这里演示用attach模式调试前端,因此要先执行yarn dev手动用开发模式启动前端工程

2、打开.vscode/launch.json文件,在 configurations 数组中添加一个配置对象

3、主要关注以下配置:

  • type:配置类型,这里使用 chrome 而不是 node
  • request:调试的请求类型,可选项为 launch 和 attach,这里选择 attach
  • port:用于远程调试浏览器的端口,chrome 推荐的端口为 9222;注意:这个端口不是前端工程的运行端口,而是和浏览器通信的调试用端口
  • url:要调试的前端应用的 url,如果不是本地 url 相当于远程调试(远程调试还有一些关键配置,这里不演示)
  • webRoot:表明在哪个本地目录下寻找连接到的进程正在运行的代码(不是构建后的代码,是源代码路径)

4、示例配置:

{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"name": "Launch Frontend",
"request": "attach",
"port": 9222,
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}\\packages\\ui\\src"
}
]
}

5、侧边栏切换至 Run and Debug 一栏,在下拉菜单中选择我们的配置,F5 启动调试

6、在packages/ui中打断点测试,重启调试后能够正常进入断点即可

六、环境变量配置【非必须】

分别在packages/ui和packages/server下创建.env文件可以配置前端和后端应用的环境变量,所有环境变量参考environment-variables在新窗口打开

  • packages/ui 环境变量配置示例:
PORT=8080
  • packages/server 环境变量配置示例:
PORT=3000
OVERRIDE_DATABASE=true
DATABASE_TYPE=sqlite
#DATABASE_PATH=/your_database_path/.flowise
#When database is not sqlite
#DATABASE_PORT=""
#DATABASE_HOST=""
#DATABASE_NAME="flowise"
#DATABASE_USER=""
#DATABASE_PASSWORD=""#FLOWISE_USERNAME=user
#FLOWISE_PASSWORD=1234
#DEBUG=true
#APIKEY_PATH=/your_api_key_path/.flowise
#LOG_PATH=/your_log_path/.flowise/logs
#LOG_LEVEL=debug (error | warn | info | verbose | debug)
#EXECUTION_MODE=main (child | main)
#TOOL_FUNCTION_BUILTIN_DEP=crypto,fs
#TOOL_FUNCTION_EXTERNAL_DEP=moment,lodash

到此就结束了,感兴趣可以自己尝试一下。

作者:范轶洁| 资深前端开发工程师

版权声明:本文由神州数码云基地团队整理撰写,若转载请注明出处。

公众号搜索神州数码云基地,了解更多技术干货。

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

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

相关文章

哪些行业装配柔性线路板 (FPC)时用到UV胶水?

柔性线路板&#xff08;FPC&#xff09;因其可弯曲和轻薄的特性&#xff0c;在多种行业和应用中都有广泛的应用。以下是一些常见的行业和场景&#xff0c;它们在装配FPC时可能使用UV胶水&#xff1a; 1.电子产品制造&#xff1a; 移动设备&#xff1a;如智能手机、平板电脑和可…

解决Ubantu 18.04 输入正确密码后进不去桌面

今天在学习中遇到了一个问题&#xff0c;在Ubuntu中输入登录密码后进不去桌面&#xff0c;一直返回登录页面&#xff0c;是因为配置环境变量/etc/profile出现了问题&#xff0c;远程连接上ubantu或者使用ctrlaltF&#xff08;1~6&#xff09;输入用户名和密码&#xff08;注意密…

QT中网络编程之发送Http协议的Get和Post请求

文章目录 HTTP协议GET请求POST请求QT中对HTTP协议的处理1.QNetworkAccessManager2.QNetworkRequest3.QNetworkReply QT实现GET请求和POST请求Get请求步骤Post请求步骤 测试结果 使用QT的开发产品最终作为一个客户端来使用&#xff0c;很大的一个功能就是要和后端服务器进行交互…

【大数据面试】MySQL面试题与答案

数据库中的事务是什么&#xff0c;MySQL中是怎么实现的 MySQL事务的特性? 数据库事务的隔离级别?解决了什么问题?默认事务隔离级别? 脏读&#xff0c;幻读&#xff0c;不可重复读的定义 MySQL怎么实现可重复读? 数据库第三范式和第四范式区别? MySQL的存储引擎? …

一键自动化脚本使用acme.sh部署RSA、ECC双证书,实现自动续期+钉钉告警

一键自动化脚本使用acme.sh部署RSA、ECC双证书,实现自动续期+钉钉告警。 ECC证书 相比 RSA证书, 密钥短了很少,但安全性还是有保证,ECC 是Elliptic curve cryptography的简写, 是一种建立公开密钥加密的算法,基于椭圆曲线。由于其密钥较短,运算速度较快,所以渐渐开始在…

【经典LeetCode算法题目专栏分类】【第7期】快慢指针与链表

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 快慢指针 移动零 class…

客户服务常用的ChatGPT通用提示词模板

快速响应&#xff1a;如何快速响应客户的问题和需求&#xff1f; 问题解决&#xff1a;如何解决客户遇到的问题&#xff0c;提供满意的解决方案&#xff1f; 沟通渠道&#xff1a;如何建立多样化的沟通渠道&#xff0c;方便客户随时联系&#xff1f; 服务态度&#xff1a;如…

命令执行 [SWPUCTF 2021 新生赛]babyrce

打开题目 我们看到题目说cookie值admin等于1时&#xff0c;才能包含文件 bp修改一下得到 访问rasalghul.php&#xff0c;得到 题目说如果我们get传入一个url且不为空值&#xff0c;就将我们get姿势传入的url的值赋值给ip 然后用正则过滤了 / /&#xff0c;如果ip的值没有 / …

PLC智能网关,实现PLC联网

在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;的应用日益广泛。然而&#xff0c;传统的PLC系统通常面临着联网难题&#xff0c;限制了数据的共享和远程监控的可能性。在这个背景下&#xff0c;PLC智能网关应运而生。本文将围绕“PLC智能网关&#…

Java第一个程序——Hello,World!

“Hello, world”的由来可以追溯到 The C Programming Language 。在这门编程语言中&#xff0c;它被用作第一个演示程序&#xff0c;向人们展示了在计算机屏幕上输出“Hello world”这行字符串的计算机程序。由于这个演示程序的简洁性和直观性&#xff0c;它成为了许多初学者学…

TikTok文化独白:短视频如何塑造社会心态?

在数字时代的浪潮中&#xff0c;社交媒体平台已然成为影响社会心态的重要力量&#xff0c;而TikTok以其独特的短视频形式&#xff0c;成为年轻一代传达思想和情感的重要场所。本文将深入探讨TikTok文化的独白&#xff0c;研究短视频是如何在这个充满活力的平台上塑造和反映社会…

谷歌Gemini与GPT-3.5 Turbo的实力比较;半小时写了一个简单的1945游戏

&#x1f989; AI新闻 &#x1f680; 谷歌Gemini与GPT-3.5 Turbo的实力比较 摘要&#xff1a;卡耐基梅隆大学进行了专业客观的第三方比较&#xff0c;发现Gemini Pro版本接近但略逊于GPT-3.5 Turbo&#xff0c;GPT-4则领先。Gemini在不同任务中表现出一些奇怪的特性&#xff…

String 的转换 ,你平时有关注过么?

大家平时需要将一个值转换成字符串类型 String时是如果操作的&#xff1f; 随缘&#xff1f; 还是看心情&#xff1f; toString &#xff08;String&#xff09; String.valueOf() 这三个玩意的区别是啥&#xff1f; toString &#xff0c;是某个对象的函数 所以有3个点要…

AcWing算法提高课-2.2.2武士风度的牛

算法提高课整理 CSDN个人主页&#xff1a;更好的阅读体验 原题链接 题目描述 农民 John 有很多牛&#xff0c;他想交易其中一头被 Don 称为 The Knight 的牛。 这头牛有一个独一无二的超能力&#xff0c;在农场里像 Knight 一样地跳&#xff08;就是我们熟悉的象棋中马的走…

js 深浅拷贝的区别和实现方法

一&#xff1a;什么浅拷贝&#xff1a; 浅拷贝创建一个新对象&#xff0c;然后将原始对象的所有属性值复制到新对象中。这意味着&#xff0c;如果原始对象的属性值是基本类型&#xff08;例如数字、字符串&#xff09;&#xff0c;那么这些值会被直接复制到新对象中。但如果属…

智能优化算法应用:基于蜜獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蜜獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蜜獾算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蜜獾算法4.实验参数设定5.算法结果6.参考文献7.MA…

高效单节锂电池3V-4.2V升压12V1A解决方案

高效单节锂电池3V-4.2V升压12V1A解决方案 随着便携式产品的发展&#xff0c;对电源管理的要求越来越高。如何将单节锂电池的3V-4.2V电压升高至12V&#xff0c;成为了一种常见的需求。针对这一需求&#xff0c;本文将介绍一款高效、可靠的升压解决方案。 产品特性&#xff1a; …

Linux(1)_基础知识

第一部分 一、Linux系统概述 创始人&#xff1a;芬兰大学大一的学生写的Linux内核&#xff0c;李纳斯托瓦兹。 Linux时unix的类系统&#xff1b; 特点&#xff1a;多用户 多线程的操作系统&#xff1b; 开源操作系统&#xff1b; 开源项目&#xff1a;操作系统&#xff0c;应用…

鸿鹄工程项目管理系统源码:Spring Cloud与前后端分离的完美结合

在现代化的工程项目管理中&#xff0c;一套功能全面、操作便捷的系统至关重要。本文将介绍一个基于Spring Cloud和Spring Boot技术的Java版工程项目管理系统&#xff0c;结合Vue和ElementUI实现前后端分离。该系统涵盖了项目管理、合同管理、预警管理、竣工管理、质量管理等多个…

uniapp整合websocket(简易版)

本文为非全局websocket,只在单页面创建连接。适用于在线聊天对话等业务。若有需要全局websocket(一打开app/小程序就自动连接,关闭则断开),请参考:微信小程序全局websocket。或将本文的实现移至App.vue中即可本文示例较为简易,若生产业务线上使用,需额外优化稳定性即异…