0.15.0
v0.15.0
✨ What’s New in v0.15.0? ✨
Hey developers! We know you've got a lot going on, so let's cut to it. Here's what's new in v0.15.0, our latest release, packed with bug fixes, feature upgrades, and enhancements.
⚡ New Features
🧑🧑🧒🧒 Parent-child Retrieval
Leverage a two-tier hierarchical approach that effectively balances the trade-off between accurate matching and comprehensive contextual information to improve the quality and accuracy of AI-generated responses in RAG systems. Learn more
Highlights:
- The new chunk editing and preview display brings users a better reading and editing experience, making it easier for people without technical backgrounds to understand the two-layer parent-child structure.
- We allow users to improve retrieval efficiency by child chunks independently without changing parent chunks as LLM content.
- Update index mode rules: Economical cannot be downgraded once upgraded to High Quality.
- Document batch operations in Knowledge Base support batch enabling, disabling, deletion, and archiving document functions.
✨ Improvements
- Multi-Version Workflows: Manage multiple workflow versions more effectively with contributions from @warren830 (#11990).
- UI/UX adjustments for accessibility, such as replacing
divwithbuttonto enhance user interaction and navigation (@TinsFox, #12046). - Database and memory optimizations that not only improve performance but they'll likely save you headaches when loading and retrieving data (@laipz8200, #12071).
- Enhanced support for streaming modes, error feedback, and token handling to improve your coding life significantly (various contributors).
🛠️ Fixes
- Numerous typo fixes, improved error handling, and bug resolutions across the workflow, such as
tool can not run,HTTP method case sensitivityby @yihong0618 (#12054, #12401), and cleaning up exceptions by @acelyc111 (#12246). Your workflow should be a lot smoother now. - Improved error management in several components. This includes better handling of invalid URLs, file uploads, JSON parsing, and missing IDs, thanks to contributions from @laipz8200 (various PRs).
- Default value fixes to configurations like Google Storage and better formatting of URLs to keep Docker Compose happy, by @kazukitakamatsu and @cemremengu (#12188, #12072).
⚙️ Refactoring & Other Chores
- Code refactoring to enhance readability and maintainability like using
tiktokenfor token calculations (@laipz8200, #12416). - Cleanup of unused imports for a leaner codebase. Thanks to @bowenliang123 for lint corrections (#11922).
- A bundle of localization improvements for international users, meticulously handled by the community, including corrections to error messages and localizations (@HanqingZ, #12292).
⚡ Misc
- Added cheaper and long context models for Qwen2.5-72B-Instruct, and a variety of speech models from siliconflow, contributed by @senseb (#12415, #12425).
- Squashing bugs related to document parsing that maintained your data format integrity, addressed by @Hisir0909 (#12112).
Get ready to dive into these enhancements and see how they can supercharge your workflows and development experience. Happy coding!
Upgrade Guide
Docker compose deployments
[!WARNING]
The files in the docker-legacy directory will soon stop being maintained and will be removed from the repository. If you are still using them, please switch to the new version as soon as possible.
Back up your customized docker-compose YAML file (optional)
cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bakGet the latest code from the main branch
git checkout main git pull origin mainStop the service,Command, please execute in the docker directory
docker compose downBack up data
tar -cvf volumes-$(date +%s).tgz volumesUpgrade services
docker compose up -d
Source Code deployments
Stop API server, Worker and Web frontend Server.
Get the latest code from the release branch:
git checkout 0.15.0Update Python dependencies:
cd api poetry installThen, let's run the migration script:
poetry run flask db upgradeFinally, run API server, Worker and Web frontend Server again.
What's Changed
- fix: add FileNotFoundError to ignored errors in Sentry integration by @laipz8200 in https://github.com/langgenius/dify/pull/12023
- fix: Fix session typo in workflow_trace method by @You-keitou in https://github.com/langgenius/dify/pull/12031
- fix: fix typo by @yihong0618 in https://github.com/langgenius/dify/pull/12034
- fix: Replace generic exceptions with specific error classes in task p… by @laipz8200 in https://github.com/langgenius/dify/pull/12036
- fix/array file cannot use in iteration node by @laipz8200 in https://github.com/langgenius/dify/pull/12035
- fix: modal bg color by @YIXIAO0 in https://github.com/langgenius/dify/pull/12042
- feat: mypy for all type check by @yihong0618 in https://github.com/langgenius/dify/pull/10921
- refactor: replace div with button for better accessibility by @TinsFox in https://github.com/langgenius/dify/pull/12046
- fix: --name option for the create-tenant command does not take effect by @euxx in https://github.com/langgenius/dify/pull/11993
- fix: tool can not run by @yihong0618 in https://github.com/langgenius/dify/pull/12054
- fix: i18n error by @yihong0618 in https://github.com/langgenius/dify/pull/12052
- fix: can not find model bug by @yihong0618 in https://github.com/langgenius/dify/pull/12051
- fix: like failed close #12057 by @yihong0618 in https://github.com/langgenius/dify/pull/12058
- fix: update S3 and Azure configuration typos in .env.example and corr… by @fdb02983rhy in https://github.com/langgenius/dify/pull/12055
- fix: o1 model error, use max_completion_tokens instead of max_tokens. by @jiangbo721 in https://github.com/langgenius/dify/pull/12037
- fix: zoom in/out click by @marvin-season in https://github.com/langgenius/dify/pull/12056
- refactor: optimize database usage by @laipz8200 in https://github.com/langgenius/dify/pull/12071
- fix: unquote urls in docker-compose.yaml by @cemremengu in https://github.com/langgenius/dify/pull/12072
- fix(app_generator): improve error handling for closed file I/O operat… by @laipz8200 in https://github.com/langgenius/dify/pull/12073
- Feat/parent child retrieval by @WTW0313 in https://github.com/langgenius/dify/pull/12086
- feat(message_feedback): add content argument to feedback creation by @laipz8200 in https://github.com/langgenius/dify/pull/12077
- fix(tool): validate return type from _invoke method to ensure ToolInv… by @laipz8200 in https://github.com/langgenius/dify/pull/12079
- fix(http_request): add error handling for invalid URLs by @laipz8200 in https://github.com/langgenius/dify/pull/12082
- fix(file_factory): validate upload_file_id format as UUID by @laipz8200 in https://github.com/langgenius/dify/pull/12084
- fix(audio_service): validate message_id format using UUID by @laipz8200 in https://github.com/langgenius/dify/pull/12087
- fix(billing_service): change retry condition to handle specific reque… by @laipz8200 in https://github.com/langgenius/dify/pull/12091
- Feat/support parent child chunk by @JohnJyong in https://github.com/langgenius/dify/pull/12092
- Revert "Feat/parent child retrieval" by @laipz8200 in https://github.com/langgenius/dify/pull/12095
- fix: add type ignore comments for shared_task imports and clean up re… by @laipz8200 in https://github.com/langgenius/dify/pull/12099
- fix(workflow_service): assign UUID to workflow_node_execution id and update optional fields in WorkflowRun and WorkflowNodeExecution models by @laipz8200 in https://github.com/langgenius/dify/pull/12096
- fix: issue #12078 by redirect the right by @yihong0618 in https://github.com/langgenius/dify/pull/12088
- py lint by @JohnJyong in https://github.com/langgenius/dify/pull/12102
- fix: issue #12068 by test is answer in the ids by @yihong0618 in https://github.com/langgenius/dify/pull/12105
- feat: parent child retrieval by @WTW0313 in https://github.com/langgenius/dify/pull/12106
- fix unstructured setting by @JohnJyong in https://github.com/langgenius/dify/pull/12116
- fix: issue #11868 bring old logic back by @yihong0618 in https://github.com/langgenius/dify/pull/12100
- fix: typo in clean messages periodical task's logging by @bowenliang123 in https://github.com/langgenius/dify/pull/12090
- send knowledge base auto disable notification by @JohnJyong in https://github.com/langgenius/dify/pull/12126
- fix: add properties to retrieve created by account and end user in Wo… by @laipz8200 in https://github.com/langgenius/dify/pull/12129
- fix: update MessageService.create_feedback to use keyword arguments f… by @laipz8200 in https://github.com/langgenius/dify/pull/12134
- fix: validate imported_version type in AppDslService by @laipz8200 in https://github.com/langgenius/dify/pull/12135
- fix: enhance file upload error handling and update base error class by @laipz8200 in https://github.com/langgenius/dify/pull/12132
- fix: 12050 by @XiaoBa-Yu in https://github.com/langgenius/dify/pull/12109
- chore: translate i18n files by @github-actions in https://github.com/langgenius/dify/pull/12118
- fix: improve merge branch node ID checks in graph engine by @laipz8200 in https://github.com/langgenius/dify/pull/12128
- fix: import jieba.analyse by @laipz8200 in https://github.com/langgenius/dify/pull/12133
- Fix: The topk parameter doesn't work in sagemaker rerank tool by @ybalbert001 in https://github.com/langgenius/dify/pull/12150
- fix: handle case where member is not found in role update API by @laipz8200 in https://github.com/langgenius/dify/pull/12156
- disable all chunks status when disable document by @JohnJyong in https://github.com/langgenius/dify/pull/12149
- owner and admin have all permission of knowledge base by @JohnJyong in https://github.com/langgenius/dify/pull/12157
- Fix: avatar dropdown keyboard navigation by @douxc in https://github.com/langgenius/dify/pull/12155
- fix: workflow page throw warning: Attempts to access this ref will fail by @douxc in https://github.com/langgenius/dify/pull/12166
- fix: type is wrong issue by @yihong0618 in https://github.com/langgenius/dify/pull/12165
- fix: comfyui output image's format by @hjlarry in https://github.com/langgenius/dify/pull/12121
- chore: add cursor pointer for option card by @AkaraChen in https://github.com/langgenius/dify/pull/12119
- feat: support Ernie-lite-pro-128k by @bigfish49 in https://github.com/langgenius/dify/pull/12161
- fix: workflow_as_tool output files raise error by @hjlarry in https://github.com/langgenius/dify/pull/12061
- Modify translation for error branch and update for the parent-child f… by @HanqingZ in https://github.com/langgenius/dify/pull/12127
- [feat] Support Multi-Version Workflows by @warren830 in https://github.com/langgenius/dify/pull/11990
- [fix] modify en-US by @warren830 in https://github.com/langgenius/dify/pull/12169
- chore(lint): correct allowed-unused-imports settings for cleanup unused imports in tests by @bowenliang123 in https://github.com/langgenius/dify/pull/11922
- fix: test run custom tool raise error by @hjlarry in https://github.com/langgenius/dify/pull/12178
- fix: #12125 by @leslie2046 in https://github.com/langgenius/dify/pull/12184
- fix: rendering errors occur when displaying hit test results in full text search by @fujita-h in https://github.com/langgenius/dify/pull/12191
- fix: improve error handling in NotionExtractor data fetching by @laipz8200 in https://github.com/langgenius/dify/pull/12182
- fix: default value of google storage sa to empty by @kazukitakamatsu in https://github.com/langgenius/dify/pull/12188
- fix: update api libldap package version in Dockerfile for security im… by @BenjaminX in https://github.com/langgenius/dify/pull/12195
- feat: account delete by @GareArc in https://github.com/langgenius/dify/pull/11829
- Feat: support account deletion by @douxc in https://github.com/langgenius/dify/pull/10008
- [Fix] Fix sagemaker_chinese_toxicity_detector and bedrock_retrieve by @warren830 in https://github.com/langgenius/dify/pull/12227
- feat: support opening new tab in markdown button by @bowenliang123 in https://github.com/langgenius/dify/pull/12213
- translate comments by @warren830 in https://github.com/langgenius/dify/pull/12234
- fix: apply gevent threading patch early and ensure unique workflow node execution IDs by @laipz8200 in https://github.com/langgenius/dify/pull/12196
- fix(env): docker compose variable interpolation issue for COMPOSE_PRO… by @hanktrizz in https://github.com/langgenius/dify/pull/12093
- fix: enhance ToolEngineInvokeError to include meta information by @laipz8200 in https://github.com/langgenius/dify/pull/12238
- feat: integrate psycogreen for gevent compatibility in PostgreSQL by @laipz8200 in https://github.com/langgenius/dify/pull/12253
- feat: implement asynchronous token counting in GPT2Tokenizer by @laipz8200 in https://github.com/langgenius/dify/pull/12239
- fix: ensure workflow_run_id is always set and improve handling in Wor… by @laipz8200 in https://github.com/langgenius/dify/pull/12264
- fix: improve JSON parsing error handling in Executor class by @laipz8200 in https://github.com/langgenius/dify/pull/12265
- fix: improve error handling in NotionOAuth for block parent page ID r… by @laipz8200 in https://github.com/langgenius/dify/pull/12268
- fix: draft run single node can't get env variable by @hjlarry in https://github.com/langgenius/dify/pull/12266
- [Fix] modify sagemaker llm by @warren830 in https://github.com/langgenius/dify/pull/12274
- fix(models): use bigint on workflow_runs.total_tokens by @laipz8200 in https://github.com/langgenius/dify/pull/12279
- fix: close #12215 for yi special case by @yihong0618 in https://github.com/langgenius/dify/pull/12222
- feat: Add response format support for openai compat models by @bakjos in https://github.com/langgenius/dify/pull/12240
- fix:The chart of average interaction counts per conversation show not… by @leslie2046 in https://github.com/langgenius/dify/pull/12199
- chore: translate i18n files by @github-actions in https://github.com/langgenius/dify/pull/12208
- fix: DocumentAddByFileApi miss data_source_type field but there is a mandatory value check by @lyfuci in https://github.com/langgenius/dify/pull/12273
- refactor: simplify some exception catch code by @acelyc111 in https://github.com/langgenius/dify/pull/12246
- fix: disable gevent in debug mode for better compatibility with JetBrains Python debugger by @laipz8200 in https://github.com/langgenius/dify/pull/12299
- chore(deps): bump jinja2 from 3.1.4 to 3.1.5 in /api by @dependabot in https://github.com/langgenius/dify/pull/12300
- fix: Fix parent child retrieval issues by @WTW0313 in https://github.com/langgenius/dify/pull/12206
- chore(deps): update yarl version from 1.9.4 to 1.18.3 by @laipz8200 in https://github.com/langgenius/dify/pull/12302
- Modify jp translation by @HanqingZ in https://github.com/langgenius/dify/pull/12292
- chore(deps): bump aiohttp from 3.10.5 to 3.10.11 in /api by @dependabot in https://github.com/langgenius/dify/pull/12303
- Fix code scanning alert no. 111: Incomplete URL substring sanitization by @laipz8200 in https://github.com/langgenius/dify/pull/12305
- fix: improve content decoding in AppDslService by @laipz8200 in https://github.com/langgenius/dify/pull/12304
- fix: add full doc mode preview length limit by @WTW0313 in https://github.com/langgenius/dify/pull/12310
- fix: utcfromtimestamp is Deprecated change to new api by @yihong0618 in https://github.com/langgenius/dify/pull/12120
- fix(app.py): if condition by @laipz8200 in https://github.com/langgenius/dify/pull/12314
- refactor: replace gevent threadpool with ProcessPoolExecutor in GPT2Tokenizer by @laipz8200 in https://github.com/langgenius/dify/pull/12316
- feat:Add support for stop parameter in hunyuan model #12313 by @xander-art in https://github.com/langgenius/dify/pull/12315
- feat: Add response format support to GLM-4 by @dysodeng in https://github.com/langgenius/dify/pull/12252
- doc: Added explanation of chunk_overlap to knowledge API by @yagiyuki in https://github.com/langgenius/dify/pull/12247
- chore: change app card layout follow by #10847 by @ZuzooVn in https://github.com/langgenius/dify/pull/12317
- feat: Add filter to show only apps created by the user by @miya in https://github.com/langgenius/dify/pull/11968
- add child chunk preview number limit by @JohnJyong in https://github.com/langgenius/dify/pull/12309
- fix: #12143 support streaming mode content start with "data:" by @jifei in https://github.com/langgenius/dify/pull/12171
- chore: fix typo in zh-Hant localization by @Timmy-web in https://github.com/langgenius/dify/pull/12329
- refactor: streamline initialization of application_generate_entity and task_state in task pipeline classes by @laipz8200 in https://github.com/langgenius/dify/pull/12326
- fix: Encode Chinese characters with Unicode before querying to match the Unicode encoded Chinese characters in the db by @xhdd123321 in https://github.com/langgenius/dify/pull/12337
- fix: Update the API call address for the text_embedding model by @fchange in https://github.com/langgenius/dify/pull/12342
- fix: empty delete bug by @huangzhuo1949 in https://github.com/langgenius/dify/pull/12339
- fix: fix issue with
chat-input-areaclearing during Responding state. by @Woo0ood in https://github.com/langgenius/dify/pull/12352 - Bugfix/style and i18n fixes by @Woo0ood in https://github.com/langgenius/dify/pull/12350
- Fix the issue where
TextGenerationcomponent does not correctly clear input data. by @Woo0ood in https://github.com/langgenius/dify/pull/12351 - fix: resolve issue with the opening statement generated by the
AutomaticRescomponent failing to sync between states. by @Woo0ood in https://github.com/langgenius/dify/pull/12349 - feat: support configuration of refresh token expiration by environment variable by @euxx in https://github.com/langgenius/dify/pull/12335
- chore: chat app textarea auto focus by @xuzuodong in https://github.com/langgenius/dify/pull/12366
- feat: support config top max value by env by @iamjoel in https://github.com/langgenius/dify/pull/12375
- sandbox doesn't provide auto disable log by @JohnJyong in https://github.com/langgenius/dify/pull/12388
- [Fix] revert sagemaker llm to support model hub by @warren830 in https://github.com/langgenius/dify/pull/12378
- fix: enhance chunk list management with new invalidation keys and imp… by @WTW0313 in https://github.com/langgenius/dify/pull/12396
- fix: http method can be upper case and lower case close #11877 by @yihong0618 in https://github.com/langgenius/dify/pull/12401
- mark deprecated models in siliconflow #12399 by @senseb in https://github.com/langgenius/dify/pull/12405
- Support TTS and Speech2Text for Model Provider GPUStack by @alexcodelf in https://github.com/langgenius/dify/pull/12381
- Fixes #12414: Add cheaper model and long context model for Qwen2.5-72B-Instruct from siliconflow by @senseb in https://github.com/langgenius/dify/pull/12415
- fix: [PromptEditorHeightResizeWrap] Bug #12410 by @cnwhy in https://github.com/langgenius/dify/pull/12406
- refactor: use tiktoken for token calculation by @laipz8200 in https://github.com/langgenius/dify/pull/12416
- chore(docker/.env.example): Add TOP_K_MAX_VALUE to the
.env.example… by @laipz8200 in https://github.com/langgenius/dify/pull/12422 - add fish-speech-1.5 from siliconflow by @senseb in https://github.com/langgenius/dify/pull/12425
- fix:deepseek tool call not working correctly by @leslie2046 in https://github.com/langgenius/dify/pull/12437
- Fix newline characters in tables during document parsing by @Hisir0909 in https://github.com/langgenius/dify/pull/12112
- refactor: enhance API token validation with session locking and last used timestamp update by @laipz8200 in https://github.com/langgenius/dify/pull/12426
- chore: bump version to 0.15.0 by @laipz8200 in https://github.com/langgenius/dify/pull/12297
Full Changelog: https://github.com/langgenius/dify/compare/0.14.2...0.15.0