Releases: langgenius/dify
v0.10.2
✨ What’s New in v0.10.2? ✨
We're back with version 0.10.2, packed with new features, crucial fixes, and improvements that will make your workflow smoother and more efficient. Let's break down what's included:
🚀 New Features
-
Markdown Buttons in Workflows: Sprinkle some buttons in your markdown for workflows to make them pop. Shout out to @crazywoola in #9876.
-
Document Extractor Node with JSON Support: You can now manage JSON types with extractor nodes for more flexible data extraction. Thanks to @Theysua in #9899.
-
Text-to-Image with Stable-Diffusion 3.5: Bring your text to life with the new Stable-Diffusion-3.5-large integration using siliconflow. Props to @hwzhuhao in #9909.
-
Vectorizer Support in Workflows: The Vectorizer tool is now at your disposal within workflows for better data manipulation—kudos to @hjlarry in #9932.
🛠️ Enhancements and Fixes
-
API Documentation Upgrade: We've polished our API documentation for advanced chat and workflow functionalities. Special thanks to @kurokobo in #9882.
-
LLM Node Streaming Output Fix: Fixed the LLM Node streaming output to properly function after IF-ELSE decisions, ensuring your workflows are on track. Thanks to @laipz8200 in #9875.
-
Workflow Code Generator Update: Cleared up the Generate button from incorrect locations for a more intuitive workflow setup. Update by @Kota-Yamaguchi in #9740.
-
Enhanced Prompt Handling in Workflows: Added vision support in prompts for more dynamic configurations. Nicely done by @laipz8200 in #9790.
-
Improved File Handling in HTTP Requests: Your HTTP requests within workflows are now more robust. Much appreciated, @laipz8200 in #9944.
-
⚠️ Fix for Tool Var Type Error: If you're using a "Number" parameter in "Workflow as Tool," please remove and re-add this tool to avoid any issues. Thanks to @iamjoel in #9937. -
Chat Log Display Fix: We've resolved the display problems for chat logs, making sure everything shows up correctly. Big thanks to @xuzuodong in #9777.
-
Vision Support for Tool Image Gen: Image generation with vision models is now supported within your workflows—credit to @hjlarry in #9871.
-
System Parameters Standardization: Our system parameters have been standardized across the board. Cheers to @laipz8200 in #9797.
-
Image Previews in DOCX: Fixed issues with previews in 'docx' knowledge bases. Thanks again to @laipz8200 in #9893.
This release is all about enhancing your workflow capabilities and providing robust tools and documentation to back them up. Keep the feedback coming and happy building! 🌟
Upgrade Guide
Docker compose deployments
-
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.10.2
-
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
- Update Code Generator to use the currently configured model. by @Kota-Yamaguchi in #9740
- fix(api): handle missing upload_file_id for tool_file messages by @laipz8200 in #9756
- feat: regenerate history switch navigation by @xuzuodong in #8749
- feat:Add host volume env variables for postgres, redis and weaviate by @jter in #9761
- fix: fe can not start by @iamjoel in #9768
- Update README_CN.md by @sunner in #9766
- fix: chat log not showing correctly by @xuzuodong in #9777
- refactor(file_factory): improve filename and mime type determination by @laipz8200 in #9784
- fix(workflow): enhance prompt handling with vision support by @laipz8200 in #9790
- remove unstructured pdf extract by @JohnJyong in #9794
- fix: chart tool can't display chinese by @hjlarry in #9686
- chore(docker): correct package version for expat and perl in Dockerfile by @laipz8200 in #9801
- openai compatiable api usage and id by @guogeer in #9800
- chore(docker): add default for MAX_VARIABLE_SIZE in docker-compose by @laipz8200 in #9798
- feat(parameters): standardize system parameter field types and values by @laipz8200 in #9797
- chore: abstract common function with local storage by @yaoice in #9811
- Added description for .ppt, specify the reason for unstructured.io by @Theysua in #9452
- chore: make doc extractor node also can extract text by file extension by @hjlarry in #9543
- Feat: use file size limit from api by @JzoNgKVO in #9739
- feat(api): add generic file size limit parameter by @laipz8200 in #9812
- refactor: update load_stream method to directly yield file chunks by @hwzhuhao in #9806
- fix: duckduckgo image search not work by @hjlarry in #9821
- feat: create_empty_dataset api add the description parameter and update api docs by @rchlz in #9824
- fix: yuque book id should be string by @crazywoola in #9819
- chore: add local storage test by @yaoice in #9827
- add tidb on qdrant type by @JohnJyong in #9831
- fix: exclude failed answer when sending messages by @xuzuodong in #9835
- fix: moonshot response_format raise error by @hjlarry in #9847
- chore: code generator button should only display in code node by @hjlarry in #9842
- Fix: add check for maximum chunk length by @JzoNgKVO in #9837
- chore: update api docs by @JzoNgKVO in #9832
- chore: translate i18n files by @github-actions in #9853
- Marking the last piece of data on each page is a duplicate issue, which can be solved by adding the id field to the order by rig and using a unique field by @yuanboao in #9799
- feat: allow answer node use chat_var and env_var by @hjlarry in #9226
- fix: segement settings of documents raise error by @hjlarry in #8971
- upgrade nltk, unstructured and starlette by @JohnJyong in #9860
- chore: add default value for redis configuration by @hwzhuhao in #9864
- feat: support comfyui workflow tool image generate image by @hjlarry in #9871
- feat: support button in markdown by @crazywoola in #9876
- fix: wrong element object by @virgosoy in #9868
- fix(workflow): Take back LLM streaming output after IF-ELSE by @laipz8200 in #9875
- fix users had already joined a workspace, but the system still first … by @G81192 in #9834
- docs: improve api documentation for advanced chat and workflow by @kurokobo in #9882
- Update README.md by @leilei-jiang in #9886
- Update README.md by @leilei-jiang in #9889
- Update README.md by @leilei-jiang in #9890
- Update README.md by @leilei-jiang in #9891
- fix(api): add signature generation for image previews by @laipz8200 in #9893
- feat(workflow): Support JSON type in document extractor node by @Theysua in #9899
- chore: Extract common functions of the base model in Azure OpenAI Provider by @yaoice in #9907
- fix(tools): remove the undefined variable parameter_type by @hwzhuhao in #9908
- feat: add stable-diffusion-3-5-large for the text-to-image tool with siliconflow by @hwzhuhao in #9909
- fix: enterprise create workspace by @ZhouhaoJiang in #9921
- add document lock for multi-thread by @JohnJyong in #9873
- Remove invalid languages error by @seikyo-cho-lvgs in #9928
- fix: t...
v0.10.1
🚀 What’s New in v0.10.1? 🚀
Welcome to version v0.10.1, where we've made significant strides in expanding functionalities and enhancing user workflows. Here's a quick look at the highlights of this release:
🔹 Claude 3.5 Sonnet v2 Models
Experience advanced language processing across Google Cloud, Bedrock, and Anthropic platforms, seamlessly integrated with the latest technology advancements via #9688, #9685, and #9708.
✨ Code Generator
Empower your Workflow's Code Node with our new Code Generator tool. This feature is designed to streamline coding processes within workflows, boosting development efficiency and reducing manual coding efforts. Check it out in #9051.
🐛 Bug Fixes
-
Custom Icon Restoration: We've reintroduced the flexibility and personalization of custom icons, addressing previous issues to ensure your icons display correctly, as implemented by @zxhlyh in #9654.
-
HTTP Node Improvements: Enhanced JSON handling and simplified request management to boost the stability and security of the HTTP Node by @laipz8200 in #9616, and fixed the handling of empty and string data inputs for consistent performance by @laipz8200 in #9579.
-
File Upload Corrections: Resolved multiple issues affecting file uploads for smoother operations. Image config uploads were corrected by @laipz8200 in #9568.
-
Improved Iteration Handling: Made iterators more robust by gracefully handling empty scenarios, as addressed by @laipz8200 in #9565.
-
VisionConfig Validation: Introduced a validator for
VisionConfig
entities to handleNone
values properly, improving data integrity by @laipz8200 in #9598. -
Workflow Management: Improved workflow and database session management to resolve instabilities and enhance reliability by @laipz8200 in #9581.
-
If-Else Node Enhancement: Enhanced if-else nodes to properly add downstream nodes, ensuring logical consistency in workflow paths by @linfey90 in #9640.
-
Used File in Tools: Addressed errors caused by file operations in tools to ensure smoother functionality by @iamjoel in #9660.
-
Environment Variables: Fixed environmental variable issues for ModelProvider and Tool Position to ensure they operate as intended. Resolved by @tkoshida in #9650.
-
Web App UX: Corrected the style of the features panel specifically in Safari to enhance the overall visual experience by @JzoNgKVO in #9573 and addressed the email login redirect issue and corrected navigation behaviors to improve user experience by @ZhouhaoJiang in #9698.
This update is packed with critical fixes, new features, and exciting enhancements to empower your AI applications. Dive into v0.10.1 and experience these improvements firsthand!
Upgrade Guide
Docker compose deployments
-
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.10.1
-
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
- Build/fix wrong icon name by @AkaraChen in #9527
- enhance: use urllib join instead of fstring by @41tair in #9549
- feat: Update tongyi models by @AAEE86 in #9552
- chore: lint code to remove unused imports and variables by @DDDDD12138 in #9553
- chore: format get_customizable_model_schema return value by @yaoice in #9335
- fix(upload): correct incorrect dictionary key usage by @laipz8200 in #9563
- Fix: file upload support extension .md by @JzoNgKVO in #9564
- fix(iteration): handle empty iterator gracefully by @laipz8200 in #9565
- fix(file upload): correct upload method key for image config by @laipz8200 in #9568
- Fix: style of features panel in safari by @JzoNgKVO in #9573
- dep: bump pydantic to 2.9 by @bowenliang123 in #9077
- fix(validation): improve variable handling and validation by @laipz8200 in #9578
- fix(http_request): handle empty and string data inputs by @laipz8200 in #9579
- fix(workflow): improve database session handling and variable management by @laipz8200 in #9581
- fix(workflow): handle NoneSegments in variable extraction by @laipz8200 in #9585
- refactor(template_transform): use keyword-only arguments by @laipz8200 in #9575
- refactor: add logging extension module for log initialization by @hwzhuhao in #9524
- chore: cleanup ineffective linter rules exclusions by @bowenliang123 in #9580
- fix(entities): add validator for
VisionConfig
to handle None values by @laipz8200 in #9598 - refactor(variables): replace deprecated 'get_any' with 'get' method by @laipz8200 in #9584
- refactor: use dify_config to replace legacy usage of flask app's config by @bowenliang123 in #9089
- chore: (#9089 followup) fix storage factory constructor by @bowenliang123 in #9609
- fix(core): use CreatedByRole enum for role consistency by @laipz8200 in #9607
- fix(storage): use centralized config management by @laipz8200 in #9620
- fix(storage): ensure
storage_runner
initialization within app context by @laipz8200 in #9627 - fix: wrong url of guides doc in new feature panel by @hanfangyuan4396 in #9626
- Fix: doc link of legacy features by @JzoNgKVO in #9634
- fix: update the default model to gpt-4o-mini for duckduckgo ai chat by @hwzhuhao in #9614
- fix(http_request): simplify JSON handling in requests by @laipz8200 in #9616
- fix: fields.Nested(message_file_fields) by @crazywoola in #9632
- fix(api): enhance file factory URL handling by @laipz8200 in #9631
- fix: remove url join by @ZhouhaoJiang in #9635
- fix: file type document is not supported by @hjlarry in #9618
- refactor(api): simplify limit retrieval and return types by @laipz8200 in #9641
- fix(files): update Content-Length handling for tool and remote files by @laipz8200 in #9649
- fix(segments): return empty string instead of "null" for text, log, and markdown properties by @laipz8200 in #9651
- Fix: type missing of remote file in chat by @JzoNgKVO in #9652
- fix: webapp answer icon by @zxhlyh in #9654
- fix: tool use file caused error by @iamjoel in #9660
- Fix/retrieval setting weight default value by @zxhlyh in #9622
- fix: environment variables for ModelProvider and Tool Position are not working by @tkoshida in #9650
- Web app support sending message using numpad enter by @xuzuodong in #9659
- feat(Tools): Refactor the base table plugin by @hgnulb in #9182
- chore(models): convert created_by_role to its value for consistency by @laipz8200 in #9612
- feat: add code generator by @Kota-Yamaguchi in #9051
- fix: add downstream nodes of this branch by @linfey90 in #9640
- feat: add upstash as a new vector...
v0.10.0
Important
If you have a Basic Chatbot or Text Generator App with the ‘Vision’ feature enabled, it will be necessary to republish the application following this update.
🎉 What's New in v0.10.0? 🎉
Hello to all the innovators out there! We're excited to unveil v0.10.0, a powerhouse update designed to enhance your flexibility and efficiency. Let’s delve into the highlights:
🌟 Enhanced Multi-Modal Support
This central feature boosts your workflows and chatflows with greater flexibility:
-
Advanced File Handling: Nodes like START, LLM, HTTP Request and IF-ELSE now seamlessly manage "File" types, simplifying the processing of various file formats within your workflows.
-
New Functional Nodes:
- Document Extractor: Converts documents into text effortlessly, making data extraction straightforward.
- List Operator: Empowers you with operations to filter, sort, and limit arrays, enhancing data control and manipulation.
-
Efficient Array Handling: Directly use
array[string]
andarray[number]
in LLM prompts for more agile data interactions.
Thanks to the tireless efforts of @zxhlyh in #9526 and @laipz8200 in #8818, this feature marks a significant leap forward.
Read more: Introducing Dify Workflow File Upload: A Demo on AI Podcast
✉️ Registry and Login with Email
Simplifying user access with:
- Email Registration & Login: Offers a secure, straightforward access method for users, optimizing the onboarding process. Shoutout to @douxc in #8119 and @ZhouhaoJiang in #8120.
🚀 Additional Features
- Dataset Recall Testing API: Gain insights into data retrieval efficiency with this new API, brought to you by @gubinjie in #9300.
- Fireworks Model Integration: Access Qwen2.5 72B Instruct models for expanded AI capability, thanks to @yaoice in #9333 and #9340.
🛠️ Enhancements
- Storybook Component Testing: Streamlined UI testing and visualization, expertly structured by @xuzuodong in #9324.
- Timezone Conversion Enhancements: Enhanced precision and usability with support in the Time Tool, thanks to @hwzhuhao in #9393.
🔧 Fixes
- Azure OpenAI Fixes: Resolved key issues with max token calculations for improved performance, managed by @somethingwentwell in #9326.
- Endpoint Functionality Fixes: Strengthened the stability of the db-pool-stat endpoint, addressed by @hwzhuhao in #9478.
v0.10.0 brings a wealth of innovations to simplify and elevate your workflow capabilities. Dive in and explore these enhancements to harness the full potential of AI-driven tasks. Your feedback is pivotal, so keep it coming. Happy building! 🚀
Upgrade Guide
Docker compose deployments
-
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.10.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
- feat: added dataset recall testing API by @gubinjie in #9300
- feat: disable chat service API passing
parent_message_id
by @xuzuodong in #8984 - fix: poetry installation in CI jobs by @bowenliang123 in #9336
- feat: Add fireworks custom llm intergration by @yaoice in #9333
- feat: Add qwen2.5 72B Instruct model in Fireworks AI by @yaoice in #9340
- chore: clean-up unnecessary annotation on configs with non-null default value by @bowenliang123 in #9323
- refactor: remove unnecessary 'closing' usage for boto3 client by @y-omr in #9343
- Adapt input type parameter with MiniMax embedding model by @yaoice in #9342
- refactor: Add an enumeration type and use the factory pattern to obtain the corresponding class by @hwzhuhao in #9356
- fix: In the output, the order of 'ta' is sometimes reversed as 'at'. #8015 by @wsbao in #8791
- fix: Azure OpenAI o1 max_completion_token and get_num_token_from_messages error by @somethingwentwell in #9326
- feat: add glm-4-flashx, deprecated chatglm_turbo by @hjlarry in #9357
- fix: (#9336 followup) skip poetry preperation in style workflow when no change in api folder by @bowenliang123 in #9362
- feat: add minimax abab6.5t support by @cuckootan in #9365
- fix: add missing vikingdb param in docker .env.example by @yaoice in #9334
- fix: remove the stream option of zhipu and gemini by @hjlarry in #9319
- feat: Enable baiduvector intergration test by @yaoice in #9369
- fix: use gpt-4o-mini for validating credentials by @crazywoola in #9387
- feat: storybook by @xuzuodong in #9324
- fix: Deprecated gemma2-9b model in Fireworks AI Provider by @yaoice in #9373
- feat: add timezone conversion for time tool by @hwzhuhao in #9393
- Fix/economical knowledge retrieval by @JohnJyong in #9396
- fix: incorrect webapp image displayed by @yuyinws in #9401
- refactor: update the default values of top-k parameter in vdb to be consistent by @hwzhuhao in #9367
- fix: resolve overlap issue with API Extension selector and modal by @DDDDD12138 in #9407
- add clean 7 days datasets by @JohnJyong in #9424
- update dataset clean rule by @JohnJyong in #9426
- fix #9409 by @ybalbert001 in #9433
- Update dify-sandbox version to 0.2.10 by @hexian2001 in #9439
- Fix: rerank switch and validation before run by @YIXIAO0 in #9416
- revert yarnlock by @zxhlyh in #9445
- fix: enable Tencent Cloud Vector integration test by @yaoice in #9441
- Fix/firefox overflow error by @WTW0313 in #9438
- feat: add the workflow tool of comfyUI by @hjlarry in #9447
- fix: remove the undefined variable line by @hwzhuhao in #9446
- fix(workflow): Implement automatic variable addition from opening statement to start node by @Kevin9703 in #9450
- refactor: move the embedding to the rag module and abstract the rerank runner for extension by @hwzhuhao in #9423
- feat:add wenxin rerank by @chzphoenix in #9431
- feat: add yi-lightning llm model for yi by @hwzhuhao in #9458
- fix: add missing vector type to migrate command by @yaoice in #9470
- fix: update mismatch vector type by @yaoice in #9462
- feat: add parameter top-k for the llm model provided by openrouter and siliconflow by @hwzhuhao in #9455
- controller test by @s2oBCN in #9469
- fix fetch apps by @horochx in #9453
- fix: resolve the error with the db-pool-stat endpoint by @hwzhuhao in #9478
- feat: add yi custom llm intergration by @hwzhuhao in #9482
- Added Llama 3.2 Vision Models Speech2Text Models for Groq by @taowang1993 in #9479
- add yuqye(https://www.yuque.com)tools by @lichengwu in #8960
- feat: Add volcengine tos storage test by @yaoice in #9495
- chore: update the description for storage_type by @userzhangqg in #9492
- refine wording in license by @guchenhe in #9505
- fix: resolve the error of docker-compose startup when the storage is baidu-obs by @hwzhuhao in #9502
- Resolve 9508 openai compatible rerank by @ziyu4huang in #9511
- feat: Add custom usern...
v0.10.0-beta3
✨ What’s New in v0.10.0-beta3? ✨
Important
This version is for preview only. Please avoid using it in production environments!
Note
Your feedback is incredibly valuable to us! We encourage you to share your thoughts and discuss any issues using the GitHub Discussions feature. You can find the entry point for Discussions at the bottom of the release page.
🚀 Major Updates
- Enhanced Prompt Editor for LLM Node: You can now utilize
Array<String>
andArray<Number>
types within the Prompt editor. This improvement aims to enhance the flexibility and usability of prompt design. - New Podcast Generator Tool: We’ve added a tool to demonstrate file generation within the platform. This feature allows you to explore how content like podcasts can be created through automated workflows.
🛠️ Bug Fixes
- We’ve addressed several bugs reported by the community. Thank you for your contributions!
Quick Start
To upgrade to this version, follow these steps:
- Clone and enter our repository:
git clone https://github.com/langgenius/dify.git && cd dify
- Switch to the beta branch:
git checkout 0.10.0-beta3
- Then follow the Deploy with Docker Compose > Starting Dify.
We hope you find the new features and fixes useful. As always, your feedback and contributions are welcome to help improve Dify!
v0.9.2
✨ What’s New in v0.9.2? ✨
The most recent release brings some solid new features, enhancements, and bug fixes that should enhance your experience across the platform. Check out what's changed:
🚀 New Features
-
Model Additions and Enhancements: Added models
qwen2.5-72b
andllama3.2
for OpenRouter by @hwzhuhao in #8956. Also,O1-mini
,O1-preview
, andLlamaGuard
models have joined the lineup thanks to contributions from @charli117 and @crazywoola. -
Workflow System Parameters: Now, you can access
sys.app_id
,sys.workflow_id
, andsys.workflow_run_id
in your workflow system variables for more dynamic workflows, courtesy of @ZhouhaoJiang in #9108. -
Image Generation Enhancements: The StepFun image generation tool got a boost, enabling richer and broader capabilities, spearheaded by @hwzhuhao in #8954.
-
Tools Update: Discord Incoming Webhook now lets you send messages directly, created by @yaoice. Props to @hwzhuhao for adding tags for Vanna tools too.
-
Vector Provider: Meet the new kid on the block, Volcengine VikingDB, integrated into the system and ready to expand your vector capabilities, brought to you by @yaoice in #9287.
-
CSP Support: Content Security Policy (CSP) is now supported, adding an extra layer of security to your operations, thanks to @douxc.
-
Supabase Object Storage: A new storage option at your disposal, big cheers to @hwzhuhao for the integration in #9229.
⚙️ Enhancements
-
Richer Time Tool Functions: Now you can convert and retrieve timestamps with the Time Tool, unlocking more precise temporal operations courtesy of @hwzhuhao.
-
Non-Root User for Web Container: Security gets a bump with the use of a non-root user in the web container, hats off to @s2oBCN for that.
-
Prompt Editor Optimization: Clearer and more efficient prompt editing with reset capabilities, devised by @HiChen404.
-
Customizeable Chatbot Embed: Change the size to fit your needs with default values set for your convenience—well done, @alterxyz for this addition.
-
Responsive Front-end Updates: With rerank model verification and error logs only in debug mode, your interface just became more practical and informative. Thanks, @YIXIAO0 and @hwzhuhao.
🛠️ Bug Fixes
-
API and Logs: Chat API now reliably retrieves conversation history (thanks @xuzuodong), and fixes have been applied to API proxy updates and missing model information in LLM spans.
-
Tool Descriptions: Essential descriptions are back where they belong—visible and complete, thanks to @crazywoola.
-
External Knowledge and Retrievals: Addressing issues in agent retrieval and entry allows external knowledge operation to run smoother, thanks to @JohnJyong.
-
Miscellaneous Fixes: Including max-token adjustments in OpenRouter by @infinitnet, correct session history fetching, stopping notification errors, and many more have tightened up the system, courtesy of multiple contributors.
Miscellaneous
- Typos and Documentation: Corrected typos and added documentation on key integrations like Google Cloud Terraform, thanks to the hawk-eyed @y-omr and @sotazum.
This version packs plenty to explore, ensuring your workflows and integrations are smoother, faster, and richer with features. Happy upgrading!
Upgrade Guide
Warning
This version includes a migration that might update a large volume of messages. If you have a significant amount of message data, please review our changes in #9132 before upgrading.
Docker compose deployments
-
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.9.2
-
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
- chore: add missing models from Voyage by @CXwudi in #8950
- chore: sort Gemini models by @CXwudi in #8951
- refactor: remove unnecessary comment by @y-omr in #8949
- chore: remove unexecuted scripts to avoid ambiguity by @yaoice in #8946
- feat: add qwen2.5-72b and llama3.2 for openrouter by @hwzhuhao in #8956
- feat: enhance stepfun image generation tool by @hwzhuhao in #8954
- fix: chat API is not bringing the conversation/session history by @xuzuodong in #8965
- fix: corrected typo by @y-omr in #8979
- feat(Tools): add discord incoming webhook for sending messages by @yaoice in #7852
- Update json_in_md_parser.py by @zhao85 in #8983
- feat: Update AWS Bedrock supported regions by @Retr0-01 in #8992
- fix: tools description is missing by @crazywoola in #8999
- fix: failed to open links to images generated by QR code tool when using Huawei OBS by @hwzhuhao in #9034
- fix bug when adding openai or openai-compatible stt model instance by @zhao85 in #9006
- chore: fix the yanked dependency vesion aiohappyeyeballs 2.4.2 by @bowenliang123 in #9020
- refactor: remove the duplicate definitions across different modules by @hwzhuhao in #9022
- feat: add baidu obs storage by @hwzhuhao in #9024
- fix: Missing model information in llm span of Langfuse #9029 by @aiscrm in #9030
- fix:ddg ratelimit 202 by @leslie2046 in #9047
- chore: move testing env variables from pyproject.toml to pytest.ini by @bowenliang123 in #9019
- feat: Improvement- use non root user for Web container by @s2oBCN in #8928
- chore: removing unused imports in tests by @bowenliang123 in #9049
- fix: Ignore the error toast notification if the status is 401 and isPublicAPI is true by @douxc in #9062
- chore: refine python dependency list and check dependencies in order by @bowenliang123 in #9061
- fix: zhipu ai web_search not work by @hjlarry in #9058
- docs: Add Google Cloud Terraform to README by @sotazum in #9065
- Correct max_tokens for OpenRouter Sonnet 3.5 by @infinitnet in #9068
- fix: Count exception occurs when searching conversations by @Gaocarri in #8754
- feat: update the xinf tool's API key to optional by @hwzhuhao in #9073
- fix: #8969 by @Blackman99 in #9076
- feat: add timestamp conversion and timestamp retrieval for time tool by @hwzhuhao in #9085
- Feat/9081 add support for llamaguard through groq provider by @crazywoola in #9083
- fix: prompt-editor regex.lastIndex needed to reset by @HiChen404 in #9097
- fix s3 presign url check problem, support two versions(v2,v4) by @ybalbert001 in #9093
- refactor: Update countries & languages list for SearchApi engines by @SebastjanPrachovskij in #9090
- chore: add the missing tool names to the _position file by @hwzhuhao in #9099
- feat: add tags for vanna tools by @hwzhuhao in #9102
- feat: output the execution results of tool should only in debug mode by @hwzhuhao in #9104
- refactor: introduce storage factory and speed up api startup by importing storage client on demand by @bowenliang123 in #9086
- chore: avoid implicit optional in type annotations of method by @bowenliang123 in #8727
- feat: respect x-* headers for redirections by @kurokobo in #9054
- azure add o1-mini、o1-preview models by @charli117 in #9088
- Add customizable size for chatbot embed with default values by @alterxyz in #9115
- Fix the margin for the rerank switch in retrieval setting by @YIXIAO0 in #9124
- add generate conversation name error log by @pinsily in #9117
- fix: follow-up (suggested questions) does not refer to the most recen… by @xuzuodong ...
v0.9.1-fix1
✨ What’s New in v0.9.1-fix1? ✨
Hey everyone, we’ve got some fresh updates with the release of version 0.9.1-fix1. Here’s a quick walkthrough of what’s changed:
Important
This version includes a migration that might update a large volume of messages. If you have a significant amount of message data, please review our changes in #9132 before upgrading.
🛠️ Fixes & Improvements
- Resolved an issue with the chat API where the conversation/session history wasn't being loaded properly by @xuzuodong in #8965.
🚀 Models
- Added missing models from the Voyage collection by @CXwudi in #8950.
- Sorted Gemini models for better organization by @CXwudi in #8951.
- Introduced
qwen2.5-72b
andllama3.2
models for OpenRouter by @hwzhuhao in #8956.
This release is all about laying solid groundwork and enhancing the features you already love. Dive in and let us know what you think!
Upgrade Guide
Docker compose deployments
Warning
The docker-compose.yaml
has been refactored. If you've made any changes to the file, make sure to check out the "Upgrade to new docker compose deployment" section above for usage and migration tips.
-
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 0.9.1-fix1 branch
git checkout 0.9.1-fix1 git pull origin 0.9.1-fix1
-
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 0.9.1-fix1 branch:
git checkout 0.9.1-fix1 git pull origin 0.9.1-fix1
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry shell flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- chore: add missing models from Voyage by @CXwudi in #8950
- chore: sort Gemini models by @CXwudi in #8951
- refactor: remove unnecessary comment by @y-omr in #8949
- chore: remove unexecuted scripts to avoid ambiguity by @yaoice in #8946
- feat: add qwen2.5-72b and llama3.2 for openrouter by @hwzhuhao in #8956
- feat: enhance stepfun image generation tool by @hwzhuhao in #8954
- fix: chat API is not bringing the conversation/session history by @xuzuodong in #8965
- fix: corrected typo by @y-omr in #8979
- feat(Tools): add discord incoming webhook for sending messages by @yaoice in #7852
- Update json_in_md_parser.py by @zhao85 in #8983
- feat: Update AWS Bedrock supported regions by @Retr0-01 in #8992
- fix: tools description is missing by @crazywoola in #8999
- fix: failed to open links to images generated by QR code tool when using Huawei OBS by @hwzhuhao in #9034
- fix bug when adding openai or openai-compatible stt model instance by @zhao85 in #9006
- chore: fix the yanked dependency vesion aiohappyeyeballs 2.4.2 by @bowenliang123 in #9020
- refactor: remove the duplicate definitions across different modules by @hwzhuhao in #9022
- feat: add baidu obs storage by @hwzhuhao in #9024
- fix: Missing model information in llm span of Langfuse #9029 by @aiscrm in #9030
- fix:ddg ratelimit 202 by @leslie2046 in #9047
New Contributors
- @zhao85 made their first contribution in #8983
- @Retr0-01 made their first contribution in #8992
- @aiscrm made their first contribution in #9030
Full Changelog: 0.9.1...0.9.2
v0.10.0-beta2
✨ What’s New in v0.10.0-beta2? ✨
Important
This version is for preview only, do not use in production!
Note
We highly value your feedback! Please feel free to share your thoughts and discuss any issues using the GitHub Discussions feature. You can find the entry point for Discussions at the bottom of the release page.
🛠️ Bug Fixes
- Docker Startup Issue: Resolved an issue where Dify 0.10.0-beta1 could not be started using Docker.
Quick Start
To upgrade to this version, follow these steps:
-
Clone the repository using the following command:
git clone https://github.com/langgenius/dify.git
-
Switch to the beta branch:
git checkout 0.10.0-beta2
-
Then follow the Deploy with Docker Compose > Starting Dify.
We hope you find the new file processing capabilities and nodes useful in this release. Your feedback and contributions are always appreciated to help us improve Dify!
v0.10.0-beta1
✨ What’s New in v0.10.0-beta1?✨
Important
This version is for preview only, do not use in production!
Note
We highly value your feedback! Please feel free to share your thoughts and discuss new features using the GitHub Discussions feature. You can find the entry point for Discussions at the bottom of the release page.
We are pleased to offer Dify 0.10.0-beta1 for early access. This release includes support for file processing in Workflows and Chatflow, allowing users to utilize File
and Array<File>
variable types and pass these variables through multiple nodes.
🚀 Key Features
-
File Processing in Workflows: Added support for
File
andArray<File>
variable types, allowing seamless handling and transfer of files across various nodes in a workflow. This capability significantly expands the range of tasks you can automate with Dify. -
Document Extractor Node: Introducing the new Document Extractor node, which serves as a case example for file usage. This node is designed to parse various types of documents into text, facilitating text extraction from different file formats for further processing.
-
List Filter Node: To make it easier for users to work with
Array
variables, the List Filter node has been added. This node allows you to filter, sort, and slice arrays based on specific conditions, offering enhanced control over array-type data within your workflows.
🎨 UI and UX Updates
We have also introduced some UI and UX improvements to make Dify more modern and user-friendly.
Quick Start
To upgrade to this version, follow these steps:
-
Clone the repository using the following command:
git clone https://github.com/langgenius/dify.git
-
Switch to the beta branch:
git checkout 0.10.0-beta1
-
Then follow the Deploy with Docker Compose > Starting Dify.
We hope you find the new file processing capabilities and nodes useful in this release. Your feedback and contributions are always appreciated to help us improve Dify!
v0.9.1
✨ What’s New in v0.9.1? ✨
We've shipped version 0.9.1 and it’s all about tightening up those loose ends. Let’s dive into what’s been improved:
🚀 Updates & Fixes
-
Dataset Updates Refined: We've streamlined the process for updating original datasets by removing unnecessary parameters. Kudos to @JohnJyong for ironing this out in #8935 and #8939. Less clutter, smoother update experience.
-
Web Page Import via Jina: If you've hit a snag with importing web pages using Jina, the fix is now in place. Thanks to @douxc, those pesky errors should be a thing of the past in #8937.
-
Internal Dataset Request Params: Adjustments have been made to correct request parameters for internal datasets, ensuring your data requests play nice. Thanks, @YIXIAO0, for handling this in #8940.
-
Knowledge Node Retrieval: We’ve eliminated instances of multiple retrieval in the knowledge node to optimize performance and efficiency. A big shout-out to @JohnJyong again for this fix in #8942.
This version is all about refinement and stability, ensuring that the gears behind the scenes are turning smoothly. Until next time, keep building and innovating!
Upgrade Guide
Docker compose deployments
Warning
The docker-compose.yaml
has been refactored. If you've made any changes to the file, make sure to check out the "Upgrade to new docker compose deployment" section above for usage and migration tips.
-
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 main branch:
git checkout 0.9.1 git pull origin 0.9.1
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry shell flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- original dataset update issue by @JohnJyong in #8935
- fix: Fix the error when importing web pages using jina by @douxc in #8937
- original dataset update remove unuseful parameters by @JohnJyong in #8939
- fix: request params for internal dataset by @YIXIAO0 in #8940
- chore(version): bump to 0.9.1 by @laipz8200 in #8938
- fix multiple retrieval in knowledge node by @JohnJyong in #8942
Full Changelog: 0.9.0...0.9.1
v0.9.0
✨ What’s New in v0.9.0? ✨
Get ready for a feature-packed update! Version 0.9.0 brings major enhancements, new integrations, and crucial fixes. Let’s dive into the details:
🚀 New Features
🔄 Retrieval-Augmented Generation (RAG)
External Knowledge API: Now you can connect to third-party knowledge bases seamlessly (introduced by @JohnJyong in #8913).
- Simply provide the API endpoint, API key, and external knowledge ID to link with the external knowledge base.
- Supports retrieval and recall of external knowledge based on user queries.
- Enables integration of external knowledge bases within Dify applications.
Website Crawling: Now supports Jina Reader as additional alternative for website crawling, converting web page URL to LLM-friendly input format. Read Sync Data from Website for details. (@mapleeit in #8761).
🧠 Models
- Voyage AI: A new model provider added (thanks to @hwzhuhao in #8747).
- Llama3.2: Now available with Fireworks and Groq providers for improved performance and variety (@yaoice in #8809 and @Howe829 in #8831).
- Introduced InternLM 2.5-20b and Qwen 2.5-coder-7b (@hwzhuhao in #8862).
- Jamba: Another new model to expand our capabilities (@longzhihun in #8878).
- New Nomic embedding model provider introduced (@yaoice in #8640).
- Support for o1 series models for OpenRouter (@sinomoe in #8358).
- DeepSeek-v2.5 added as a model provider for SiliconFlow (@hwzhuhao in #8639).
- Stream for Gemini now available (@AAEE86 in #8678).
- Vertex AI Gemini 1.5 002 and experimental models are now supported (@hellof20 in #8767).
🛠️ Other Updates
- Xinference TTS Stream Mode: Now live for a smoother text-to-speech experience (@leslie2046 in #8616).
- Regenerate in
Chat
,Agent
, andChatflow
applications (@xuzuodong in #7661).
⚙️ Enhancements
- Improved SVG output UX for a more seamless design experience (@xuzuodong in #8765).
- Extended Jina Embeddings V3 API parameters (@DresAaron in #8657).
- Deprecated older Mistral models for SiliconFlow to streamline performance (@hwzhuhao in #8828).
- Added Min-connections and Max-connections settings for pgvector (@hwzhuhao in #8841).
- Error Handling Enhancements: Improved iteration filters and error logging for optimal performance (@hwzhuhao in #8461).
- Enhanced operational flexibility with fully configurable WORKFLOW_ environment variables* (@fujita-h in #8644).
- Upgraded ElasticSearch from 8.14.x to 8.15.x to keep our infrastructure up-to-date (@bowenliang123 in #8197).
🛠️ Bug Fixes
- Fixed "Max submit count reached" error during workflow iterations (@takatost in #8595).
- Corrected a linking error in help documents (@hjlarry in #8508).
- iOS TTS Stream: Now fully functional on Safari 17.1+ (@likenamehaojie in #8645).
- Resolved JSONDecodeError in llm_generator.py (@ZuzooVn in #8504).
- Fixed errors when sending messages within chatflow and dialogs (@xuzuodong in #8627 and #8682).
- Corrected Spark's LLM token calculation error for accurate token usage (@cherryhuahua in #8755).
- Resolved embedded chat issues on iOS (@zxhlyh in #8718).
📚 Documentation & Misc
- Enhanced documentation to clarify the importance of Celery Service (@fchange in #8558).
- Updated configurations in docker-compose files and related docs (@saifeiLee and others in #8516 and #8691).
- Added English versions for customizable model scale documentation to broaden accessibility (@hwzhuhao in #8871).
With this release, we’re truly showcasing the power of Dify! We appreciate your continued support—explore the new features and share your feedback with us!
Upgrade Guide
Docker compose deployments
Warning
The docker-compose.yaml
has been refactored. If you've made any changes to the file, make sure to check out the "Upgrade to new docker compose deployment" section above for usage and migration tips.
-
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 main branch:
git checkout 0.9.0 git pull origin 0.9.0
-
Update Python dependencies:
cd api poetry install
-
Then, let's run the migration script:
poetry shell flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- fix(workflow): "Max submit count reached" error occurred when executing workflow as tool in iteration by @takatost in #8595
- fix: a helper link error by @hjlarry in #8508
- chore: translate i18n files by @github-actions in #8557
- Enhance Readme Documentation to Clarify the Importance of Celery Service by @fchange in #8558
- docs: Update ssrf_proxy related doc link in docker-compose file by @saifeiLee in #8516
- Update the PerfXCloud provider model list,Update PerfXCloudProvider validate_provider_credentials method. by @BingGeX in #8587
- add MixtralAI Model by @AAEE86 in #8517
- fix: api/core/ops/ops_trace_manager.py by @ZuzooVn in #8501
- add Qwen custom add model interface by @AAEE86 in #8565
- refactor(ops): Optimize the iteration for filter_none_values and use logging.error to record logs when an exception occurs by @hwzhuhao in #8461
- feat: update pyproject.toml by @ZhouhaoJiang in #8368
- feat: regenerate in
Chat
,agent
andChatflow
app by @xuzuodong in #7661 - docs: Add Japanese documentation for tools by @totsukash in #8469
- feat:use xinference tts stream mode by @leslie2046 in #8616
- Add Fireworks AI as new model provider by @yaoice in #8428
- feat(tools/cogview): Updated cogview tool to support cogview-3 and the latest cogview-3-plus by @ox01024 in #8382
- Add model parameter translation by @AAEE86 in #8509
- fix: form input add tabIndex by @LLmoskk in #8478
- feat: support o1 series models for openrouter by @sinomoe in #8358
- chore: add Gemini newest experimental models (close #7121) by @CXwudi in #8621
- chore: enhance configuration descriptions by @ZuzooVn in #8624
- fix: redundant check for available_document_count by @y-omr in #8491
- fix: commands.py by @ZuzooVn in #8483
- fix: llm_generator.py JSONDecodeError by @ZuzooVn in #8504
- fix: send message error when chatting with opening statement by @xuzuodong in #8627
- feat: add qwen2.5 for model provider siliconflow by @hwzhuhao in #8630
- docs: fix predefined_model_scale_out.md redirect error by @hwzhuhao in #8633
- feat: add deepseek-v2.5 for model provider siliconflow by @hwzhuhao in #8639
- Make WORKFLOW_* configurable as environment variables. by @fujita-h in #8644
- chore: Enable Japanese descriptions for Tools by @totsukash in #8646
- feat: extend api params for Jina Embeddings V3 by @DresAaron in #8657
- fix: Assignment exception by @haike-1213 in #8663
- chore: skip PLR6201 linter rule by @bowenliang123 in #8666
- fix: png avatar upload as jpeg by @hjlarry in #8665
- add Qwen model translate by @AAEE86 in #8674
- add zhipuai web search by @AAEE86 in #8668
- add Spark Max-32K by @AAEE86 in #8676
- chore: Optimize I18nObject class for better performance and readability by @ZuzooVn in #8681
- fix: send message error when last sent message not succeeded by @xuzuodong in #8682
- fixbug tts(stream) not work on ios safari(17.1...