0.15.0
版本发布时间: 2025-01-07 18:06:48
langgenius/dify最新发布版本:1.0.0-beta.1(2025-01-09 22:47:14)
✨ 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
div
withbutton
to 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 sensitivity
by @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
tiktoken
for 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).bak
-
Get the latest code from the main branch
git checkout main git pull origin main
-
Stop the service,Command, please execute in the docker directory
docker compose down
-
Back up data
tar -cvf volumes-$(date +%s).tgz volumes
-
Upgrade 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.0
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry run flask db upgrade
-
Finally, 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-area
clearing 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
TextGeneration
component 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
AutomaticRes
component 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
New Contributors
- @You-keitou made their first contribution in https://github.com/langgenius/dify/pull/12031
- @cemremengu made their first contribution in https://github.com/langgenius/dify/pull/12072
- @XiaoBa-Yu made their first contribution in https://github.com/langgenius/dify/pull/12109
- @bigfish49 made their first contribution in https://github.com/langgenius/dify/pull/12161
- @hanktrizz made their first contribution in https://github.com/langgenius/dify/pull/12093
- @lyfuci made their first contribution in https://github.com/langgenius/dify/pull/12273
- @dysodeng made their first contribution in https://github.com/langgenius/dify/pull/12252
- @jifei made their first contribution in https://github.com/langgenius/dify/pull/12171
- @Timmy-web made their first contribution in https://github.com/langgenius/dify/pull/12329
- @huangzhuo1949 made their first contribution in https://github.com/langgenius/dify/pull/12339
- @Woo0ood made their first contribution in https://github.com/langgenius/dify/pull/12352
- @alexcodelf made their first contribution in https://github.com/langgenius/dify/pull/12381
- @cnwhy made their first contribution in https://github.com/langgenius/dify/pull/12406
Full Changelog: https://github.com/langgenius/dify/compare/0.14.2...0.15.0