Skip to content

Conversation

@misaka893
Copy link

ref: https://github.com/Magickbase/Web3-Platform/issues/772

注意:这只是一个 demo 性质的 pr,所以有一些需要拆分的逻辑并没有做。比如 rpc 的 baseurl 就是写死的。

新增功能

  • 根据地址查询 assets,多个地址用逗号分隔
  • 根据地址查询 tx,多个地址用逗号分隔

使用说明

新增 workflow

image

添加查询节点

image

设置 start 节点参数

start 节点需要设置为 form 类型,并且有一个 addresses 字段
image

设置查询节点使用变量

image

运行并查看结果

image

一些总结

目前 flowiseai 的开发过程非常不友好,具体如下:

代码层面

  • 前端项目没有使用 TS,导致 bug 非常多,并且 90% 的 bug 都是类型错误,但凡使用 ts 都不会出现这种问题
  • 所有节点全部放到 packages/components 下面,编译成 commonjs 后,由 server 在启动时动态载入。导致很多只有 esm 格式的 npm 包无法直接引入,只能通过一些 hack 方法来做,徒增理解成本
  • server 调试困难。原项目使用 oclif 和 nodemon 来启动,一层套一层,导致无法直接使用 vscode 的 debug 能力,如果要打断点调试,还是需要单独启动这个项目来做。并且 packages/components 的改动无法热更新。
  • 所有节点的运行逻辑全部放到后端,但是对于链上数据的操作,尤其是写操作,涉及到签名,通常需要放到前端来做。这一块改动会很大。
  • 前端使用 mui 作为组件库而不是 shadcn+tailwindcss,导致以后的个性化设置和扩展能力非常受限。

产品层面

  • 原项目和 dify 等平台类似,都是以 AI 作为产品的核心,整个设计逻辑和操作逻辑都是为这个服务的。最直观的表现就是触发 workflow 需要通过右侧的聊天窗口来实现。我们需要明确到底要做一个 AI 产品,里面有一个 XXX 功能,还是做一个 XXX 产品,里面有一个 AI 功能。显然 flowiseai 是前者。
  • 在当前的产品逻辑下,用户如果需要多次查询,每次都得先清空聊天记录,才能回退到初始状态,才会出现 start 节点的 form。这个逻辑在 AI 产品中没什么问题,但是对于我们的需求来说并不是这样
  • 节点运行结果的显示,目前也是放到聊天窗口里面,依然是 AI 产品的逻辑

综上所述,其实个人非常不建议基于 flowiseai 做二次开发。flowiseai 的流程编排能力,用的也是第三方的 https://reactflow.dev/。如果我们能直接用这个做,问题会少很多。

vinodkiran and others added 30 commits April 23, 2025 19:10
* updating cost values to models.json file

* Update models.json

---------

Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* Chatflow config - rate limit and override config were overwriting changes.

* prevent post processing JS function from escaping as JSON...

* non-streaming follow up prompts need to be escaped twice

* prevent post processing JS function from escaping as JSON...

* Adding file mimetypes for full file upload...

* lint..

* fixing the issue with storing only filtered nodes..

* return doc store processing response without await when queue mode and request is from UI

---------

Co-authored-by: Henry <hzj94@hotmail.com>
Upgrade MCP version and support SSE mode.

Co-authored-by: guwenjia <guwenjia@bilibili.com>
feat: Support custom base URL for ChatGoogleGenerativeAI
* Better Error reporting for document store operations.

* Update packages/ui/src/ErrorBoundary.jsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update index.ts

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* feat: add additional parameters to Tavily API tool

* update descirption

* fix version

* lint fix

---------

Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* feat: add Free Web Scraper tool

* fix: remove unused variable 'finalCount'

* feat(tools): Add configurable timeout to handle edge scenarios

* add sitemap mode and rename Cheerio Web Scraper node

* refactor: simplify tool description for broader LLM compatibility
* added_o4mini_model

* fix: pnpm run lint-fix

---------

Co-authored-by: Ong Chung Yau <33013947+chungyau97@users.noreply.github.com>
… icon (FlowiseAI#4359)

* fix Cheerio Web Scraper for online deployments

* fix: change node name
* added perplexity node

* last stable release

* Update ChatPerplexity.ts

* update

* Update ChatPerplexity.ts

* Update ChatPerplexity.ts

* pnpm lint fix

* feat: update @langchain/community from 0.3.24 to 0.3.29

---------

Co-authored-by: Marvin <marvin.chin@regentmarkets.com>
* close mcp connection

* update file types
* feat: add ChatLitellm component and LitellmApi credential

* fix: lint errors

* Update LLMFilterCompressionRetriever.ts

---------

Co-authored-by: Henry Heng <henryheng@flowiseai.com>
…4383 (FlowiseAI#4384)

* adding DeepSeekr1 distill to groq

* Added max_tokens to groq.ts and chatGroqLlamaindex.ts plus updated groq models removing the outdated models and adding new models such as compound-beta

* Patched OpenAI typo on ChatGroq_LLamaIndex.ts

* Patching groq llamaindex

* Patched pnpm lint error

* Removed retundant image

* Update ChatGroq_LlamaIndex.ts

---------

Co-authored-by: Henry Heng <henryheng@flowiseai.com>
…reation (FlowiseAI#4381)

added pgvector check and time handling for postgresql record manager
fix: add missing imports for messages and feedbacks in AgentFlow and AssistantFlow
* agent flow v2

* chat message background

* conditon agent flow

* add sticky note

* update human input dynamic prompt

* add HTTP node

* add default tool icon

* fix export duplicate agentflow v2

* add agentflow v2 marketplaces

* refractor memoization, add iteration nodes

* add agentflow v2 templates

* add agentflow generator

* add migration scripts for mysql, mariadb, posrgres and fix date filters for executions

* update agentflow chat history config

* fix get all flows error after deletion and rename

* add previous nodes from parent node

* update generator prompt

* update run time state when using iteration nodes

* prevent looping connection, prevent duplication of start node, add executeflow node, add nodes agentflow, chat history variable

* update embed

* convert form input to string

* bump openai version

* add react rewards

* add prompt generator to prediction queue

* add array schema to overrideconfig

* UI touchup

* update embedded chat version

* fix node info dialog

* update start node and loop default iteration

* update UI fixes for agentflow v2

* fix async drop down

* add export import to agentflowsv2, executions, fix UI bugs

* add default empty object to flowlisttable

* add ability to share trace link publicly, allow MCP tool use for Agent and Assistant

* add runtime message length to variable, display conditions on UI

* fix array validation

* add ability to add knowledge from vector store and embeddings for agent

* add agent tool require human input

* add ephemeral memory to start node

* update agent flow node to show vs and embeddings icons

* feat: add import chat data functionality for AgentFlowV2

* feat: set chatMessage.executionId to null if not found in import JSON file or database

* fix: MariaDB execution migration script to utf8mb4_unicode_520_ci

---------

Co-authored-by: Ong Chung Yau <33013947+chungyau97@users.noreply.github.com>
Co-authored-by: chungyau97 <chungyau97@gmail.com>
update agentflow v2 events to redis subscriber
* update i18n readme

* update server README
fix ui streaming when model streaming is off
… and socket closing. (FlowiseAI#4377)

* redis keepalive mechanism for all redis

* removed offline queue commands

* Simplified changes for consistency. Added REDIS_KEEP_ALIVE env variable.

* update redis socket alive env variable

* lint fix

---------

Co-authored-by: Henry <hzj94@hotmail.com>
Co-authored-by: Henry Heng <henryheng@flowiseai.com>
* update file loader

* delete temp for o1

* fix tavily
@Keith-CY
Copy link
Member

我们需要明确到底要做一个 AI 产品,里面有一个 XXX 功能,还是做一个 XXX 产品,里面有一个 AI 功能。

我们想要的是一个 Workflow 平台, AI 更多是在向用户推荐 Workflow 的时候采用, AI 的交互类似 Perplexity, 将合适的 Workflow 在对话中返回可交互组件.

综上所述,其实个人非常不建议基于 flowiseai 做二次开发。flowiseai 的流程编排能力,用的也是第三方的 reactflow.dev。如果我们能直接用这个做,问题会少很多。

一开始的选型确实是 reactflow, 但是他缺少现成的节点配置页面, 类似 n8n 这样的交互
image
这样的组件需要大量精力设计和开发(https://github.com/Magickbase/Web3-Platform/issues/328#issue-2755039828), 还需要基于反馈调整, 所以考虑选一款开源 workflow 平台进行二次开发, 复用上游的打磨.

如果有其他推荐的开源平台可以采用, 我们可以切换. 之前调研过这 5 款(https://github.com/Magickbase/Web3-Platform/issues/328#issuecomment-2777946079, https://github.com/Magickbase/Web3-Platform/issues/328#issuecomment-2782780733)

@misaka893
Copy link
Author

个人认为基于 flowiseai 的话,他带来的问题并不一定比他解决的问题少。https://github.com/Magickbase/Web3-Platform/issues/328#issue-2755039828 中列举的这些节点,基本上都是需要我们自己定制的,flowiseai 没有这些东西。这样一来,flowiseai 能提供的其实就是一个 BaseNode class 和 BaseNode 与 react-flow 之间的绑定关系。这个单独提取出来也不是不行。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.