Dify 0.9.0stable Released Sep 30, 2024
Impact Score: 5/10

Dify: v0.9.0

Source available — automated, not human-reviewed

Component: dify · Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified — check source notes
📄 .MD
⚡ Executive Summary (TL;DR)

Dify 0.9.0. Source highlight: ✨ What’s New in v0.9.0? ✨

Who Does This Impact? (Role-Based Analysis)

💻 Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

📊 Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

⚙️ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

✨ New Features & Capabilities (6)

  • **Voyage AI**: A new model provider added (thanks to @hwzhuhao in #8747).
  • Introduced **InternLM 2.5-20b** and **Qwen 2.5-coder-7b** (@hwzhuhao in #8862).
  • New **Nomic embedding model provider** introduced (@yaoice in #8640).
  • **DeepSeek-v2.5** added as a model provider for SiliconFlow (@hwzhuhao in #8639).
  • Added **Min-connections and Max-connections** settings for pgvector (@hwzhuhao in #8841).
  • Added English versions for customizable model scale documentation to broaden accessibility (@hwzhuhao in #8871).

⚡ Performance & Enhancements (6)

  • **Llama3.2**: Now available with Fireworks and Groq providers for improved performance and variety (@yaoice in #8809 and @Howe829 in #8831).
  • 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).
  • **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).

🔧 Bug Fixes & Patches (6)

  • 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).
📄 View Raw Release Notes (Original Developer Log)
## ✨ 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). ![img_v3_02f7_b73507d9-c144-4a1d-acf4-caccec69b99g](https://github.com/user-attachments/assets/937eed02-1c8f-4635-9ba6-f3464b3a3bfe) - 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](https://docs.dify.ai/guides/knowledge-base/sync-from-website#jina-reader) for details. (@mapleeit in [#8761](https://github.com/langgenius/dify/pull/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](https://github.com/langgenius/dify/pull/8358)). - **DeepSeek-v2.5** added as a model provider for SiliconFlow (@hwzhuhao in [#8639](https://github.com/langgenius/dify/pull/8639)). - **Stream for Gemini** now available (@AAEE86 in [#8678](https://github.com/langgenius/dify/pull/8678)). - **Vertex AI Gemini 1.5 002** and experimental models are now supported (@hellof20 in [#8767](https://github.com/langgenius/dify/pull/8767)). #### 🛠️ Other Updates - **Xinference TTS Stream Mode**: Now live for a smoother text-to-speech experience (@leslie2046 in #8616). - **Regenerate** in `Chat`, `Agent`, and `Chatflow` applications (@xuzuodong in [#7661](https://github.com/langgenius/dify/pull/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. 1. Back up your customized docker-compose YAML file (optional) ```bash cd docker cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak ``` 2. Get the latest code from the main branch ```bash git checkout main git pull origin main ``` 3. Stop the service,Command, please execute in the docker directory ```bash docker compose down ``` 4. Back up data ```bash tar -cvf volumes-$(date +%s).tgz volumes ``` 5. Upgrade services ```bash docker compose up -d ``` ### Source Code deployments 1. Stop API server, Worker and Web frontend Server. 2. Get the latest code from the main branch: ```bash git checkout 0.9.0 git pull origin 0.9.0 ``` 3. Update Python dependencies: ```bash cd api poetry install ``` 7. Then, let's run the migration script: ```bash poetry shell flask db upgrade ``` 8. 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 https://github.com/langgenius/dify/pull/8595 * fix: a helper link error by @hjlarry in https://github.com/langgenius/dify/pull/8508 * chore: translate i18n files by @github-actions in https://github.com/langgenius/dify/pull/8557 * Enhance Readme Documentation to Clarify the Importance of Celery Service by @fchange in https://github.com/langgenius/dify/pull/8558 * docs: Update ssrf_proxy related doc link in docker-compose file by @saifeiLee in https://github.com/langgenius/dify/pull/8516 * Update the PerfXCloud provider model list,Update PerfXCloudProvider validate_provider_credentials method. by @BingGeX in https://github.com/langgenius/dify/pull/8587 * add MixtralAI Model by @AAEE86 in https://github.com/langgenius/dify/pull/8517 * fix: api/core/ops/ops_trace_manager.py by @ZuzooVn in https://github.com/langgenius/dify/pull/8501 * add Qwen custom add model interface by @AAEE86 in https://github.com/langgenius/dify/pull/8565 * refactor(ops): Optimize the iteration for filter_none_values and use logging.error to record logs when an exception occurs by @hwzhuhao in https://github.com/langgenius/dify/pull/8461 * feat: update pyproject.toml by @ZhouhaoJiang in https://github.com/langgenius/dify/pull/8368 * feat: regenerate in `Chat`, `agent` and `Chatflow` app by @xuzuodong in https://github.com/langgenius/dify/pull/7661 * docs: Add Japanese documentation for tools by @totsukash in https://github.com/langgenius/dify/pull/8469 * feat:use xinference tts stream mode by @leslie2046 in https://github.com/langgenius/dify/pull/8616 * Add Fireworks AI as new model provider by @yaoice in https://github.com/langgenius/dify/pull/8428 * feat(tools/cogview): Updated cogview tool to support cogview-3 and the latest cogview-3-plus by @ox01024 in https://github.com/langgenius/dify/pull/8382 * Add model parameter translation by @AAEE86 in https://github.com/langgenius/dify/pull/8509 * fix: form input add tabIndex by @LLmoskk in https://github.com/langgenius/dify/pull/8478 * feat: support o1 series models for openrouter by @sinomoe in https://github.com/langgenius/dify/pull/8358 * chore: add Gemini newest experimental models (close #7121) by @CXwudi in https://github.com/langgenius/dify/pull/8621 * chore: enhance configuration descriptions by @ZuzooVn in https://github.com/langgenius/dify/pull/8624 * fix: redundant check for available_document_count by @y-omr in https://github.com/langgenius/dify/pull/8491 * fix: commands.py by @ZuzooVn in https://github.com/langgenius/dify/pull/8483 * fix: llm_generator.py JSONDecodeError by @ZuzooVn in https://github.com/langgenius/dify/pull/8504 * fix: send message error when chatting with opening statement by @xuzuodong in https://github.com/langgenius/dify/pull/8627 * feat: add qwen2.5 for model provider siliconflow by @hwzhuhao in https://github.com/langgenius/dify/pull/8630 * docs: fix predefined_model_scale_out.md redirect error by @hwzhuhao in https://github.com/langgenius/dify/pull/8633 * feat: add deepseek-v2.5 for model provider siliconflow by @hwzhuhao in https://github.com/langgenius/dify/pull/8639 * Make WORKFLOW_* configurable as environment variables. by @fujita-h in https://github.com/langgenius/dify/pull/8644 * chore: Enable Japanese descriptions for Tools by @totsukash in https://github.com/langgenius/dify/pull/8646 * feat: extend api params for Jina Embeddings V3 by @DresAaron in https://github.com/langgenius/dify/pull/8657 * fix: Assignment exception by @haike-1213 in https://github.com/langgenius/dify/pull/8663 * chore: skip PLR6201 linter rule by @bowenliang123 in https://github.com/langgenius/dify/pull/8666 * fix: png avatar upload as jpeg by @hjlarry in https://github.com/langgenius/dify/pull/8665 * add Qwen model translate by @AAEE86 in https://github.com/langgenius/dify/pull/8674 * add zhipuai web search by @AAEE86 in https://github.com/langgenius/dify/pull/8668 * add Spark Max-32K by @AAEE86 in https://github.com/langgenius/dify/pull/8676 * chore: Optimize I18nObject class for better performance and readability by @ZuzooVn in https://github.com/langgenius/dify/pull/8681 * fix: send message error when last sent message not succeeded by @xuzuodong in https://github.com/langgenius/dify/pull/8682 * fixbug tts(stream) not work on ios safari(17.1+) by @likenamehaojie in https://github.com/langgenius/dify/pull/8645 * fix: document_create_args_validate by @vikeychen in https://github.com/langgenius/dify/pull/8569 * Add nomic embedding model provider by @yaoice in https://github.com/langgenius/dify/pull/8640 * fix: prompt for the follow-up suggestions by @crazywoola in https://github.com/langgenius/dify/pull/8685 * fix: typos and improve naming conventions: by @ZuzooVn in https://github.com/langgenius/dify/pull/8687 * fix: change the brand name to Jina AI by @Nick17t in https://github.com/langgenius/dify/pull/8691 * feat: add xinference sd web ui api tool by @themanforfree in https://github.com/langgenius/dify/pull/8385 * fix llm integration problem: It doesn't work on docker env by @ybalbert001 in https://github.com/langgenius/dify/pull/8701 * feat: add mixedbread as a new model provider by @hwzhuhao in https://github.com/langgenius/dify/pull/8523 * fix: Remove unsupported parameters in qwen model by @AAEE86 in https://github.com/langgenius/dify/pull/8699 * fix: change model provider name issue Ref #8691 by @BenjaminX in https://github.com/langgenius/dify/pull/8710 * fix: update nomic model provider token calculation by @yaoice in https://github.com/langgenius/dify/pull/8705 * fix: embedded chat on ios by @zxhlyh in https://github.com/langgenius/dify/pull/8718 * chore: remove windows platform timezone set by @hjlarry in https://github.com/langgenius/dify/pull/8712 * fix: remove harm category setting from vertex ai by @totsukash in https://github.com/langgenius/dify/pull/8721 * Fix/update jina ai products labels and descriptions by @Nick17t in https://github.com/langgenius/dify/pull/8730 * add embedding input type parameter by @JohnJyong in https://github.com/langgenius/dify/pull/8724 * Add embedding models in fireworks provider by @yaoice in https://github.com/langgenius/dify/pull/8728 * Fix Issue: switch LLM of SageMaker endpoint doesn't take effect by @ybalbert001 in https://github.com/langgenius/dify/pull/8737 * fix: . is missing in file_extension by @crazywoola in https://github.com/langgenius/dify/pull/8736 * chore: make url display in the middle of http node by @hjlarry in https://github.com/langgenius/dify/pull/8741 * chore: apply ruff reformat for python-client sdk by @hwzhuhao in https://github.com/langgenius/dify/pull/8752 * fix:Spark's large language model token calculation error #7911 by @cherryhuahua in https://github.com/langgenius/dify/pull/8755 * fix: expose the configuration of HTTP request node to Docker by @zhuiyue132 in https://github.com/langgenius/dify/pull/8716 * Add GitHub Actions Workflow for Web Tests by @xuzuodong in https://github.com/langgenius/dify/pull/8753 * fix: the translation result may cause a different meaning by @douxc in https://github.com/langgenius/dify/pull/8763 * feat: add support for Vertex AI Gemini 1.5 002 and experimental models by @hellof20 in https://github.com/langgenius/dify/pull/8767 * dep: bump ElasticSearch from 8.14.x to 8.15.x by @bowenliang123 in https://github.com/langgenius/dify/pull/8197 * chore: fix comfyui tool doc url by @QunBB in https://github.com/langgenius/dify/pull/8775 * fix: TavilySearch tool get api link by @hjlarry in https://github.com/langgenius/dify/pull/8780 * chore: add input_type param desc for the _invoke method of text_embedding by @hwzhuhao in https://github.com/langgenius/dify/pull/8778 * fix: credential *** should be string by @hjlarry in https://github.com/langgenius/dify/pull/8785 * fix: update usage for Jina Embeddings v3 by @DresAaron in https://github.com/langgenius/dify/pull/8771 * Add more models for SiliconFlow by @jackalcooper in https://github.com/langgenius/dify/pull/8779 * fix: the Image-1X tool by @hjlarry in https://github.com/langgenius/dify/pull/8787 * fix: start node input config modal raise 'variable name is required' by @hjlarry in https://github.com/langgenius/dify/pull/8793 * fix: Ollama modelfeature set vision, and an exception occurred at the… by @free-cx in https://github.com/langgenius/dify/pull/8783 * refactor: update delete method as an abstract method by @hwzhuhao in https://github.com/langgenius/dify/pull/8794 * fix: workflow as tool always outdated by @hjlarry in https://github.com/langgenius/dify/pull/8798 * fix: change wrong company name by @iamjoel in https://github.com/langgenius/dify/pull/8801 * feat: add qwen to add custom model parameters by @AAEE86 in https://github.com/langgenius/dify/pull/8759 * feat: add stream for Gemini by @AAEE86 in https://github.com/langgenius/dify/pull/8678 * feat: improved SVG output UX by @xuzuodong in https://github.com/langgenius/dify/pull/8765 * Add llama3.2 model in fireworks provider by @yaoice in https://github.com/langgenius/dify/pull/8809 * add more detailed doc for models of qwen series by @wenmengzhou in https://github.com/langgenius/dify/pull/8799 * chore: massive update of the Gemini models based on latest documentation by @CXwudi in https://github.com/langgenius/dify/pull/8822 * Updated the YouTube channel to Dify's by @shaiss in https://github.com/langgenius/dify/pull/8817 * feat: add pgvecto-rs and analyticdb in docker/.env.example by @hwzhuhao in https://github.com/langgenius/dify/pull/8823 * fix: close log status option raise error by @hjlarry in https://github.com/langgenius/dify/pull/8826 * fix: AnalyticdbVector retrieval scores by @lpdink in https://github.com/langgenius/dify/pull/8803 * feat: deprecate mistral model for siliconflow by @hwzhuhao in https://github.com/langgenius/dify/pull/8828 * Add Llama3.2 models in Groq provider by @Howe829 in https://github.com/langgenius/dify/pull/8831 * fix: delete harm catalog settings for gemini by @CXwudi in https://github.com/langgenius/dify/pull/8829 * feat(Tools): add feishu tools by @hgnulb in https://github.com/langgenius/dify/pull/8800 * feat: add min-connection and max-connection for pgvector by @hwzhuhao in https://github.com/langgenius/dify/pull/8841 * chore: fix wrong VectorType match case by @yaoice in https://github.com/langgenius/dify/pull/8857 * fix(workflow/nodes/knowledge-retrieval/use-config): Preserve rerankin… by @Kevin9703 in https://github.com/langgenius/dify/pull/8842 * fix: update qwen2.5-coder-7b model name by @hwzhuhao in https://github.com/langgenius/dify/pull/8861 * fix: customize model credentials were invalid despite the provider credentials being active by @takatost in https://github.com/langgenius/dify/pull/8864 * feat: add internlm2.5-20b and qwen2.5-coder-7b model by @hwzhuhao in https://github.com/langgenius/dify/pull/8862 * feat: deprecate gte-Qwen2-7B-instruct embedding model by @hwzhuhao in https://github.com/langgenius/dify/pull/8866 * refactor: update Callback to an abstract class by @hwzhuhao in https://github.com/langgenius/dify/pull/8868 * chore: bump ruff to 0.6.8 for fixing violation in SIM910 by @bowenliang123 in https://github.com/langgenius/dify/pull/8869 * fix(workflow): update tagging logic in GitHub Actions by @laipz8200 in https://github.com/langgenius/dify/pull/8882 * Add Jamba and Llama3.2 model support by @longzhihun in https://github.com/langgenius/dify/pull/8878 * fix: #8843 event: tts_message_end always return in api streaming resp… by @ic-xu in https://github.com/langgenius/dify/pull/8846 * docs: add english versions for the files customizable_model_scale_out and predefined_model_scale_out by @hwzhuhao in https://github.com/langgenius/dify/pull/8871 * feat: add voyage ai as a new model provider by @hwzhuhao in https://github.com/langgenius/dify/pull/8747 * feat(website-crawl): add jina reader as additional alternative for website crawling by @mapleeit in https://github.com/langgenius/dify/pull/8761 * feat(api): add version comparison logic by @laipz8200 in https://github.com/langgenius/dify/pull/8902 * refactor(api/variables): VariableError as a ValueError. by @laipz8200 in https://github.com/langgenius/dify/pull/8554 * fix: fix the data validation consistency issue in keyword content review by @hwzhuhao in https://github.com/langgenius/dify/pull/8908 * refactor: optimize the calculation of rerank threshold and the logic for forbidden characters in model_uid by @hwzhuhao in https://github.com/langgenius/dify/pull/8879 * external knowledge api by @JohnJyong in https://github.com/langgenius/dify/pull/8913 * fix: line in iteration node is not straight by @YIXIAO0 in https://github.com/langgenius/dify/pull/8918 * fix: Compatible with special characters in pg full-text search. by @ThreeFish-AI in https://github.com/langgenius/dify/pull/8921 * chore: translate i18n files by @github-actions in https://github.com/langgenius/dify/pull/8917 * fix: fix the issue with the system model configuration update by @hwzhuhao in https://github.com/langgenius/dify/pull/8923 * Feat: add debounce for search in logs by @JzoNgKVO in https://github.com/langgenius/dify/pull/8924 * chore(versioning): bump version to 0.9.0 by @laipz8200 in https://github.com/langgenius/dify/pull/8911 ## New Contributors * @fchange made their first contribution in https://github.com/langgenius/dify/pull/8558 * @CXwudi made their first contribution in https://github.com/langgenius/dify/pull/8621 * @fujita-h made their first contribution in https://github.com/langgenius/dify/pull/8644 * @haike-1213 made their first contribution in https://github.com/langgenius/dify/pull/8663 * @likenamehaojie made their first contribution in https://github.com/langgenius/dify/pull/8645 * @cherryhuahua made their first contribution in https://github.com/langgenius/dify/pull/8755 * @zhuiyue132 made their first contribution in https://github.com/langgenius/dify/pull/8716 * @jackalcooper made their first contribution in https://github.com/langgenius/dify/pull/8779 * @free-cx made their first contribution in https://github.com/langgenius/dify/pull/8783 * @wenmengzhou made their first contribution in https://github.com/langgenius/dify/pull/8799 * @shaiss made their first contribution in https://github.com/langgenius/dify/pull/8817 * @mapleeit made their first contribution in https://github.com/langgenius/dify/pull/8761 **Full Changelog**: https://github.com/langgenius/dify/compare/0.8.3...0.9.0