github langgenius/dify 0.9.0
v0.9.0

latest releases: 0.10.0-beta1, 0.9.1
11 hours ago

✨ 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

  • 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, and Chatflow 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.

  1. Back up your customized docker-compose YAML file (optional)

    cd docker
    cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
  2. Get the latest code from the main branch

    git checkout main
    git pull origin main
  3. Stop the service,Command, please execute in the docker directory

    docker compose down
  4. Back up data

    tar -cvf volumes-$(date +%s).tgz volumes
  5. Upgrade services

    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:

    git checkout 0.9.0
    git pull origin 0.9.0
  3. Update Python dependencies:

    cd api
    poetry install
  4. Then, let's run the migration script:

    poetry shell
    flask db upgrade
  5. 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 and Chatflow 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+) by @likenamehaojie in #8645
  • fix: document_create_args_validate by @vikeychen in #8569
  • Add nomic embedding model provider by @yaoice in #8640
  • fix: prompt for the follow-up suggestions by @crazywoola in #8685
  • fix: typos and improve naming conventions: by @ZuzooVn in #8687
  • fix: change the brand name to Jina AI by @Nick17t in #8691
  • feat: add xinference sd web ui api tool by @themanforfree in #8385
  • fix llm integration problem: It doesn't work on docker env by @ybalbert001 in #8701
  • feat: add mixedbread as a new model provider by @hwzhuhao in #8523
  • fix: Remove unsupported parameters in qwen model by @AAEE86 in #8699
  • fix: change model provider name issue Ref #8691 by @BenjaminX in #8710
  • fix: update nomic model provider token calculation by @yaoice in #8705
  • fix: embedded chat on ios by @zxhlyh in #8718
  • chore: remove windows platform timezone set by @hjlarry in #8712
  • fix: remove harm category setting from vertex ai by @totsukash in #8721
  • Fix/update jina ai products labels and descriptions by @Nick17t in #8730
  • add embedding input type parameter by @JohnJyong in #8724
  • Add embedding models in fireworks provider by @yaoice in #8728
  • Fix Issue: switch LLM of SageMaker endpoint doesn't take effect by @ybalbert001 in #8737
  • fix: . is missing in file_extension by @crazywoola in #8736
  • chore: make url display in the middle of http node by @hjlarry in #8741
  • chore: apply ruff reformat for python-client sdk by @hwzhuhao in #8752
  • fix:Spark's large language model token calculation error #7911 by @cherryhuahua in #8755
  • fix: expose the configuration of HTTP request node to Docker by @zhuiyue132 in #8716
  • Add GitHub Actions Workflow for Web Tests by @xuzuodong in #8753
  • fix: the translation result may cause a different meaning by @douxc in #8763
  • feat: add support for Vertex AI Gemini 1.5 002 and experimental models by @hellof20 in #8767
  • dep: bump ElasticSearch from 8.14.x to 8.15.x by @bowenliang123 in #8197
  • chore: fix comfyui tool doc url by @QunBB in #8775
  • fix: TavilySearch tool get api link by @hjlarry in #8780
  • chore: add input_type param desc for the _invoke method of text_embedding by @hwzhuhao in #8778
  • fix: credential *** should be string by @hjlarry in #8785
  • fix: update usage for Jina Embeddings v3 by @DresAaron in #8771
  • Add more models for SiliconFlow by @jackalcooper in #8779
  • fix: the Image-1X tool by @hjlarry in #8787
  • fix: start node input config modal raise 'variable name is required' by @hjlarry in #8793
  • fix: Ollama modelfeature set vision, and an exception occurred at the… by @free-cx in #8783
  • refactor: update delete method as an abstract method by @hwzhuhao in #8794
  • fix: workflow as tool always outdated by @hjlarry in #8798
  • fix: change wrong company name by @iamjoel in #8801
  • feat: add qwen to add custom model parameters by @AAEE86 in #8759
  • feat: add stream for Gemini by @AAEE86 in #8678
  • feat: improved SVG output UX by @xuzuodong in #8765
  • Add llama3.2 model in fireworks provider by @yaoice in #8809
  • add more detailed doc for models of qwen series by @wenmengzhou in #8799
  • chore: massive update of the Gemini models based on latest documentation by @CXwudi in #8822
  • Updated the YouTube channel to Dify's by @shaiss in #8817
  • feat: add pgvecto-rs and analyticdb in docker/.env.example by @hwzhuhao in #8823
  • fix: close log status option raise error by @hjlarry in #8826
  • fix: AnalyticdbVector retrieval scores by @lpdink in #8803
  • feat: deprecate mistral model for siliconflow by @hwzhuhao in #8828
  • Add Llama3.2 models in Groq provider by @Howe829 in #8831
  • fix: delete harm catalog settings for gemini by @CXwudi in #8829
  • feat(Tools): add feishu tools by @hgnulb in #8800
  • feat: add min-connection and max-connection for pgvector by @hwzhuhao in #8841
  • chore: fix wrong VectorType match case by @yaoice in #8857
  • fix(workflow/nodes/knowledge-retrieval/use-config): Preserve rerankin… by @Kevin9703 in #8842
  • fix: update qwen2.5-coder-7b model name by @hwzhuhao in #8861
  • fix: customize model credentials were invalid despite the provider credentials being active by @takatost in #8864
  • feat: add internlm2.5-20b and qwen2.5-coder-7b model by @hwzhuhao in #8862
  • feat: deprecate gte-Qwen2-7B-instruct embedding model by @hwzhuhao in #8866
  • refactor: update Callback to an abstract class by @hwzhuhao in #8868
  • chore: bump ruff to 0.6.8 for fixing violation in SIM910 by @bowenliang123 in #8869
  • fix(workflow): update tagging logic in GitHub Actions by @laipz8200 in #8882
  • Add Jamba and Llama3.2 model support by @longzhihun in #8878
  • fix: #8843 event: tts_message_end always return in api streaming resp… by @ic-xu in #8846
  • docs: add english versions for the files customizable_model_scale_out and predefined_model_scale_out by @hwzhuhao in #8871
  • feat: add voyage ai as a new model provider by @hwzhuhao in #8747
  • feat(website-crawl): add jina reader as additional alternative for website crawling by @mapleeit in #8761
  • feat(api): add version comparison logic by @laipz8200 in #8902
  • refactor(api/variables): VariableError as a ValueError. by @laipz8200 in #8554
  • fix: fix the data validation consistency issue in keyword content review by @hwzhuhao in #8908
  • refactor: optimize the calculation of rerank threshold and the logic for forbidden characters in model_uid by @hwzhuhao in #8879
  • external knowledge api by @JohnJyong in #8913
  • fix: line in iteration node is not straight by @YIXIAO0 in #8918
  • fix: Compatible with special characters in pg full-text search. by @ThreeFish-AI in #8921
  • chore: translate i18n files by @github-actions in #8917
  • fix: fix the issue with the system model configuration update by @hwzhuhao in #8923
  • Feat: add debounce for search in logs by @JzoNgKVO in #8924
  • chore(versioning): bump version to 0.9.0 by @laipz8200 in #8911

New Contributors

Full Changelog: 0.8.3...0.9.0

Don't miss a new dify release

NewReleases is sending notifications on new releases.