Releases: langgenius/dify
v0.6.16
✨ What’s New in v0.6.16? ✨
Hey everyone, we’re back with another update, and this one’s packed with some exciting new features, model support, and enhancements. Let’s dive right in!
🚀 Phasing Out N-to-1: Upgrading Multi-path Knowledge Retrieval
Important
We're phasing out the N-to-1
retrieval strategy on September 1, 2024, and introducing a more flexible multi-path retrieval strategy. We recommend switching to this new approach to boost your application's retrieval efficiency.
Learn More: https://dify.ai/blog/dify-ai-blog-n-to-1-knowledge-retrieval-legacy
🧠 Models
Llama3.1 Support
- OpenRouter Provider: Added support for Llama3.1 series models by @sinomoe in #6595.
- GroqCloud: Llama3.1 series models are now supported by @takatost in #6596.
- Bedrock: Llama 3.1 support added by @longzhihun in #6645.
- NVIDIA: Llama3.1 model support by @sulgweb in #6844.
GPT-4o Mini Support
- Azure GPT-4o Mini: Added support for Azure GPT-4o Mini by @charli117 in #6862 and @leslie2046 in #6866.
Other Models
- DeepSeek-Coder-v2: Added in SiliconFlow by @senseb in #6149.
- Novita Model Provider: New model provider added by @jasonhp in #6717.
- Solar Model Provider: Added new provider Solar by @JuHyung-Son in #6884.
- Hunyuan-Embedding: New model support by @maybemaynot in #6657.
- Xinference TTS: Added support for text-to-speech by @Weaxs in #6746.
- Tool-Call for Hunyuan: Added support for tool-call by @maybemaynot in #6656.
🛠️ Tools
- AWS Built-in Tools: Added by @ybalbert001 in #6721.
- Serper for Google Search: New tool added for Google search by @hwzhuhao in #6790.
⚙️ Enhancements
- Python 3.12 Support: Added Python 3.12 support for API Service by @bowenliang123 in #6771.
- Milvus 2.4.x Support: Initial support for Milvus 2.4.x by @bowenliang123 in #6084.
- Docker-Compose Certbot Configurations: Added with backward compatibility by @k-brahma in #6702.
- Celery Auto-Scale: Added support for Celery auto-scaling by @ZuzooVn in #6249.
- User Session ID Search: Enhanced App Logs search capabilities by @ZhouhaoJiang in #6638.
🧹 Cleanups
For additional enhancements and updates, refer to the What's Changed section below.
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 main git pull origin main
-
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
- feat: support llama3.1 series models for openrouter provider by @sinomoe in #6595
- feat: add GroqCloud llama3.1 series models support by @takatost in #6596
- fix: downgraded sentry-sdk to 1.44.1 due to claude LLM token returning 0 by @takatost in #6597
- Feat/delete single dataset retrival by @JohnJyong in #6570
- feat: n to 1 retrieval legacy by @zxhlyh in #6554
- Fix: reset button in embedded chatbot by @JzoNgKVO in #6611
- Fix: DSL backup by @JzoNgKVO in #6616
- Fix/6615 40 varchar limit on model name by @crazywoola in #6623
- fix: qwen fc error by @Dofine-dufei in #6620
- feat: added ActionButton component by @YIXIAO0 in #6631
- chore: optimize asynchronous deletion performance of app related data by @takatost in #6634
- chore: optimize asynchronous workflow deletion performance of app related data by @takatost in #6639
- doc: fix about model features by @zhangzhiqiangcs in #6619
- fix: value is not an array by @crazywoola in #6632
- Feat/user session id search by @ZhouhaoJiang in #6638
- remove rerank model must be required when retrieval_model is multiple by @JohnJyong in #6640
- feat(api/core/app/segments/variables.py): Support description in Variable. by @laipz8200 in #6636
- refactor(api/core/workflow/workflow_engine_manager.py): Remove by @laipz8200 in #6630
- Chores: add missing profile for middleware docker compose cmd and fix ssrf-proxy doc link by @vicoooo26 in #6372
- fix(api/core/workflow/nodes/iteration/iteration_node.py): Extend output in iteration if output is a array. by @laipz8200 in #6647
- fix reranking model field error by @JohnJyong in #6654
- Resolve variable type parameter error by @majian159 in #6646
- fix tencent_cos_storage image-preview error is not a byte by @yanghx-git in #6652
- [seanguo] feat: add llama 3.1 support in bedrock by @longzhihun in #6645
- chore: fix type annotations by @hjlarry in #6600
- Add support of tool-call for model provider "hunyuan" by @maybemaynot in #6656
- fix(api/fields/workflow_fields.py): Add check in environment variables by @laipz8200 in #6621
- feat: support max_retries in jina requests by @xielong in #6585
- Enhance database URI security and add URL encoding by @Seayon in #6668
- refactor(api/core/app/segments): implement
to_object
in ObjectVariable and ArrayVariable. by @laipz8200 in #6671 - fix bugs(when using Oracle23ai as Vector DB) by @tmuife in #6658
- fix: code block segmentation problem of markdown document by @greycodee in #6465
- Add french and jp translation for new feature by @HanqingZ in #6675
- modify llama3-1 yaml filename to support Windows pull operations by @Sakura4036 in #6677
- Update bug_report.yml by @crazywoola in #6678
- [seanguo] fix: unsupported filename in windows & add Mistral Large 2 by @longzhihun in #6679
- security/SSRF vulns by @Yeuoly in #6682
- fix: doc link in knowledge base by @crazywoola in #6691
- chore: make prompt generator max tokens configurable by @gijigae in #6693
- Fix appId missing in annotations by @JzoNgKVO in #6699
- fix(log/list): Incorrect field 'app_id' causing annotations to fail t… by @Kevin9703 in #6697
- issues #6655 Open ai tts issues by @ic-xu in #6696
- refactor(api/core/app/segments): Support more kinds of Segments. by @laipz8200 in #6706
- fix(answer/operation): feedback status in the logs by @Kevin9703 in #6716
- Feat/model provider novita by @jasonhp in #6717
- fix: tongyi empty tool_calls is not supported in message by @ZhouhaoJiang in #6719
- feat(api/core/app/segments/parser.py): Remove blank segment in
convert_template
by @laipz8200 in #6709 - add xlsx support hyperlink extract by @JohnJyong in #6722
- fix(api/core/model_runtime/model_providers/azure_openai/llm/llm.py): Try to skip if
delta.delta
is None. by @laipz8200 in #6727 - Feat/6725 can not get image url from cogview tool by @crazywoola in #6728
- refactor(api/core/workflow/nodes/base_node.py): Update extract_variable_selector_to_variable_mapping method signature. by @laipz8200 in #6733
- feat(api/core/app/segments): Update segment types and variables by @laipz8200 in #6734
- chore: migrate to poetry in devcontaine...
v0.6.15
✨ What’s New in v0.6.15? ✨
Hey everyone, we’ve got a fresh update for you! Version 0.6.15 is here, and it’s packed with new features, model support, tools, and enhancements. Let’s dive in:
🚀 New Features
-
Environment Variables in Workflow: Now you can use environment variables directly in your chatflows/workflows, by @laipz8200 and @JzoNgKVO in #6515.
Environment variables can be used to store private information and credentials. They are read-only and can be separated from the DSL file during export.
The
secret
variable type is used to define sensitive information or data, with DSL settings configured for leak prevention. -
New Prompt Generator: We’ve introduced a new prompt generator, by @iamjoel in #6514, #6525, #6564, and @ZhouhaoJiang in #6516.
🧠 Models
- Stepfun LLM Support: Added by @forrestlinfeng in #6346.
- OpenAI GPT-4o-mini Support: Now available, by @takatost in #6442.
- GPT-4o-mini for OpenRouter Provider: Added by @sinomoe in #6447.
- Amazon Sagemaker Model Provider: Integrated by @ybalbert001 in #6255.
- Updated Ernie Models: Thanks to @Weaxs in #6454.
- Tencent Cloud ASR Support: Added by @lancemao in #6091.
🛠️ Tools
- Mingdao HAP Tool: Read and maintain HAP application worksheet data, implemented by @coldstone in #6257.
- Google Translate Tool: Added by @svcvit in #6156.
- Tianditu Tool: Integrated by @listeng in #6320.
- Spider Web Scraper & Crawler Tool: Added by @WilliamEspegren in #5725.
- Getimg.ai Integration: Added by @MatriQ in #6260.
⚙️ Enhancements
- Full Text Search with Oracle23ai as Vector DB: Added by @tmuife in #6559.
- API Key Support for Xinference: Integrated by @themanforfree in #6417.
- Fix for Anthropic Header Issue: Quickly resolved by @richards199999 in #6445.
For additional enhancements and updates, refer to the What's Changed section below.
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 main git pull origin main
-
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:update azure GA version 2024-06-01 by @leslie2046 in #6307
- fix: prompt editor new line by @zxhlyh in #6310
- dep: bump Pydantic from 2.7 to 2.8 by @bowenliang123 in #6273
- update clean_unused_datasets_task timedelta by @JohnJyong in #6324
- Docs: Translate by @AllenWriter in #6329
- fix: better qr code panel and webapp url regen confirmation by @chazzhou in #6321
- Add tool: Google Translate by @svcvit in #6156
- feat: bedrock model runtime enhancement by @longzhihun in #6299
- fix wrong using of RetrievalMethod Enum by @JohnJyong in #6345
- Fix tts api err by @charli117 in #6349
- update celery beat scheduler time to env by @JohnJyong in #6352
- chore: fix legacy API usages of Query.get() by Session.get() in SqlAlchemy 2 by @bowenliang123 in #6340
- WebscraperTool bypass cloudflare site by cloudscraper by @Weaxs in #6337
- fix: default model set wrong(#6327) by @FamousMai in #6332
- Add multilingual support for TTS (Text-to-Speech) functionality. by @ic-xu in #6369
- fix: incorrect config key name by @yujunhui in #6371
- fix: workflow sync before export by @zxhlyh in #6380
- refactor(api/core/workflow/nodes/http_request): Remove
mask_authorization_header
because its alwary true. by @laipz8200 in #6379 - Feat/optimize clean dataset logic by @JohnJyong in #6384
- fix: rename model from ernie-4.0-8k-Latest to ernie-4.0-8k-latest by @xielong in #6383
- Add the API documentation for streaming TTS (Text-to-Speech) by @ic-xu in #6382
- Fix issues related to search apps, notification duration, and loading icon on the explore page by @faye1225 in #6374
- update empty document caused delete exist collection by @JohnJyong in #6392
- embed.js add esc exit and fix avoid infinite nesting by @charli117 in #6360
- fix: tool authorization setting panel not validate required fields by @hjlarry in #6387
- fix: default duration by @crazywoola in #6393
- refactor(models&tools): switch to dify_config in models and tools. by @Poorandy in #6394
- fix web import url is too long by @JohnJyong in #6402
- Support new Claude-3.5 Sonnet max token limit by @richards199999 in #6335
- Add Stepfun LLM Support by @forrestlinfeng in #6346
- fix: kill signal is not passed to the main process by @tmokmss in #6159
- fix inconsistent label by @harrywang in #6404
- feat: added custom secure_ascii to the json_process tool by @XiaoLey in #6401
- feat: add a Tianditu tool by @listeng in #6320
- feat: Spider web scraper & crawler tool by @WilliamEspegren in #5725
- fix: improve separation element in prompt log and TTS buttons in the operation by @kuizuo in #6413
- feat: support get workflow task execution status by @hjlarry in #6411
- feat: add frontend unit test framework by @iamjoel in #6426
- feat: add custom tool timeout config to docker-compose.yaml and .env by @forrestsocool in #6419
- refactor(rag): switch to dify_config. by @Poorandy in #6410
- fix tool icon get failed by @Songyawn in #6375
- feat: api_key support for xinference by @themanforfree in #6417
- fix: tools edit modal schema edit issue by @qweasdzxcpkh in #6396
- fix(api/core/tools/provider/builtin/spider/tools/scraper_crawler.yaml): Fix wrong placeholder config in scraper crawler tool. by @laipz8200 in #6432
- Fix the vector retrieval sorting issue by @leoterry-ulrica in #6431
- Enhancement: add model provider - Amazon Sagemaker by @ybalbert001 in #6255
- fix: Unable to display images generated by Dall-E 3 by @Weishan-0 in #6155
- update clean embedding cache logic by @JohnJyong in #6434
- feat: passing the inputs values using
difyChatbotConfig
by @yoyocircle in #6376 - feat: add gpt-4o-mini by @takatost in #6442
- [EMERGENCY] Fix Anthropic header issue by @richards199999 in #6445
- refactor(myscale):Set the default value of the myscale vector db in DifyConfig. by @ox01024 in #6441
- chore: make text generation timeout duration configurable by @gijigae in #6450
- update ernie models by @Weaxs in #6454
- feat: support gpt-4o-mini for openrouter provider by @sinomoe in #6447
- fix wrong method using by @JohnJyong in #6459
- chore: some components upgrage to new ui by @iamjoel in #6468
- Update CONTRIBUTING_JA "installation FAQ" link. by @moqimoqidea in https://github.com/...
v0.6.14
✨ What’s New in v0.6.14? ✨
Hey everyone, we’ve got some exciting updates in version 0.6.14. Here’s a quick look at what’s new and improved:
🚀 New Features
-
TTS Streaming Config: Text-to-Speech support automatic voice playback and streaming by @ic-xu in #5492.
-
Workflow Enhancements:
-
Added
elif
support to theif-else
workflow node, and expanded condition values from only supporting static values to accepting variables by @zxhlyh in #6072 and @ZhouhaoJiang in #6094.
-
-
New Integrations:
- Added support for PerfXCloud and Qwen series by @soulteary in #6117.
- Introduced
ernie-4.0-turbo-8k-preview
by @Littlesheepxy in #6132. - Added Zhipu CogView 3 tool by @ox01024 in #6210.
- Added support for MyScale vector database by @jewelzqiu in #6092.
- Added support for AnalyticDB vector store by @lpdink in #5586.
-
Support for importing DSL from a URL by @takatost in #6287 and @zxhlyh in #6286.
-
Implemented rate limiting for apps to manage the number of concurrent calls to the App Service API by setting the environment variable APP_MAX_ACTIVE_REQUESTS by @liuzhenghua in #5844.
For additional enhancements and updates, refer to the What's Changed section below.
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 main git pull origin main
-
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
- Feat: add index bar to select tool panel of workflow by @hjlarry in #6066
- feat:add tts-streaming config and future by @ic-xu in #5492
- feat: support AnalyticDB vector store by @lpdink in #5586
- feat: tailwind related improvement by @iamjoel in #6085
- fix: node-title-is-overflow-in-checklist by @aixgeek in #5870
- Chore: new tailwind vars by @iamjoel in #6100
- fix dataset operator by @ZhouhaoJiang in #6064
- chore: remove unresolved reference by @sinomoe in #6110
- chore(deps): bump braces from 3.0.2 to 3.0.3 in /web by @dependabot in #6098
- chore: use poetry for linter tools installation and bump Ruff from 0.4 to 0.5 by @bowenliang123 in #6081
- feat(embed): enhance config and add custom styling support by @Tian-Hun in #5781
- chore: update the tool's doc by @hjlarry in #6122
- feat: add until className defines by @iamjoel in #6141
- feat: workflow if-else support elif by @zxhlyh in #6072
- feat: add if elif by @ZhouhaoJiang in #6094
- feat: add PerfXCloud, Qwen series #6116 by @soulteary in #6117
- Revert "chore: update the tool's doc" by @crazywoola in #6153
- feat: app rate limit by @liuzhenghua in #5844
- chore: update i18n for #5943 by @ZuzooVn in #6162
- chore: update i18n for #6069 by @ZuzooVn in #6163
- chore: update the tool's doc by @hjlarry in #6167
- fix: can add a custom tool without a name by @hjlarry in #6172
- fix: data not updated by @crazywoola in #6161
- feat: support MyScale vector database by @jewelzqiu in #6092
- Fix/file stream azure blob by @JohnJyong in #6196
- Fix if_else node compatibility with historical workflows. by @wangiii in #6186
- fix: Correct environment variable name by @liuzhenghua in #6184
- Create ernie-4.0-turbo-8k-preview by @Littlesheepxy in #6132
- fix document error for "/workflows/:task_id/stop" by @Linij in #6209
- Fix: When editing an Agent, selecting custom tools does not allow filtering by labels. by @Dofine-dufei in #6197
- upgrade deepseek params by @crazywoola in #6215
- chore: remove underscore in util class name and css variable by @iamjoel in #6221
- fix: differentiate prompts fields based on function_calling_type by @qiqizjl in #5880
- refactor(services/tasks): Swtich to dify_config witch Pydantic by @ox01024 in #6203
- Fix/firecrawl parameters issue by @MatriQ in #6213
- refactor(api): switch to dify_config with Pydantic in controllers and schedule by @Tian-Hun in #6237
- fix: model-provider-card-style by @zxhlyh in #6246
- Update ernie_bot.py by @Littlesheepxy in #6236
- fix: remove the maximum length limit of "paragraph" variable by @hjlarry in #6234
- fix: markdown proc will remove image by @tangyoha in #5855
- Fix mermaid render by @jqhr in #6088
- Feat/add zhipu CogView 3 tool by @ox01024 in #6210
- fix: custom tool input number fail by @guogeer in #6200
- Update model provider configuration for Triton Inference Server and X… by @BenjaminX in #6274
- feat(backend): support import DSL from URL by @takatost in #6287
- feat(frontend): workflow import dsl from url by @zxhlyh in #6286
- Update bedrock.yaml by @thibautleaux-kreactive in #6281
- 6282 i18n add support for Italian by @Ivan-Corporation in #6288
- fix: validateColorHex: cannot read properties of undefined (reading 'length') by @ZuzooVn in #6242
- fix: zhipuai validate error when user's api key not support for chatglm_turbo in issue #6289 by @Onelevenvy in #6290
- Feat/delete file when clean document by @JohnJyong in #5882
- bump to 0.6.14 by @takatost in #6294
New Contributors
- @lpdink made their first contribution in #5586
- @jewelzqiu made their first contribution in #6092
- @Littlesheepxy made their first contribution in #6132
- @Linij made their first contribution in #6209
- @Dofine-dufei made their first contribution in #6197
- @qiqizjl made their first contribution in #5880
- @tangyoha made their first contribution in #5855
- @guogeer made their first contribution in #6200
Full Changelog: 0.6.13...0.6.14
v0.6.13
✨ What’s New in v0.6.13? ✨
Hey everyone, we’ve just dropped version v0.6.13, and it’s packed with some routine updates and minor fixes. Let’s dive in:
🚀 New Features
-
Forgot Password Feature by @xielong in #5534
Finally, you can reset your password by sending an email if you forget it. -
Firecrawl Tools: Scrape and Search by @ahasasjeb in #6016
-
Llama 3 and Mixtral Model Options in
ddgo_ai.yaml
by @k8scat in #5979 -
Moonshot and GLM Base Models for Volcengine Provider by @sinomoe in #6029
⚙️ Enhancements
-
Correctly Delete Applications Using Celery Workers by @chazzhou in #5787
More completely remove App associated database records using celery queue. -
WeCom Bot Markdown Message Support by @quicksandznzn in #5791
-
Claude3 Function Calling by @longzhihun in #5889
-
Request Params Field in Jina Reader Tool by XiaoLey in #5610
For additional enhancements and updates, refer to the What's Changed section below.
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 main git pull origin main
-
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
- Update docker-compose.yaml by @takatost in #5745
- fix: slow sql of ops tracing by @takatost in #5749
- Docs/add docker dotenv notes by @guchenhe in #5750
- fix: missing process data in parameter extractor by @Yeuoly in #5755
- fix: workflow trace none type error by @ZhouhaoJiang in #5758
- fix: langsmith message_trace end_user_data session_id error by @ZhouhaoJiang in #5759
- chore: remove port expose in docker compose by @takatost in #5754
- fix: can’t change exec permissions after mounting
docker-entrypoint.sh
for nginx and ssrf-proxy services causing startup failures by @takatost in #5776 - chore: fulfill default value in docker compose yaml by @takatost in #5778
- chore: merge CODE_EXECUTION_API_KEY into SANDBOX_API_KEY in the docker-compose.yaml by @takatost in #5779
- Chore/improve docker compose by @guchenhe in #5784
- [seanguo] modify bedrock Claude3 invoke method to converse API by @longzhihun in #5768
- fix: signin url by @zxhlyh in #5800
- feat: correctly delete applications using Celery workers by @chazzhou in #5787
- fix: ssrf proxy and nginx entrypoint command in docker-compose files by @takatost in #5803
- feat: knowledge used by app can still be removed by @iamjoel in #5811
- feat: Nominatim OpenStreetMap search tool by @chazzhou in #5789
- Feat/add delete knowledge confirm by @JohnJyong in #5810
- fix: ops trace slow db by @ZhouhaoJiang in #5812
- add support oracle oci object storage by @hymvp in #5616
- Enhance: tools wecom bot support markdown message by @quicksandznzn in #5791
- add provision scripts repo link for azure to readme by @nikawang in #5820
- Fix/docker nginx https config by @guchenhe in #5832
- Chore/remove extra docker middleware variables by @guchenhe in #5836
- chore: update i18n for #5811 by @ZuzooVn in #5838
- sync delete app table record when delete app by @JohnJyong in #5819
- chore: Update some type hints in config. by @laipz8200 in #5833
- fix: output variable name may be duplicate by @iamjoel in #5845
- fix:unable to select workplace at the bottom by @fanghongtai in #5785
- feat: update LangfuseConfig host config by @ZhouhaoJiang in #5846
- feat: add export permission by @ZhouhaoJiang in #5841
- Ensure *.sh are LF-style, so that they can be used directly by Docker for Windows by @chjfth in #5793
- fix: react.js error 185 maximum update depth exceeded in streaming responses during conversation by @xy8 in #5849
- fix: not show opening question if the opening message is empty by @iamjoel in #5856
- chore:remove .env.example duplicate key by @quicksandznzn in #5853
- fix:retieval setting document link 404 by @iamjoel in #5861
- doc: docker-compose won't start due to wrong README by @tmokmss in #5859
- Fix/docker env namings by @guchenhe in #5857
- Fix/remove tsne position test by @JohnJyong in #5858
- chore: click area that trigger showing tracing config is too large by @iamjoel in #5878
- refactor(api/core/app/apps/base_app_generator.py): improve input validation and sanitization in BaseAppGenerator by @laipz8200 in #5866
- fix bug : TencentVectorDBConfig Add TENCENT_VECTOR_DB_DATABASE by @quicksandznzn in #5879
- feat: pr template by @crazywoola in #5886
- chore: remove dify SaaS URL in default configs by @takatost in #5888
- docs(api/core/tools/docs/en_US/tool_scale_out.md): Format by markdownlint. by @laipz8200 in #5903
- fix: zhipuai pytest correction by @orangeclk in #5934
- refactor: Create a
dify_config
with Pydantic. by @laipz8200 in #5938 - feat: add claude3 function calling by @longzhihun in #5889
- fix: langfuse logical operator error by @ZhouhaoJiang in #5948
- chore: enchance firecrawl user experience by @iamjoel in #5958
- refactor: optimize-the-performance-of-var-reference-picker by @aixgeek in #5918
- fix: no json output vars in front-page tool by @hjlarry in #5943
- feat: knowledge admin role by @ZhouhaoJiang in #5965
- Chore/remove-unused-code by @laipz8200 in #5917
- refactor(api/app.py): Simplify the retrieval of debug settings. by @laipz8200 in #5916
- fix: Fix some type error in http executor. by @laipz8200 in #5915
- typo: Update README.md by @yikayiyo in #5987
- fix: TENCENT_VECTOR_DB_REPLICAS can be set to 0 by @jianglin1008 in #5968
- feat: add retry mechanism for zhipuai by @orangeclk in #5926
- fix: document truncation and loss in notion document sync by @Aurelius-Huang in #5631
- feat: implement forgot password feature by @xielong in #5534
- fix API tool's schema not support array by @hjlarry in #6006
- Removed firecrawl-py, fixed and improved firecrawl tool by @ahasasjeb in #5896
- fix: update workflow trace query by @ZhouhaoJiang in #6010
- [Feature] Support loading for mermaid. by @jqhr in #6004
- 6014 i18n add support for spanish by @crazywoola in #6017
- fix: add status_code 304 by @opriuwohg in #6000
- feat: add Llama 3 and Mixtral model options to ddgo_ai.yaml...
v0.6.12-fix1
🛠️ v0.6.12-fix1
Warning
Fixed the issue where the WebApp URL was incorrect and the problem where the model and tools icons weren’t showing up after starting from Docker Compose with default .env
.
🎉 Upgrade to new docker compose deployment
Key Changes
-
Persistent Custom Environment Variables: Users can now declare environment variables in .env that remain persistent across deployments. This change ensures that custom configurations are not lost during upgrades or redeployments.
-
Unified Vector Database Services: All vector database services have been consolidated into a single Docker file. Users can switch between different vector databases by modifying the
VECTOR_STORE
environment variable in your local.env
. This simplifies the management of various vdb services and allows for more dynamic deployments. -
Mandatory .env File: Unlike the previous deployment method, the new method requires an [.env] file before running
docker compose up
. Users should start by copying the.env.example
file to create their own.env
file. This step is crucial for configuring the deployment to meet specific needs. -
Legacy Support: The previous deployment files have been moved to a
docker-legacy
directory. These files will no longer be maintained, but they are available for use if needed.
Migrating
For existing users who's customized docker-compose.yaml
, ssrf_proxy/squid.conf
or nginx/conf.d/default.conf
, you may need to modify the corresponding environment variables in .env
to reflect your existing changes.
We are actively seeking feedback from the community to refine and enhance the deployment process. As more users adopt this new method, we will continue to make improvements based on your experiences and suggestions.
How to Get Started
To get started with the new deployment method:
- Ensure you have Docker and Docker Compose installed on your system.
- Navigate to the new
docker
directory. - Copy the
docker/.env.example
file to a new file named.env
and customize it as needed. - Run
docker compose up
to start the services.
We encourage all users to transition to this new method to take advantage of the improved flexibility and configuration options. Your feedback during this beta phase is invaluable and will help us make the deployment process even better.
For detailed configuration options and environment variable settings, refer to the .env.example
file and the Docker Compose configuration files in the docker directory.
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 main git pull origin main
-
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
- add README for new docker/ directory by @guchenhe in #5724
- Chore/set entrypoint scripts permissions by @guchenhe in #5726
- Rename README to README.md by @guchenhe in #5727
- chore: support both $$ and $ latex format by @ZuzooVn in #5723
- fix: couldn't log in or resetup after a failed setup by @takatost in #5739
- fix: app config does not use empty string in the env by @takatost in #5741
- fix: env SMTP_PORT is empty caused err when launching by @takatost in #5742
Full Changelog: 0.6.12...0.6.12-fix1
v0.6.12
✨ What’s New in v0.6.12? ✨
Important
In the current version:
- We have deprecated
pip
as the primary package management tool in favor ofPoetry
for the Dify API service. - We have optimized the self-hosted deployment experience with Docker Compose by adding support for
.env
files and allowing the option to independently select Vector Database at startup.
The previous Docker Compose configuration has been moved to thedocker-legacy
directory.
For more details seeUpgrade to new docker compose deployment
below.
Hey everyone, we’ve got a fresh update for you with v0.6.12, and it’s packed with new features, tools, and improvements. Let’s dive in:
🚀 New Features
- Tracing with LangSmith and Langfuse: Now you can trace your apps traffic with LangSmith and Langfuse, thanks to @ZhouhaoJiang in #5483 and @iamjoel in #5487.
🌟 Read the blog.
-
Undo/Redo for Workflow Editor: Finally, you can undo and redo your actions in the workflow editor by @perzeuss in #3927.
-
Import and Overwrite Workflow DSL: Importing and overwriting workflow DSL is now supported, you can now manage versions indirectly through DSL Export & Import by @takatost in #5511.
-
New Icons: We’ve replaced the old icons with fresh new ones by @zxhlyh in #5412.
-
Hide Workflow Steps: You now have the option to hide workflow steps in WebApp settings by @crazywoola in #5436.
-
Self-Hosting for Firecrawl Tool: The Firecrawl tool now supports self-hosting by @keita69 in #5528.
-
Latex in Chat Messages: Support for displaying Latex in chat messages by @ZuzooVn in #5001.
-
Citations and Attributions: These are now enabled by default by @takatost in #5508.
🛠️ Tools
- JSON Process Tool: Added a new tool for processing JSON by @scotlandowl in #5555.
- Serply Search Tools: Added Serply Web/Job/Scholar/News Search tools for more options by @googio in #5186.
- Novita AI Image Generation Tool: This tool now supports model search, text-to-image, and create tile functionalities by @XiaoLey in #5308.
- Create JSON Message API in Tool: Added an implements for creating JSON messages in Tool response by @hjlarry in #5440.
🤖 Model Support
-
Jina New Pre-defined Rerankers: Including jina-reranker-v2 by @takatost in #5657.
-
Bedrock Command R Models: Added support for these models by @realjustinwu in #4521.
-
Claude-3-5-Sonnet-20240620: Support added for this model by @takatost in #5452 and @soulteary in #5461.
-
Vertex AI Claude-3-5-Sonnet@20240620: Support added by @hellof20 in #5475.
-
Predefined Models for OpenRouter: Added support by @sinomoe in #5494.
-
Spark 4.0: Added support by @leslie2046 in #5688.
🗄️ Vector Database & Storage
- OpenSearch as a Vector Datasource: Support added by @baojingyu in #5322.
- Oracle23ai as a Vector Datasource: Added support by @tmuife in #5342.
- Tencent COS Storage: Support added by @quicksandznzn in #5297.
🏗️ API Service Infrastructures
- Improved Deployment Flow: Added .env to Docker Compose for better deployment by @guchenhe in #4299.
- Pydantic Settings for Config: Introduced for config definition and validation by @bowenliang123 in #5202.
- Poetry for Dependencies: Now supported in the API’s Dockerfile by @bowenliang123 in #5105.
- Removed Pip Support: Pip support for the API service has been removed by @takatost in #5453.
For additional enhancements and updates, refer to the What's Changed section below.
🎉 Upgrade to new docker compose deployment
Key Changes
-
Persistent Custom Environment Variables: Users can now declare environment variables in .env that remain persistent across deployments. This change ensures that custom configurations are not lost during upgrades or redeployments.
-
Unified Vector Database Services: All vector database services have been consolidated into a single Docker file. Users can switch between different vector databases by modifying the
VECTOR_STORE
environment variable in your local.env
. This simplifies the management of various vdb services and allows for more dynamic deployments. -
Mandatory .env File: Unlike the previous deployment method, the new method requires an [.env] file before running
docker compose up
. Users should start by copying the.env.example
file to create their own.env
file. This step is crucial for configuring the deployment to meet specific needs. -
Legacy Support: The previous deployment files have been moved to a
docker-legacy
directory. These files will no longer be maintained, but they are available for use if needed.
Migrating
For existing users who's customized docker-compose.yaml
, ssrf_proxy/squid.conf
or nginx/conf.d/default.conf
, you may need to modify the corresponding environment variables in .env
to reflect your existing changes.
We are actively seeking feedback from the community to refine and enhance the deployment process. As more users adopt this new method, we will continue to make improvements based on your experiences and suggestions.
How to Get Started
To get started with the new deployment method:
- Ensure you have Docker and Docker Compose installed on your system.
- Navigate to the new
docker
directory. - Copy the
docker/.env.example
file to a new file named.env
and customize it as needed. - Run
docker compose up
to start the services.
We encourage all users to transition to this new method to take advantage of the improved flexibility and configuration options. Your feedback during this beta phase is invaluable and will help us make the deployment process even better.
For detailed configuration options and environment variable settings, refer to the .env.example
file and the Docker Compose configuration files in the docker
directory.
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 main git pull origin main
-
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: wrong order of history prompts in ReAct agent mode by @sinomoe in #5236
- fix: embedding job fails using IAM role by @tmokmss in #5252
- feat(Tools): Add Serply Web/Job/Scholar/News Search tool for more options by @googio in #5186
- feat: Added hindi translation i18n by @Yash-1511 in #5240
- fix: correct typos in the icons for microsoft by @kurokobo in #5243
- fix: modal z-index cleanup by @chazzhou in #5234
- chore: add icon in .idea by @Gallardot in #5259
- fix: run agent with Vertex AI Gemini models by @hellof20 in #5260
- fix: respect the interface language specified by the user on the activation success screen by @kurokobo in #5258
- fix: visioin model always with low quality by @rerorero in #5253
- fix: casting non-string type value for tool parameter options by @bowenliang123 in #5267
- Feat: support delete account by @JzoNgKVO in #5208
- fix: copyright with latest time by @crazywoola in #5271
- Fix: z-index of delete account modal by @JzoNgKVO in #5277
- Fixed wrong /text-to-audio curl example by @from2001 in #5286
- fix: add event handler to delete the site when the related app deleted by @kurokobo in #5282
- fix: typo and check by @crazywoola in #5287
- Dalle3 add seed by @charli117 in #5288
- fix(core): Reorde...
v0.6.11
✨ What’s New in v0.6.11? ✨
Hey everyone, we’ve got a fresh update for you! Version 0.6.11 is here, and it’s packed with new features, enhancements, and fixes. Let’s dive into what’s changed:
🚀 New Features
📜 Knowledge
-
🔥 Firecrawl Support: Use Firecrawl as a "Sync from website" solution in Knowledge by @iamjoel in #5226 and @JohnJyong @nickscamara @guchenhe in #5232.
🚀 Workflow
-
Note Support: Add notes directly into your workflows to enhance documentation and readability when editing or reviewing shared DSLs by @zxhlyh in #5164.
🤖 Model Support
- Jina: Support for Jina-CLIP-v1 embedding model by @sinomoe in #5146.
- Zhipu: Added GLM4 new models and Zhipu embedding-2 by @orangeclk in #5089.
- ERNIE-4.0-8K-Latest: Support for ERNIE-4.0-8K-Latest by @iamsk in #5216.
- Doubao: Support for Doubao LLM function calling by @sinomoe in #5100.
- Hunyuan: Support for Hunyuan LLM models by @xielong in #5013.
- SiliconFlow: Added support for SiliconFlow by @orangeclk in #5129.
- Novita.ai: Added Novita.ai as a model provider by @jasonhp in #4961.
🛠️ Tools
- DuckDuckGo Tools: Added DuckDuckGo image search, translate, and AI chat tools by @hjlarry in #5074.
- Feishu multi-dimensional table Tools: Added Feishu multi-dimensional table operation tools by @hgnulb in #5213.
🗄️ Vector DB
- TiDB Vector: Support for TiDB vector by @Weaxs in #4588.
- Chroma Vector Store: Support for Chroma vector store by @bowenliang123 in #5015.
- Tencent Vector DB: Support for Tencent vector DB by @quicksandznzn in #3568.
☁️ AWS
- EKS Pod Identity: Upgraded boto3 library to support EKS Pod Identity by @nanasi880 in #5064.
- IAM Role for Bedrock: Allow using IAM Role for Bedrock by @tmokmss in #5188.
- AWS S3 IAM Check: Added AWS S3 IAM check by @JohnJyong in #5174.
🏗️ API Service Infrastructures
-
Poetry Support: Initial support for the Poetry build tool by @MatriQ in #4513.
⚠️ In the next version, we will deprecate pip as the primary package management tool for Dify api service, currently Poetry and pip coexist. -
Poetry in CI: Use Poetry as the default build system for dependency installation in CI jobs by @bowenliang123 in #5088.
-
Pydantic Migration: Modernized validation by migrating Pydantic from 1.x to 2.x by @bowenliang123 in #4592.
Other Enhancements
- Editor User Permission: New editor user permission profile by @chazzhou in #4435.
- Memory Messages Limit: Set default memory messages limit to infinite by @takatost in #5002.
- DOCX Image Handling: Improved handling of external images when extracting DOCX images by @JohnJyong in #5024.
- Dataset Delete Endpoint: Added dataset delete endpoint by @perzeuss in #5048.
- Knowledge Retrieval: Optimized knowledge retrieval performance by batching dataset queries by @wangiii in #4917.
- Jina Tools: Added optional API key, proxy server, and bypass cache parameters to Jina tools by @XiaoLey in #5197.
- HTTP Request Fix: Fixed HTTP request delete method not working by @th3n00b13 in #4975.
For additional enhancements and updates, refer to the What's Changed section below.
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 main branch:
git checkout main git pull origin main
-
Update Python dependencies:
-
If using pip
cd api pip install -r requirements.txt
-
If using poetry
cd api poetry install
-
-
Then, let's run the migration script:
-
If using pip
flask db upgrade
-
If using poetry
cd api poetry run python -m flask db upgrade
-
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- change "Import from text file" to "Import from file" by @harrywang in #4935
- feat: pricing page add llm load balancing info by @iamjoel in #4942
- Optimize knowledge retrieval performance by batching dataset quries. by @wangiii in #4917
- fix: end node limit in next step by @zxhlyh in #4945
- fix: import error in web/app/components/header/account-setting/model-provider-page/declarations.ts by @crazywoola in #4944
- chore: fix indention violations by applying E111 to E117 ruff rules by @bowenliang123 in #4925
- fix: missing dataset patch parameters in settings modal by @chazzhou in #4901
- fix: missing iterator in task pipeline by @Yeuoly in #4948
- fixing a bug of handling header row when parsing xls file, and tune xls/xlsx parsing result to be more structured by @yc-huang in #3600
- fix: duckduckgo search does not work by @hjlarry in #4949
- feat: support tidb vector by @Weaxs in #4588
- Typo in Knowledge settings by @WeepsDanky in #4958
- fix some tidb bugs by @JohnJyong in #4960
- add meta.doc_id index for tidb by @JohnJyong in #4963
- feat: add create tenant command by @takatost in #4974
- chore: rename vdb tests for PGVector and PGvectoRS by @bowenliang123 in #4973
- fix: gemini timeout error by @ZhouhaoJiang in #4955
- fix: llm selector position is incorrect in not workflow app by @iamjoel in #4982
- feat: support login by given mail by @iamjoel in #4991
- fix: add handling for non-string type in variable template parser by @Yeuoly in #4996
- fix: typo in sd3 by @Yeuoly in #5000
- feat: set default memory messages limit to infinite by @takatost in #5002
- fix: some base models cannot be selected in Azure OpenAI Service setting page by @doufa in #4985
- fix: modal z-index and cleanup by @chazzhou in #4978
- Fix/azure blob new version by @JohnJyong in #5004
- Fix: z-index in header by @JzoNgKVO in #5017
- deal the external image when extract docx image by @JohnJyong in #5024
- Fix language setting not success by @doufa in #5023
- fix(style): some style issues by @HiChen404 in #5029
- feat: feature modal style by @zxhlyh in #5032
- improve: generalize vector factory classes and vector type by @bowenliang123 in #5033
- 🔧 fix docker-compose ssrf_proxy service WARNING: You should probably remove '::/0' from the ACL named 'all' by @takuya-o in #5005
- fix: update presence_penalty configuration for wenxin AI ernie-4.0-8k and ernie-3.5-8k models by @XiaoLey in #5039
- fix: issue where an error occurs when invoking TTS without selecting a voice by @takatost in #5046
- fix: wrong link to web app repo in chatflow mode by @perzeuss in #5062
- feat: add dataset delete endpoint by @perzeuss in #5048
- chore: update maas model provider description by @sinomoe in #5056
- 🔧 Fix(docker/volumes/ssrf_proxy/squid.conf): The squid process on ssrf_proxy docker service crashes at startup by @takuya-o in #5050
- build: initial support for poetry build tool by @MatriQ in #4513
- Arabic README.md by @ra2230 in #5078
- fix: dependency package versions are not synchronized to requirements.txt by @takatost in #5084
- feat: add glm4 new models and zhipu embedding-2 by @orangeclk in #5089
- Fix: infinite loading not work when message is too short by @JzoNgKVO in #5075
- fix: autoHeightTextarea dimensions in Firefox by @ZuzooVn in #4891
- fix: Google HL Parameter for SearchApi by @ugyuji in https://git...
v0.6.10
✨ What’s New in v0.6.10? ✨
This update primarily focuses on enhancing system stability and improving user experience. Key updates include:
🚀 New Features
- Workflow Variable Aggregator: Now supports grouping by @zxhlyh in #4811.
- Document Rename Support: You can now rename documents in datasets by @iamjoel in #4732 and @JohnJyong in #4915.
- Instruction in Classifier Node: Added support for using variables in instructions by @iamjoel in #4710 and @JohnJyong in #4913.
- Tool Tags: You can now define tags in tool YAML files by @Yeuoly in #4763.
- NVIDIA NIM: Added support for NVIDIA NIM by @joshua20231026 in #4882.
- Anthropic Claude3 Models: Added to Google Cloud Vertex AI by @hellof20 in #4870.
- Baichuan Model Support: Added support for Baichuan3 Turbo, Baichuan3 Turbo 128k, and Baichuan4 by @xielong in #4762.
- Ernie Model Update: Updated the Ernie model by @Weaxs in #4756.
- Vanna.AI Tool: Added Vanna.AI as a built-in tool by @luxmus in #4878.
- SearchApi Tools: Added new SearchApi tools by @SebastjanPrachovskij in #4648.
- Opportunistic TLS for SMTP: Added a flag for opportunistic TLS in SMTP by @chazzhou in #4794.
- Ollama Keep Alive: Added a keep-alive parameter for Ollama by @Yash-1511 in #4655.
- Model Load Balancing: Added support for load balancing backend models by @takatost in #4927 and @nite-knite in #4926.
⚙️ Enhancements
- SD-WebUI API Update: Updated API parameters to v1.9.3 by @lingfengchencn in #4798.
- Pandas Upgrade: Bumped pandas from 1.x to 2.x by @bowenliang123 in #4820.
- Question Classify Node: Now supports using variables in instructions by @iamjoel in #4710.
For additional enhancements and updates, refer to the What's Changed section below.
Update Guide
Docker compose deployments:
-
Get the latest code from the main branch:
git checkout main git pull origin main
-
Go to the next step and update to the latest image:
cd docker 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 main git pull origin main
-
Update Python dependencies:
cd api pip install -r requirements.txt
-
Then, let's run the migration script:
flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- feat: add América/São Paulo tz by @crazywoola in #4701
- Add workflow translations for ja-JP by @Hirosa0 in #4698
- fix: key-value-table styles by @HiChen404 in #4678
- fix: Input fields in the model provider's settings modal do not switch sequence via keyboard navigation (Tab key) by @doufa in #4662
- fix: the new node name is generated based on the original node when duplicating by @hjlarry in #4675
- fix: workflow as tool garbled by @Yeuoly in #4707
- style: update VarPanel to use whitespace-pre-wrap for value display by @xuzuodong in #4684
- add error msg for hit test by @JohnJyong in #4704
- fix: retrieval value greater more than 1 caused ui problem by @iamjoel in #4718
- fix: Correct context size for banchuan2-53b and banchuan2-turbo by @xielong in #4721
- Show tool i18n name on chat pannel by @hibernate2011 in #4724
- fix: workflow run sequence number slow sql by @takatost in #4737
- fix: optimize sticky header styles z-index in tools - ProviderList component by @chazzhou in #4746
- fix: Corrected schema link in model_runtime's README.md by @xielong in #4757
- style: the 'all' of add tool panel should contain workflow tools by @hjlarry in #4755
- Fix/4742 ollama num gpu option not consistent with allowed values by @crazywoola in #4751
- Add WORKFLOW_CALL_MAX_DEPTH env var. by @majian159 in #4713
- style: fix annotation panel display misalignment by @hjlarry in #4750
- fix: confusing chart description by @Yeuoly in #4760
- feat: support baichuan3 turbo, baichuan3 turbo 128k, and baichuan4 by @xielong in #4762
- fix: incorrect workflow max call depth by @Yeuoly in #4759
- feat: update ernie model by @Weaxs in #4756
- feat: support define tags in tool yaml by @Yeuoly in #4763
- fix organize agent's history messages without recalculating tokens by @zeroameli in #4324
- feat: Add logging warning when MAIL_TYPE is not set by @Kota-Yamaguchi in #4771
- fix: in tool and http node of iteration can not show item var correctly by @iamjoel in #4791
- chore: improve node user experience by @iamjoel in #4792
- Add SearchApi tools by @SebastjanPrachovskij in #4648
- chore: node help link by @zxhlyh in #4795
- fix: some filed in model param selector has no left spacing by @iamjoel in #4803
- feat: show more usage info in billing page by @iamjoel in #4808
- add: i18n: update korean by @qkdxorjs1002 in #4813
- feat: workflow variable aggregator support group by @zxhlyh in #4811
- feat: opportunistic tls flag for smtp by @chazzhou in #4794
- fix: remove redundant props by @lesenelir in #4787
- update sd-webui api parameters to v1.9.3 by @lingfengchencn in #4798
- fix: revision styles for workflow by @lawvs in #4087
- fix: app_count of dataset is error when apps was deleted by @DomKing in #4810
- Feat/i18n workflow by @crazywoola in #4819
- chore: Enable case-insensitive search for large models by @xielong in #4817
- fix: workflow app run by @zxhlyh in #4831
- add: ollama keep alive parameter added. issue #4024 by @Yash-1511 in #4655
- fix 'NoneType' and new ContentType supported. by @lichengwu in #4818
- chore: cleanup tools, remove useless code by @Yeuoly in #4833
- chore: increase workflow max steps to 500 by @Yeuoly in #4835
- fix: status query not stop when leaving document embedding detail page by @doufa in #4754
- test: triggering tests on changes and allow cancelling in-progress CI test jobs by @bowenliang123 in #4743
- test: CI test for db migration scripts on changes by @bowenliang123 in #4739
- chore: skip explicit installing jinja2 as testing dependency by @bowenliang123 in #4845
- chore: fix invalid escape sequences by applying W605 rule by @bowenliang123 in #4851
- Bugfix: Vertex AI vision model not support image by @hellof20 in #4853
- chore: upgrade sandbox by @Yeuoly in #4839
- fix: Incorrect argument types in createChatMessage by @dar0xt in #4861
- Fixed workflow tts feature audition by @charli117 in #4867
- fix: update npm version to fix Incorrect argument types in createChatMessage by @iamjoel in #4865
- chore: add issue link tempate for IDEA by @bowenliang123 in #4866
- add-nvidia-mim by @joshua20231026 in #4882
- improve: generalize tool parameter converter by @bowenliang123 in #4786
- chore: optimize nvidia nim credential schema and info by @takatost in #4898
- feat: added Anthropic Claude3 models to Google Cloud Vertex AI by @hellof20 in #4870
- chore: remove unused code and class in text splitter by @bowenliang123 in #4864
- chore(deps): bump azure-storage-blob from 12.9.0 to 12.13.0 in /api by @dependabot in #4695
- chore: separate style checks into multiple jobs triggering on file changes by @bowenliang123 in #4876
- chore: update page.tsx by @eltociear in #4897
- fix azure blob token expire by @JohnJyong in #4911
- chore: modify tools/JinaReader label to Jina by @doufa in https://github.com/langgenius/dif...
v0.6.9 Workflow as Tool
✨ Dify v0.6.9 has landed! ✨
We’ve been working on enhancing our workflow capabilities lately. Today we’ve got some news:
☄️ Publish workflow as a tool
You can now publish your AI workflow in Dify as a reusable tool. This allows for integration with new agents and other workflows, eliminating redundant efforts.
dify-0-6-9.mp4
🧩 Two new workflow nodes and one node improvement
🔄 Iteration
Make sure the input is an array. Each item in the array will be processed sequentially by the iteration node until all items are addressed. For instance, if you require a lengthy article, simply input several headlines. This will result in an article containing a paragraph for each headline, freeing you from the need for complex prompt orchestration.
💥 Parameter Extractor
Uses LLM to extract structured parameters from natural language, making tool use and HTTP requests in workflows a breeze.
🔗 Variable Aggregator
Improved Variable Assigner supports more flexible variable selection. Additionally, the user experience is enhanced by improving the way node connections are made.
🖼️ Brand new tool management page
We’ve updated our UI to be more intuitive and easier to use, with improved classification.
🚀 Other New Features
- GPT-4o for Azure: Added support for GPT-4o on Azure by @leslie2046 in #4568.
- Vertex AI Support: Added support for Vertex AI by @patryk20120 in #4586 and @miendinh in #4641.
- Gemini Flash: Added Gemini Flash by @QuietRocket in #4616.
- Doubao LLM and Embedding Models: Added support for Doubao LLM and embedding models by @sinomoe in #4431.
- Amazon Titan V2: Added support for Amazon Titan V2 and updated pricing for Titan V1 by @longzhihun in #4643.
- Ernie-Character-8k of Wenxin: New LLM Ernie-Character-8k added by @jiaqianjing in #4448.
- Claude Stream Tool Call: Enhanced Claude stream tool call by @Yeuoly in #4469.
- Chat Custom Disclaimer: You can add custom disclaimers in WebApp by @patryk20120 in #4306.
- MiniMax Mode Sensitive Info Masking: Added parameter config for masking sensitive info in MiniMax mode by @zhangever in #4294.
- Jina Search & Reader CSS Selectors: Added CSS selectors for Jina Search & Reader by @rennokki in #4523.
- Images and Tables Extraction from DOCX: Now supports extracting images and tables from DOCX files by @JohnJyong in #4619.
⚙️ Enhancements
- RAG Document Segmentation: Configurable max segmentation tokens length for RAG documents using an environment variable by @rainchen in #4375.
- WORKFLOW_MAX_EXECUTION_TIME: Added environment variable for max workflow execution time by @majian159 in #4632.
- Image Preview URL expire Env Variable: Added environment variable for time signature of image preview url by @patryk20120 in #4650.
🛠️ Bug Fixes
- General Fixes: Various bug fixes and improvements to enhance stability and performance.
For additional enhancements and updates, refer to the What's Changed section below.
Update Guide
Docker compose deployments:
-
Get the latest code from the main branch:
git checkout main git pull origin main
-
Go to the next step and update to the latest image:
cd docker 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 main git pull origin main
-
Update Python dependencies:
cd api pip install -r requirements.txt
-
Then, let's run the migration script:
flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- Create README_KR.md by @leejoo0 in #4364
- fix: delete end node by @zxhlyh in #4372
- fix: requests timeout by @Yeuoly in #4370
- improve the code readability of http_executor node by @hjlarry in #4360
- fix: Jinja switch not aligned in vertical direction by @iamjoel in #4374
- feat: Use Romanian & other langs in QA by @rennokki in #4205
- fix the issue of MILVUS_DATABASE has no effect. by @kerlion in #4353
- fix: add timeout to SMTPClient to prevent worker blocking by @chazzhou in #4352
- docs: Add CONTRIBUTING_JA.md by @shutootaki in #4383
- Fix: setup google-storage client by @kotamat in #4296
- FIX: fix the temperature value of ollama model by @Yash-1511 in #4027
- Fix HTTP REQUEST NODE is always waiting but endpoint have responsed by @hjlarry in #4395
- chore: remove model as tool by @Yeuoly in #4409
- fix: workflow delete edge when node is selected by @zxhlyh in #4414
- Optimize webscraper by @charli117 in #4392
- chore: remove useless code in knowledge_retrieval_node by @VoidIsVoid in #4412
- Custom sqlalchemy database uri scheme is supported by @xtuhcy in #4367
- Remove useless code by @GarfieldDai in #4416
- feat: support doubao llm and embeding models by @sinomoe in #4431
- fix: wrong category name in examples of question classifier completion prompt by @hanfangyuan4396 in #4421
- fix: self node type shouldn't show in the picker by @HiChen404 in #4445
- feat: add pre ping for sqlalchemy configuration by @takatost in #4454
- fix the wrong env variable AZURE_BLOB_CONTAINER_NAME by @JohnJyong in #4455
- add llm: ernie-character-8k of wenxin by @jiaqianjing in #4448
- fix: workflow add next node from knowledge retrieval node by @zxhlyh in #4467
- improve: exract Code Node provider for each supported scripting language by @bowenliang123 in #4164
- enhance: claude stream tool call by @Yeuoly in #4469
- fix: cot gent duplicate messages by @Yeuoly in #4470
- fix: cot agent token usage is empty by @sinomoe in #4474
- fix: app logo by @zxhlyh in #4483
- fix: copy button is always displayed on the chat logs page by @vikeychen in #4488
- chore: update docker-compose.yaml by @eltociear in #4492
- Fix: HTTP request node PARAMS parameters, if ':' appears in the value… by @Wang-HL in #4403
- Update docker-compose.yaml- New DEBUG variable by @Theysua in #4476
- Feat/chat custom disclaimer by @patryk20120 in #4306
- chore: skip unnecessary key checks prior to accessing a dictionary by @bowenliang123 in #4497
- fix:modify spelling errors: lanuage ->language in schema.md by @fanghongtai in #4499
- fix: files data missed for message by @MatriQ in #4512
- chore: sort categories in recommended app service response by @BenjaminX in #4498
- fix: read llm node's first prompt role by optional chaining by @sinomoe in #4510
- feat:Provide parameter config for mask_sensitive_info of MiniMax mode… by @zhangever in #4294
- fix: workaround db migration error when adding custom_disclaimer column to recommended_apps by @bowenliang123 in #4518
- Add UNSTRUCTURED_API_KEY env support by @majian159 in #4369
- allow to config max segmentation tokens length for RAG document using environment variable by @rainchen in #4375
- improve: generalize transformations and scripts of runner and preloads into TemplateTransformer by @bowenliang123 in #4487
- chore: apply and fix flake8-bugbear lint rules by @bowenliang123 in #4496
- feat: Jina Search & Jina Reader CSS selectors by @rennokki in #4523
- chore: update yfinance dependency to version 0.2.40 by @BenjaminX in #4517
- Bump oss2 to 2.18.5 for AuthV4 support by @denverdino in #4425
- oauth2 supports. by @GarfieldDai in #4551
- add qdrant metadata.doc_id index by @JohnJyong in #4559
- feat:add gpt-4o for azure by @leslie2046 in #4568
- chore: Hide the copy button when there is no content to copy by @hjlarry in #4546
- Refactor part of the ProviderManager code to improve readability by @hjlarry in #4524
- chore(api): U...
v0.6.8 GPT-4o is available now in Dify
✨ What’s New in v0.6.8? ✨
Hey folks, we've rolled out version 0.6.8 of our platform and it's packed with some new features, enhancements, and fixes. Here’s a quick rundown of what’s new:
🚀 New Features
-
Introduced GPT-4 Turbo for Azure by @leslie2046 in #4287.
-
New models hosted on NVIDIA added by @joshua20231026 in #4303.
-
Added Jinja2 template prompt support for LLM node by @Yeuoly in #3968 and @iamjoel in #4260.
-
Code node with upgraded network support and additional Python dependencies by @Yeuoly in #4231.
And we also removed the need for SYS_ADMIN permission for the sandbox service.
-
Added support for Google Storage by @KiyotakaMatsushita in #4266.
-
Korean language support (ko-KR) by @qkdxorjs1002 in #4333.
⚙️ Enhancements
-
Optimized workflow graph sync by @takatost in #4251 and @zxhlyh in #4250.
Now, you won't lose any workflow graph data when switching between multiple tabs in the browser. It's instantly synced to the latest draft version!
-
Hide node detail outputs and run details in web apps to streamline interfaces by @takatost in #3954 and @iamjoel in #4289.
Before, the tracing of the workflow might expose the log details of the nodes to the end-users, now we have disabled it.
-
Increased max steps to 50 in workflows by @takatost in #4252.
-
Question classifier prompt optimization for better accuracy by @JohnJyong in #4262.
After optimization, the classification results will be more accurate.
-
Optimized install form for better user experience by @TinsFox in #4154.
🛠️ Bug Fixes
- Fixed workflow zoom in/out shortcuts by @zxhlyh in #4283.
- Addressed an issue where web apps did not show number type input fields by @iamjoel in #4292.
For additional enhancements and updates, refer to the What's Changed section below.
Update Guide
Docker compose deployments:
-
Get the latest code from the main branch:
git checkout main git pull origin main
-
Go to the next step and update to the latest image:
cd docker 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 main git pull origin main
-
Update Python dependencies:
cd api pip install -r requirements.txt
-
Then, let's run the migration script:
flask db upgrade
-
Finally, run API server, Worker and Web frontend Server again.
What's Changed
- refactor: install form by @TinsFox in #4154
- fix: add missing translations by @crazywoola in #4212
- feat: workflow interaction by @zxhlyh in #4214
- fix: workflow end node deletion by @zxhlyh in #4240
- chore: workflow sync with hash by @zxhlyh in #4250
- feat: Add draft hash check in workflow by @takatost in #4251
- feat: increase max steps to 50 in workflow by @takatost in #4252
- correct comparison chart by @guchenhe in #4254
- Feat/vector db pgvector by @vaayne in #3879
- question classifier prompt optimize by @JohnJyong in #4262
- feat: support LLM jinja2 template prompt by @Yeuoly in #3968
- fix: system default model name length (#4245) by @GalvinYang in #4246
- feat: llm support jinia fe by @iamjoel in #4260
- fix: miss usage of os.path.join for URL assembly and add tests on yarl by @bowenliang123 in #4224
- fix: remove unexpected zip and add FlipForward arrow icon by @lawvs in #4263
- feat: Add storage type and Google Storage settings to worker by @KiyotakaMatsushita in #4266
- fix(frontend): 🔧 add privacy policy spaces by @patryk20120 in #4277
- fix: hook dependency by @TinsFox in #4242
- fix: do nothing if switch to current app by @cainiaokan in #4249
- fix: deutsch edit app by @YidaHu in #4270
- fix: workflow zoomin/out shortcuts by @zxhlyh in #4283
- fix(Backend:http_executor): 🔧 prevent splitting JSON data as v… by @patryk20120 in #4276
- Add rerank model type for LocalAI provider by @thiner in #3952
- feat:add gpt-4-turbo for azure by @leslie2046 in #4287
- feat: hide node detail outputs in webapp & installed app in explore by @takatost in #3954
- feat: hide run detail in webapps and installed apps by @iamjoel in #4289
- Update docker-compose.yaml by @rechardwang in #4288
- fix: webapps not show number type input field by @iamjoel in #4292
- fix: align versions of react typing packages by @nite-knite in #4297
- fix: chatflow run progress problem by @iamjoel in #4298
- feat: support copy run text result in debug panel in workflow by @iamjoel in #4300
- fix: text generation app not show copy button by @iamjoel in #4304
- Update README.md to remove outdated badge by @guchenhe in #4302
- add-some-new-models-hosted-on-nvidia by @joshua20231026 in #4303
- fix: minimax streaming function_call message by @Weaxs in #4271
- chore: update gmpy2_pkcs10aep_cipher.py by @eltociear in #4314
- improve: code upgrade by @Yeuoly in #4231
- fix typo by @hjlarry in #4329
- feat: i18n: add korean language (ko-KR) by @qkdxorjs1002 in #4333
- add yi models by @orangeclk in #4335
- fix: handleUpdateWorkflowCanvas is not a function by @sinomoe in #4343
- feat: gpt-4o by @Yeuoly in #4346
- version to 0.6.8 by @takatost in #4347
New Contributors
- @GalvinYang made their first contribution in #4246
- @KiyotakaMatsushita made their first contribution in #4266
- @thiner made their first contribution in #3952
- @rechardwang made their first contribution in #4288
- @hjlarry made their first contribution in #4329
- @qkdxorjs1002 made their first contribution in #4333
Full Changelog: 0.6.7...0.6.8