aqiu
cd030d82e5
refactor(vibe): extract workflow generation to dedicated module
...
- Move workflow generation logic from LLMGenerator to WorkflowGenerator
- Extract to api/core/workflow/generator/ with modular architecture
- Implement Planner-Builder pattern for better separation of concerns
- Add validation engine with rule-based error classification
- Add node and edge repair utilities for auto-fixing common issues
- Add deterministic Mermaid generator for consistent output
- Reorganize configuration and prompts
- Move vibe_config/ to generator/config/
- Move vibe_prompts.py to generator/prompts/ (split into multiple files)
- Add builder_prompts.py and planner_prompts.py for new architecture
- Enhance frontend workflow handling
- Use standard node initialization for proper node setup
- Improve variable reference replacement with better error handling
- Add model fallback logic for better compatibility
- Handle end node outputs format (value_selector vs legacy format)
- Ensure parameter-extractor nodes have required 'required' field
- Add comprehensive test coverage
- Unit tests for mermaid generator, node repair, edge repair
- Tests for validation engine and rule system
- Tests for planner prompts formatting
- Frontend tests for variable reference replacement
- Add max_fix_iterations parameter for validate-fix loop configuration
# Conflicts:
# web/app/components/workflow/hooks/use-workflow-vibe.tsx
2025-12-29 11:04:42 +08:00
aqiu
c4eee28fd8
refactor(vibe): modularize config and enhance workflow generation
...
- Extract vibe configuration into dedicated module (api/core/llm_generator/vibe_config/)
- node_schemas.py: Built-in node parameter definitions
- fallback_rules.py: Keyword-based fallback rules and aliases
- responses.py: Off-topic response templates
- node_definitions.json: Shared schema for frontend/backend sync
- Enhance workflow generation with intent classification
- Add off-topic detection with helpful suggestions
- Support regeneration mode with previous workflow context
- Add tool validation and sanitization
- Support language preference for generated content
- Extract frontend config to use-workflow-vibe-config.ts
- NODE_TYPE_ALIASES: Node type inference mapping
- FIELD_NAME_CORRECTIONS: LLM output field corrections
- correctFieldName(): Unified field correction helper
- Fix defensive null checks in variable utils and key-value list
- Change verbose debug logs from info to debug level
2025-12-29 11:04:41 +08:00
crazywoola
9d496ed3dc
feat: add MCP tools
2025-12-29 10:42:22 +08:00
crazywoola
5705fa898f
feat: v1
2025-12-29 10:42:21 +08:00
crazywoola
a5c6c8638e
feat: v1
2025-12-29 10:42:21 +08:00
quicksand
1a18012f98
fix(api): use json_repair for conversation title parsing ( #29649 )
2025-12-15 11:29:28 +08:00
wangxiaolei
c033030d8c
fix: 'list' object has no attribute 'find' ( #29384 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-10 12:45:53 +08:00
wangxiaolei
ee0fe8c7f9
feat: support suggested_questions_after_answer to be configed ( #29254 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-12-08 10:27:02 +08:00
-LAN-
4dccdf9478
Ensure suggested questions parser returns typed sequence ( #27104 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-10-20 13:01:09 +08:00
Asuka Minato
1bd621f819
remove .value ( #26633 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2025-10-11 09:08:29 +08:00
quicksand
3bb67885ef
fix(api): resolve error in agent‑strategy prompt generator ( #26278 )
2025-09-26 16:16:55 +08:00
-LAN-
85cda47c70
feat: knowledge pipeline ( #25360 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: jyong <718720800@qq.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com>
Co-authored-by: lyzno1 <yuanyouhuilyz@gmail.com>
Co-authored-by: quicksand <quicksandzn@gmail.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: lyzno1 <92089059+lyzno1@users.noreply.github.com>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
Co-authored-by: Yongtao Huang <yongtaoh2022@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Hanqing Zhao <sherry9277@gmail.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Harry <xh001x@hotmail.com>
2025-09-18 12:49:10 +08:00
-LAN-
bab4975809
chore: add ast-grep rule to convert Optional[T] to T | None ( #25560 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-15 13:06:33 +08:00
-LAN-
08dd3f7b50
Fix basedpyright type errors ( #25435 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-09-10 01:54:26 +08:00
Asuka Minato
a78339a040
remove bare list, dict, Sequence, None, Any ( #25058 )
...
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
2025-09-06 03:32:23 +08:00
-LAN-
9d5956cef8
[Chore/Refactor] Switch from MyPy to Basedpyright for type checking ( #25047 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
2025-09-03 11:52:26 +08:00
Bowen Liang
7b379e2a61
chore: apply ty checks on api code with script and ci action ( #24653 )
2025-09-02 16:05:13 +08:00
Yongtao Huang
826f19e968
Chore : rm dead code detected by pylance ( #24588 )
2025-08-27 13:19:40 +08:00
-LAN-
726c429772
fix: handle non-array segment types in Loop node ( #24590 )
...
Co-authored-by: QuantumGhost <obelisk.reg+git@gmail.com>
2025-08-27 11:21:42 +08:00
Yongtao Huang
fa753239ad
Refactor: use logger = logging.getLogger(__name__) in logging ( #24515 )
...
Co-authored-by: Yongtao Huang <99629139+hyongtao-db@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2025-08-26 18:10:31 +08:00
GuanMu
47f480c0dc
fix: unify log format, use placeholders instead of string concatenation ( #24544 )
2025-08-26 15:45:16 +08:00
NeatGuyCoding
870e3daa95
hotfix: fix multiple case match syntax ( #24204 )
2025-08-20 14:45:46 +08:00
Stream
c2606f9062
fix: correct behaviour of code fix ( #24152 )
...
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-19 14:18:49 +08:00
Asuka Minato
70da81d0e5
try ast-grep ( #24149 )
2025-08-19 13:41:52 +08:00
Joel
de9c5f10b3
feat: enchance prompt and code ( #23633 )
...
Co-authored-by: stream <stream@dify.ai>
Co-authored-by: Stream <1542763342@qq.com>
Co-authored-by: Stream <Stream_2@qq.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-18 12:29:12 +08:00
Asuka Minato
a189d293f8
make logging not use f-str, change others to f-str ( #22882 )
2025-07-25 10:32:48 +08:00
quicksand
8340d775bd
Improve: support custom model parameters in auto-generator ( #22924 )
2025-07-25 09:00:26 +08:00
crazywoola
60c37fe492
Added a check to ensure the input `text` is a string before proceeding with parsing ( #22809 )
...
Co-authored-by: -LAN- <laipz8200@outlook.com>
2025-07-23 13:53:27 +08:00
Stream
4b2baeea65
fix: use model provided by user in prompt generator ( #22541 ) ( #22542 )
...
Co-authored-by: stream <stream@dify.ai>
2025-07-17 14:19:52 +08:00
Yeuoly
5487463385
fix: add list contents handling in structured LLM output ( #21837 )
2025-07-02 19:14:21 +08:00
Yeuoly
0cb00d5fd2
refactor: move structured output support outside LLM Node ( #21565 )
...
Co-authored-by: Novice <novice12185727@gmail.com>
2025-06-27 14:55:31 +08:00
Yasuhiro Ohno
55371e5abf
Improve CONVERSATION_TITLE_PROMPT to correctly handle Japanese and input ( #20351 )
2025-05-30 14:43:51 +08:00
cooper.wu
2cad98f01f
fix : #18132 when deepseek llm model, auto_generate name can't work ( #18646 )
...
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2025-05-26 18:04:52 +08:00
QuantumGhost
bd1bbfee4b
Enhance Code Consistency Across Repository with `.editorconfig` ( #19023 )
2025-04-29 18:04:33 +08:00
Ganondorf
a147d2a200
feat(api): use `json_repair` to fix invalid json while generating structured output ( #18977 )
...
When generating JSON schema using an LLM in the structured output feature,
models may occasionally return invalid JSON, which prevents clients from correctly
parsing the response and can lead to UI breakage.
This commit addresses the issue by introducing `json_repair` to automatically
fix invalid JSON strings returned by the LLM, ensuring smoother functionality
and better client-side handling of structured outputs.
Co-authored-by: lizb <lizb@sugon.com>
2025-04-29 12:39:13 +08:00
PyKen
2266001d19
Fix some prompt typos ( #18645 )
2025-04-24 10:36:45 +08:00
Novice
da9269ca97
feat: structured output ( #17877 )
2025-04-18 16:33:53 +08:00
zhangkun-21
c4bb07184d
Update prompts.py:Fix conversation title language for Italian conversations ( #16696 )
2025-03-25 14:29:08 +08:00
Yeuoly
403e2d58b9
Introduce Plugins ( #13836 )
...
Signed-off-by: yihong0618 <zouzou0208@gmail.com>
Signed-off-by: -LAN- <laipz8200@outlook.com>
Signed-off-by: xhe <xw897002528@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: takatost <takatost@gmail.com>
Co-authored-by: kurokobo <kuro664@gmail.com>
Co-authored-by: Novice Lee <novicelee@NoviPro.local>
Co-authored-by: zxhlyh <jasonapring2015@outlook.com>
Co-authored-by: AkaraChen <akarachen@outlook.com>
Co-authored-by: Yi <yxiaoisme@gmail.com>
Co-authored-by: Joel <iamjoel007@gmail.com>
Co-authored-by: JzoNg <jzongcode@gmail.com>
Co-authored-by: twwu <twwu@dify.ai>
Co-authored-by: Hiroshi Fujita <fujita-h@users.noreply.github.com>
Co-authored-by: AkaraChen <85140972+AkaraChen@users.noreply.github.com>
Co-authored-by: NFish <douxc512@gmail.com>
Co-authored-by: Wu Tianwei <30284043+WTW0313@users.noreply.github.com>
Co-authored-by: 非法操作 <hjlarry@163.com>
Co-authored-by: Novice <857526207@qq.com>
Co-authored-by: Hiroki Nagai <82458324+nagaihiroki-git@users.noreply.github.com>
Co-authored-by: Gen Sato <52241300+halogen22@users.noreply.github.com>
Co-authored-by: eux <euxuuu@gmail.com>
Co-authored-by: huangzhuo1949 <167434202+huangzhuo1949@users.noreply.github.com>
Co-authored-by: huangzhuo <huangzhuo1@xiaomi.com>
Co-authored-by: lotsik <lotsik@mail.ru>
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
Co-authored-by: nite-knite <nkCoding@gmail.com>
Co-authored-by: Jyong <76649700+JohnJyong@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: gakkiyomi <gakkiyomi@aliyun.com>
Co-authored-by: CN-P5 <heibai2006@gmail.com>
Co-authored-by: CN-P5 <heibai2006@qq.com>
Co-authored-by: Chuehnone <1897025+chuehnone@users.noreply.github.com>
Co-authored-by: yihong <zouzou0208@gmail.com>
Co-authored-by: Kevin9703 <51311316+Kevin9703@users.noreply.github.com>
Co-authored-by: -LAN- <laipz8200@outlook.com>
Co-authored-by: Boris Feld <lothiraldan@gmail.com>
Co-authored-by: mbo <himabo@gmail.com>
Co-authored-by: mabo <mabo@aeyes.ai>
Co-authored-by: Warren Chen <warren.chen830@gmail.com>
Co-authored-by: JzoNgKVO <27049666+JzoNgKVO@users.noreply.github.com>
Co-authored-by: jiandanfeng <chenjh3@wangsu.com>
Co-authored-by: zhu-an <70234959+xhdd123321@users.noreply.github.com>
Co-authored-by: zhaoqingyu.1075 <zhaoqingyu.1075@bytedance.com>
Co-authored-by: 海狸大師 <86974027+yenslife@users.noreply.github.com>
Co-authored-by: Xu Song <xusong.vip@gmail.com>
Co-authored-by: rayshaw001 <396301947@163.com>
Co-authored-by: Ding Jiatong <dingjiatong@gmail.com>
Co-authored-by: Bowen Liang <liangbowen@gf.com.cn>
Co-authored-by: JasonVV <jasonwangiii@outlook.com>
Co-authored-by: le0zh <newlight@qq.com>
Co-authored-by: zhuxinliang <zhuxinliang@didiglobal.com>
Co-authored-by: k-zaku <zaku99@outlook.jp>
Co-authored-by: luckylhb90 <luckylhb90@gmail.com>
Co-authored-by: hobo.l <hobo.l@binance.com>
Co-authored-by: jiangbo721 <365065261@qq.com>
Co-authored-by: 刘江波 <jiangbo721@163.com>
Co-authored-by: Shun Miyazawa <34241526+miya@users.noreply.github.com>
Co-authored-by: EricPan <30651140+Egfly@users.noreply.github.com>
Co-authored-by: crazywoola <427733928@qq.com>
Co-authored-by: sino <sino2322@gmail.com>
Co-authored-by: Jhvcc <37662342+Jhvcc@users.noreply.github.com>
Co-authored-by: lowell <lowell.hu@zkteco.in>
Co-authored-by: Boris Polonsky <BorisPolonsky@users.noreply.github.com>
Co-authored-by: Ademílson Tonato <ademilsonft@outlook.com>
Co-authored-by: Ademílson Tonato <ademilson.tonato@refurbed.com>
Co-authored-by: IWAI, Masaharu <iwaim.sub@gmail.com>
Co-authored-by: Yueh-Po Peng (Yabi) <94939112+y10ab1@users.noreply.github.com>
Co-authored-by: Jason <ggbbddjm@gmail.com>
Co-authored-by: Xin Zhang <sjhpzx@gmail.com>
Co-authored-by: yjc980121 <3898524+yjc980121@users.noreply.github.com>
Co-authored-by: heyszt <36215648+hieheihei@users.noreply.github.com>
Co-authored-by: Abdullah AlOsaimi <osaimiacc@gmail.com>
Co-authored-by: Abdullah AlOsaimi <189027247+osaimi@users.noreply.github.com>
Co-authored-by: Yingchun Lai <laiyingchun@apache.org>
Co-authored-by: Hash Brown <hi@xzd.me>
Co-authored-by: zuodongxu <192560071+zuodongxu@users.noreply.github.com>
Co-authored-by: Masashi Tomooka <tmokmss@users.noreply.github.com>
Co-authored-by: aplio <ryo.091219@gmail.com>
Co-authored-by: Obada Khalili <54270856+obadakhalili@users.noreply.github.com>
Co-authored-by: Nam Vu <zuzoovn@gmail.com>
Co-authored-by: Kei YAMAZAKI <1715090+kei-yamazaki@users.noreply.github.com>
Co-authored-by: TechnoHouse <13776377+deephbz@users.noreply.github.com>
Co-authored-by: Riddhimaan-Senapati <114703025+Riddhimaan-Senapati@users.noreply.github.com>
Co-authored-by: MaFee921 <31881301+2284730142@users.noreply.github.com>
Co-authored-by: te-chan <t-nakanome@sakura-is.co.jp>
Co-authored-by: HQidea <HQidea@users.noreply.github.com>
Co-authored-by: Joshbly <36315710+Joshbly@users.noreply.github.com>
Co-authored-by: xhe <xw897002528@gmail.com>
Co-authored-by: weiwenyan-dev <154779315+weiwenyan-dev@users.noreply.github.com>
Co-authored-by: ex_wenyan.wei <ex_wenyan.wei@tcl.com>
Co-authored-by: engchina <12236799+engchina@users.noreply.github.com>
Co-authored-by: engchina <atjapan2015@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: 呆萌闷油瓶 <253605712@qq.com>
Co-authored-by: Kemal <kemalmeler@outlook.com>
Co-authored-by: Lazy_Frog <4590648+lazyFrogLOL@users.noreply.github.com>
Co-authored-by: Yi Xiao <54782454+YIXIAO0@users.noreply.github.com>
Co-authored-by: Steven sun <98230804+Tuyohai@users.noreply.github.com>
Co-authored-by: steven <sunzwj@digitalchina.com>
Co-authored-by: Kalo Chin <91766386+fdb02983rhy@users.noreply.github.com>
Co-authored-by: Katy Tao <34019945+KatyTao@users.noreply.github.com>
Co-authored-by: depy <42985524+h4ckdepy@users.noreply.github.com>
Co-authored-by: 胡春东 <gycm520@gmail.com>
Co-authored-by: Junjie.M <118170653@qq.com>
Co-authored-by: MuYu <mr.muzea@gmail.com>
Co-authored-by: Naoki Takashima <39912547+takatea@users.noreply.github.com>
Co-authored-by: Summer-Gu <37869445+gubinjie@users.noreply.github.com>
Co-authored-by: Fei He <droxer.he@gmail.com>
Co-authored-by: ybalbert001 <120714773+ybalbert001@users.noreply.github.com>
Co-authored-by: Yuanbo Li <ybalbert@amazon.com>
Co-authored-by: douxc <7553076+douxc@users.noreply.github.com>
Co-authored-by: liuzhenghua <1090179900@qq.com>
Co-authored-by: Wu Jiayang <62842862+Wu-Jiayang@users.noreply.github.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: kimjion <45935338+kimjion@users.noreply.github.com>
Co-authored-by: AugNSo <song.tiankai@icloud.com>
Co-authored-by: llinvokerl <38915183+llinvokerl@users.noreply.github.com>
Co-authored-by: liusurong.lsr <liusurong.lsr@alibaba-inc.com>
Co-authored-by: Vasu Negi <vasu-negi@users.noreply.github.com>
Co-authored-by: Hundredwz <1808096180@qq.com>
Co-authored-by: Xiyuan Chen <52963600+GareArc@users.noreply.github.com>
2025-02-17 17:05:13 +08:00
Xu Song
210926cd91
Fix suggested_question_prompt ( #12738 )
2025-01-20 22:16:30 +08:00
yihong
56e15d09a9
feat: mypy for all type check ( #10921 )
2024-12-24 18:38:51 +08:00
-LAN-
810adb8a94
fix: change OutputParserError to inherit from ValueError ( #11935 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
2024-12-21 21:21:30 +08:00
-LAN-
9789905a1f
chore(*): Removes debugging print statements ( #11145 )
...
Signed-off-by: -LAN- <laipz8200@outlook.com>
2024-11-26 22:03:19 +08:00
Bowen Liang
51db59622c
chore(lint): cleanup repeated cause exception in logging.exception replaced by helpful message ( #10425 )
2024-11-15 15:41:40 +08:00
Kota-Yamaguchi
a7ee51e5d8
feat: add code generator ( #9051 )
...
Co-authored-by: crazywoola <100913391+crazywoola@users.noreply.github.com>
2024-10-22 21:57:54 +08:00
crazywoola
8cc9e68363
fix: prompt for the follow-up suggestions ( #8685 )
2024-09-23 20:00:34 +08:00
Nam Vu
eaa7e9b1f0
fix: llm_generator.py JSONDecodeError ( #8504 )
2024-09-22 14:02:12 +08:00
Bowen Liang
c69f5b07ba
chore: apply ruff E501 line-too-long linter rule ( #8275 )
...
Co-authored-by: -LAN- <laipz8200@outlook.com>
2024-09-12 14:00:36 +08:00
Bowen Liang
292220c596
chore: apply pep8-naming rules for naming convention ( #8261 )
2024-09-11 16:40:52 +08:00
Bowen Liang
2cf1187b32
chore(api/core): apply ruff reformatting ( #7624 )
2024-09-10 17:00:20 +08:00