0.12.0
v0.12.0
✨ What’s New in v0.12.0? ✨
[!Important]
Heads up! Starting with this version, we'll no longer support Python 3.10. Make sure to upgrade to Python 3.11 or 3.12 to stay current with our updates.
Hey everyone! We’ve been busy fine-tuning the platform and packing in some new features in version 0.12.0. Let’s see what’s new and improved:
🚀 Enhanced File Support for Workflow/Chatflow LLM Node and Chat/Agent
We’re excited to introduce the new file support capabilities for LLM Node and Basic Chat/Agent! This update significantly enhances multi-modal capabilities and smart document processing, providing more flexibility and power for your application development. Here are the key highlights:
File Variable Support in LLM Node
LLM Node now supports directly referencing File and Array File variables in Prompts, unlocking greater possibilities for developers. For example, you can upload multiple file variables (such as PDFs and images) and have the model collaboratively handle complex tasks, like summarizing report content or extracting key data. Multi-file support makes workflow design more efficient and seamless!
[!Tip]
- File Support Scope: The file types supported by the model may be more limited than the types allowed for upload. Be sure to read your model provider's official documentation to ensure that uploaded files can be processed correctly.
- Document Handling in Unsupported Models: If the model does not natively support processing document files, you will still need to use the Document Extractor for extracting content.
- Filtering Unsupported Files: To handle unsupported file types, consider using List Operator or IF-ELSE to screen them, ensuring smooth workflows.
- Relation to Vision Features: File support operates independently of the Vision toggle. As long as the model supports Vision capabilities, you can use files as input.
New Document-Type Support for Basic Chat and Agent
Basic Chat and Agent now include a Document toggle. If the model supports processing document-type files, you can enable this feature. For instance, you can upload a PDF report and let the Agent automatically analyze market data or assess content value, making such workflows simpler and smarter.
Enhanced Multi-Modal Capabilities
The new version extends support for multi-modal tasks. For example, you can upload audio files and have the model perform emotional analysis. This combination of text, audio, and file processing capabilities allows you to build more diverse and rich application scenarios.
⚙️ Improvements
OpenAI o1 Streaming Support: We now support streaming output for OpenAI o1-preview and o1-mini, thanks to @laipz8200 in #10890.
Performance Optimization: The
WeightRerankRunnerlogic has been optimized to achieve constant time complexity, thanks to @yihong0618 in #10849.UI Enhancements: We’ve made the Table of Contents panel in the API document page collapsible, giving you greater control over your workspace, thanks to @hjlarry in #10875.
JSON Schema for Gemini Models: Added support for JSON schema integration, ensuring smoother alignment with Gemini models, thanks to @hjlarry in #10835.
Redis Clusters: Our
ext_redis.pynow includes support for Redis clusters, expanding flexibility for data management, implemented by @liuhaoran1212 in #9789.Enhanced Custom Notes: You can now further enhance custom notes for increased expressiveness, courtesy of @hjlarry in #8885.
That’s the scoop for v0.12.0! Until next time, keep exploring and innovating! 🌟
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).bakGet the latest code from the main branch
git checkout main git pull origin mainStop the service,Command, please execute in the docker directory
docker compose downBack up data
tar -cvf volumes-$(date +%s).tgz volumesUpgrade services
docker compose up -d
Source Code deployments
Stop API server, Worker and Web frontend Server.
Get the latest code from the release branch:
git checkout 0.12.0Update Python dependencies:
cd api poetry installThen, let's run the migration script:
poetry run flask db upgradeFinally, run API server, Worker and Web frontend Server again.
What's Changed
- fix: script rendering in message by @zxhlyh in https://github.com/langgenius/dify/pull/10807
- feat: AnalyticDB vector store supports invocation via SQL. by @lpdink in https://github.com/langgenius/dify/pull/10802
- chore: update .gitignore to include mise.toml by @BenjaminX in https://github.com/langgenius/dify/pull/10778
- fix: correct typo in ETL type comment in .env.example by @simonmysun in https://github.com/langgenius/dify/pull/10822
- refactor: improve handling of leading punctuation removal by @zandko in https://github.com/langgenius/dify/pull/10761
- doc: add clarification for length limit of init password by @simonmysun in https://github.com/langgenius/dify/pull/10824
- feat: add TOC to app develop doc by @hjlarry in https://github.com/langgenius/dify/pull/10799
- feat: Knowledge-base-api-get-post-method-text-error-#10836 by @dajianguo in https://github.com/langgenius/dify/pull/10837
- fix: close child modal on log drawer close by @kimjion in https://github.com/langgenius/dify/pull/10839
- fix: upload file component support multiple by @zxhlyh in https://github.com/langgenius/dify/pull/10817
- Fix: crash of workflow file upload by @JzoNgKVO in https://github.com/langgenius/dify/pull/10831
- style: refactor fetch and context by @AkaraChen in https://github.com/langgenius/dify/pull/10795
- Support Video Proxy and TED Embedding by @taowang1993 in https://github.com/langgenius/dify/pull/10819
- feat: support json schema for gemini models by @hjlarry in https://github.com/langgenius/dify/pull/10835
- fix: better WeightRerankRunner run logic use O(1) and delete unused code by @yihong0618 in https://github.com/langgenius/dify/pull/10849
- fix httpx doesn't support stream parameter by @JohnJyong in https://github.com/langgenius/dify/pull/10859
- fix tongyi embedding endpoint return None output by @JohnJyong in https://github.com/langgenius/dify/pull/10857
- Feat/add langsmith dotted order by @ZhouhaoJiang in https://github.com/langgenius/dify/pull/10856
- Encode invitee email in the invitation link by @nht1206 in https://github.com/langgenius/dify/pull/10842
- fix: download some remote files raise error by @hjlarry in https://github.com/langgenius/dify/pull/10781
- Fix the situation where output_tokens/input_tokens may be None in response.usage by @AAlexDing in https://github.com/langgenius/dify/pull/10728
- feat: add a minimal separator between pinned apps and unpinned apps in the explore page by @kurokobo in https://github.com/langgenius/dify/pull/10871
- feat: make toc panel can collapse by @hjlarry in https://github.com/langgenius/dify/pull/10875
- feat: support function call for ollama block chat api by @GeorgeCaoJ in https://github.com/langgenius/dify/pull/10784
- feat: enhance the custom note by @hjlarry in https://github.com/langgenius/dify/pull/8885
- feat: admin can also change member role by @cuckootan in https://github.com/langgenius/dify/pull/10651
- Fix : Add a process to fetch the mime type from the file name for signed url in remote_url by @kitotakumi in https://github.com/langgenius/dify/pull/10872
- fix: update email validation regex to allow periods in local part by @Montaserz in https://github.com/langgenius/dify/pull/10868
- fix: tool's file input display string by @hjlarry in https://github.com/langgenius/dify/pull/10887
- fix(http_request): allow content type
application/x-javascriptby @laipz8200 in https://github.com/langgenius/dify/pull/10862 - feat: support custom tool upload file by @hjlarry in https://github.com/langgenius/dify/pull/10796
- ext_redis.py support redis clusters --- Fixes #9538 by @liuhaoran1212 in https://github.com/langgenius/dify/pull/9789
- fix: aws presign url is not workable remote url by @ybalbert001 in https://github.com/langgenius/dify/pull/10884
- Fix/input-value-type-in-moderation by @laipz8200 in https://github.com/langgenius/dify/pull/10893
- Support streaming output for OpenAI o1-preview and o1-mini by @laipz8200 in https://github.com/langgenius/dify/pull/10890
- fix: explicitly use new token when retrying ssePost after refresh by @llinvokerl in https://github.com/langgenius/dify/pull/10864
- Gitee AI embedding tool by @fchange in https://github.com/langgenius/dify/pull/10903
- fix: handle redis authentication for healthcheck command by @shisaru292 in https://github.com/langgenius/dify/pull/10907
- Fix : Add a process to fetch the mime type from the file name for signed url in remote_url #10872 version2 by @kitotakumi in https://github.com/langgenius/dify/pull/10908
- doc: fix better doc for api develop, droping dead hint by @yihong0618 in https://github.com/langgenius/dify/pull/10906
- fix: refactor all 'or []' and 'or {}' logic to make code more clear by @yihong0618 in https://github.com/langgenius/dify/pull/10883
- Add googlenews tools from rapidapi by @Tuyohai in https://github.com/langgenius/dify/pull/10877
- fix image files not deleted on indexing_estimate #9541 by @wy96f in https://github.com/langgenius/dify/pull/10798
- feat : Add Japanese translations for API documentation: chat, advanced-chat, completion, and workflow by @Kota-Yamaguchi in https://github.com/langgenius/dify/pull/10927
- fix: chat history might be empty in log detail view by @xuzuodong in https://github.com/langgenius/dify/pull/10905
- Update parse.py to handle empty list result by @PedroGomes02 in https://github.com/langgenius/dify/pull/10915
- fix: default max_chunks set to 1 as other providers by @yihong0618 in https://github.com/langgenius/dify/pull/10937
- fix(gpt-4o-audio-preview): Remove the vision feature by @laipz8200 in https://github.com/langgenius/dify/pull/10932
- fix weight rerank of knowledge retrieval by @AkisAya in https://github.com/langgenius/dify/pull/10931
- fix: external dataset missing score_threshold_enabled by @hanqingwu in https://github.com/langgenius/dify/pull/10943
- Resolve 8475 support rerank model from infinity by @LastHopeOfGPNU in https://github.com/langgenius/dify/pull/10939
- Feat: support json output for bing-search by @xu-song in https://github.com/langgenius/dify/pull/10904
- fix: fix bugs of frontend-workflow panel operator by @marvin-season in https://github.com/langgenius/dify/pull/10945
- feat: add cURL import for http request node by @hjlarry in https://github.com/langgenius/dify/pull/8656
- fix: tiny lora bug found by mypy by @yihong0618 in https://github.com/langgenius/dify/pull/10959
- fix: unstructured io credential environment variables missing by @fdb02983rhy in https://github.com/langgenius/dify/pull/10953
- feat: add gpt-4o-2024-11-20 by @agungbesti in https://github.com/langgenius/dify/pull/10951
- feat: slidespeak slides generation by @fdb02983rhy in https://github.com/langgenius/dify/pull/10955
- refactor: split manual from auto generation css variables by @WTW0313 in https://github.com/langgenius/dify/pull/10961
- chore: Added the new gemini exp-1121 and learnlm-1.5 models by @CXwudi in https://github.com/langgenius/dify/pull/10963
- feat: Check and compare the DSL version before import an app by @laipz8200 in https://github.com/langgenius/dify/pull/10969
- chore: translate i18n files by @github-actions in https://github.com/langgenius/dify/pull/10970
- Feat: update icon and Divider components by @douxc in https://github.com/langgenius/dify/pull/10975
- fix(model): make sure AppModelConfig.model_dict returns a dict. by @laipz8200 in https://github.com/langgenius/dify/pull/10972
- feat: Allow using file variables directly in the LLM node and support more file types. by @laipz8200 in https://github.com/langgenius/dify/pull/10679
- feat: add a meta(mac) ctrl(windows) key by @crazywoola in https://github.com/langgenius/dify/pull/10978
- chore(app_dsl_service): Downgrade DSL Version by @laipz8200 in https://github.com/langgenius/dify/pull/10979
- feat: support LLM process document file by @hjlarry in https://github.com/langgenius/dify/pull/10966
- chore: update base image to Python 3.12 in Dockerfile by @laipz8200 in https://github.com/langgenius/dify/pull/10358
- fix: rules should not be None for in by @yihong0618 in https://github.com/langgenius/dify/pull/10977
- chore (dep): bump gevent from v23 to v24 for better support for Python 3.11 and 3.12 by @bowenliang123 in https://github.com/langgenius/dify/pull/10387
- fix: fish audio wrong validate credentials interface by @yihong0618 in https://github.com/langgenius/dify/pull/11019
- chore(devcontainer): upgrade Python version to 3.12 in Dockerfile and configuration by @fujita-h in https://github.com/langgenius/dify/pull/11017
- fix: gitlab file url not correctly encoded by @AkisAya in https://github.com/langgenius/dify/pull/10996
- Fixing #11005: Incorrect max_tokens in yaml file for AWS Bedrock US Cross Region Inference version of 3.5 Sonnet v2 and 3.5 Haiku by @kazuhisa-wada in https://github.com/langgenius/dify/pull/11013
- feat: Add support for TEI API key authentication by @kenwoodjw in https://github.com/langgenius/dify/pull/11006
- doc: Updated Python version requirements to match English version by @fujita-h in https://github.com/langgenius/dify/pull/11015
- Fix typo by @johnpccd in https://github.com/langgenius/dify/pull/11024
- fix: uuid not import bug by @yihong0618 in https://github.com/langgenius/dify/pull/11014
- fix: wrong convert in PromptTemplateConfigManager by @yihong0618 in https://github.com/langgenius/dify/pull/11016
- chore: bump minimum supported Python version to 3.11 by @bowenliang123 in https://github.com/langgenius/dify/pull/10386
- fix: json parse err when http node send request by @litterGuy in https://github.com/langgenius/dify/pull/11001
- fix error with xinference tool calling with qwen2-instruct and add timeout retry setttings for xinference by @cyflhn in https://github.com/langgenius/dify/pull/11012
- feat(file_factory): Standardize custom file type into known types by @laipz8200 in https://github.com/langgenius/dify/pull/11028
- fix: query will be None if the query_prompt_template not exists by @laipz8200 in https://github.com/langgenius/dify/pull/11031
- fix: Japanese typo by @TakakiMoriguchi in https://github.com/langgenius/dify/pull/11034
- fix: Validate file only when file type is set to custom by @laipz8200 in https://github.com/langgenius/dify/pull/11036
- fix: wrong param name by @mazyu36 in https://github.com/langgenius/dify/pull/11039
- make tool parameters parsing compatible with the response of glm4 model in xinference provider when function tool call integerated by @cyflhn in https://github.com/langgenius/dify/pull/11049
- Fix Deepseek Function/Tool Calling by @taowang1993 in https://github.com/langgenius/dify/pull/11023
- ISSUE=11042: add tts model in siliconflow by @senseb in https://github.com/langgenius/dify/pull/11043
- Feat/add admin check by @KMerdan in https://github.com/langgenius/dify/pull/11050
- fix the wrong LINDORM_PASSWORD variable name in docker-compose.yaml by @AlwaysBluer in https://github.com/langgenius/dify/pull/11052
- chore: update chromadb version to 0.5.20 by @yihong0618 in https://github.com/langgenius/dify/pull/11038
- fix: slidespeak text output is not the download link by @fdb02983rhy in https://github.com/langgenius/dify/pull/10997
- fix: llm node do not pass sys.query in chatflow app init by @iamjoel in https://github.com/langgenius/dify/pull/11053
- feat(i18n): update Japanese translation for login page by @nomi3 in https://github.com/langgenius/dify/pull/10993
- fix(workflow_entry): Support receive File and FileList in single step run. by @laipz8200 in https://github.com/langgenius/dify/pull/10947
- Improvement: update api doc of workflow by @JzoNgKVO in https://github.com/langgenius/dify/pull/11054
- fix: better path trigger for vdb and fix the version by @yihong0618 in https://github.com/langgenius/dify/pull/11057
- feat: add cookie management by @iamjoel in https://github.com/langgenius/dify/pull/11061
- fix: ignore empty outputs in Tool node by @PedroGomes02 in https://github.com/langgenius/dify/pull/10988
- fix: WorkflowNodeExecution.created_at may be earlier than WorkflowRun.created_at by @laipz8200 in https://github.com/langgenius/dify/pull/11070
- chore: bump version to 0.12.0 by @laipz8200 in https://github.com/langgenius/dify/pull/11056
Full Changelog: https://github.com/langgenius/dify/compare/0.11.2...0.12.0