Skip to content

Releases: langgenius/dify

v1.3.0

23 Apr 08:50
1.3.0
e9aedc7
Compare
Choose a tag to compare

🌟 What's New in v1.3.0 🌟

Hey tech fam, welcome to version 1.3.0! We've been grinding to bring in some slick enhancements, bug fixes, and new capabilities. Let’s dig into what’s freshly brewed:

🚀 New Features

image

  • Structured Output in LLM Node: We've introduced structured output support for the LLM Node. This means your language models can now return neatly organized and easily processable data. Backend implementation by @Nov1c444 in #17877 and frontend magic by @iamjoel in #17994 ensure this feature is seamless and powerful for developers.
    Check out our intro video for more details: Dify's Structured Output: Make AI Agent chat with API easier

  • Never Miss a Plugin Update: Our new feature ensures you're always in the loop. When a new version of a plugin drops, you'll see a clear indicator right in the UI. This keeps your environment up-to-date and running smoothly, thanks to @Yeuoly in #17695.

  • Token Counting Made Easy: We've tweaked the default token counting rules. Now, if your provider doesn't return token usage, we'll default to using 0. However, if you'd like to estimate using the tokenizer, you can set PLUGIN_BASED_TOKEN_COUNTING_ENABLED=true. Heads up, this might impact performance, detailed by @laipz8200 in #17706.

  • Workflow Export Delight: Ever wanted to share your workflow effortlessly? You can now export it as an image with the slick new feature from @ACAne0320 in #17904.

  • Mermaid Analysis Gets Smarter: Optimization magic was done on Mermaid by @charli117 in #18089 for all you diagram enthusiasts out there.

🛠️ Enhancements

  • Python Package Manager Upgrade: We made a significant switch from poetry to uv as our Python package manager. This speeds up operations, minimizes merge conflicts, and streamlines our development process. Huge thanks to @bowenliang123 for leading this transition in #16317.

  • Slick Shortcuts & Indicators: Consistent keyboard shortcut support and handy visual indicators have been rolled into all app creation dialogs thanks to @ACAne0320 in #17138. Speed and efficiency now go hand in hand.

  • Observability on Steroids: Integrated OpenTelemetry for better observability in workflows by @TedaLIEz in #17627 and beefed it up with HTTP metrics in HTTP response handling.

  • Type Safety Surge: Massive improvements on type safety in components like PluginList by @samuel871211 in #17498. Our internals are as tight as ever!

🐛 Bug Fixes

  • Style & Layout Wrinkles Ironed: Various layout and style improvements across components to improve readability and consistency, mostly spearheaded by @ZeroZ-lab and pals.

  • Fixing the Fixables: Squashed bugs such as the pesky workflow run panel resizing issue and a couple of others like clickjacking prevention thanks to @hjlarry and @iamjoel.

  • Error-Free Conversations: Fixed the conversation log issue that could throw a 500 error. Clean data for sweet conversation flow is the norm again.

🌐 Language & Locale Updates

  • Japanese Touch-Ups: Some timely translation updates and locale param support by @t-daisuke for plugins. Quick ‘Yoro-shiku’ to our Japanese community!

  • German Date Format Tweak: Corrected an unsupported date format issue, courtesy of @haocheng6 ensuring German precision.

🔧 Chores & Docs Love

  • Git Workflow Optimization: Speedier git checkouts by shaving off unnecessary layers — kudos to @bowenliang123 in #18103 for the efficiency boost.

That’s a wrap, people! Enjoy exploring v1.3.0's new dimensions and as always, stay curious and keep building. Cheers! 🚀✨


Upgrade Guide

Docker Compose Deployments

  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. 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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.3.0
  3. Update Python dependencies:

    cd api
    uv sync
  4. Then, let's run the migration script:

    uv run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

Read more

v1.2.0

09 Apr 09:23
1.2.0
2c2efe2
Compare
Choose a tag to compare

🚀 What’s New in v1.2.0? 🚀

Hello community! We’re excited to share our v1.2.0 update with you—it's packed with impressive new features, enhancements, and of course, some good ol' bug fixes. Sit back, sip your coffee, and let's dive into what's new!

🎉 Highlight of the Release

  • New Workflow Loop Node: A huge shoutout to @Woo0ood, @arkunzz, @Gevtolev and @zxhlyh for dropping this game-changer in #14863, #17268 and #17273! The Loop Node feature maximizes efficiency in automation by allowing you to iterate over items in your workflows seamlessly. This is a big step forward in letting you do more with less. Kudos to the development team for making this happen!

🌟 New Features

  • Childchunk API Added: Thanks to @ZeroZ-lab in #16094, we've introduced the childchunk API to enhance your workload flexibility.

  • OceanBase Hybrid Search: Courtesy of @hsiong in #16652, this feature integrates hybrid search capabilities within OceanBase, providing more robust query options.

  • Webapp Input Flexibility: Webapp now allows input changes after a conversation starts, by @JzoNgKVO in #16901.

  • Langfuse LLM Node: Input and output support are enhanced by @ZhouhaoJiang in #16924.

  • Tablestore Vector Database Support: By @wanttobeamaster in #16601—it's like giving your data superpowers!

  • WaterCrawl.dev Integration: Thanks to @amirasaran in #16396, this is now available as a new knowledge base provider.

  • Plugin Daemon OSS Env Config: By @quicksandznzn in #17663, enhancing your plugin management.

🛠️ Enhancements & Bug Fixes

  • Metadata Fixes & Optimizations: We've got metadata variable value fixes by @JohnJyong in #16665 and metadata filter improvements from various contributors. Your data management is smoother than ever!

  • UI/UX Improvements: Whether it’s fixing layout issues on mobile (thanks, @LeeeeeeM in #16793!) or improving text spacing on charts (@ACAne0320, #16894), we’re committed to a slicker experience.

  • Multilingual Support: Added jp_ja for the knowledge API by @crazywoola and supported Tablestore vector database—a shout-out to our international users.

  • UI Consistency Tweaks: Little UI adjustments for a big impact, like updating border radius for dropdowns and other forms, thanks to our vigilant community contributors.

  • Security & Efficiency: Fixes like the provider credentials load error by @liuzhenghua ensure the platform's robust performance. Also, optimizing the database workflow app log index has been another focus area.

  • Additional Fixes: Addressing multiple translation gaps, account errors, and something as specific as the Function's Name Mismatch by @hyongtao-db—keeping us refined!

  • Education API Introduction: By @GareArc in #17168, we’re aiming to broaden horizons with educational integrations.

🏗️ Miscellaneous

  • Code Quality & Documentation: We've cleaned up typos, added unit tests, and brought in a sparkle to our codebases for VDB, ensuring smooth sailing for devs and users!

In conclusion, this release is about empowering you with flexibility and reliability, from the all-new Loop Node to a windfall of other enhancements. Thanks to everyone contributing to shaping the future with our open-source spirit. Keep pushing the envelope and happy innovating! 👐


Upgrade Guide

Docker Compose Deployments

  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. 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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.2.0
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

Read more

v1.1.3

24 Mar 10:49
1.1.3
1be0d26
Compare
Choose a tag to compare

✨ What’s New in v1.1.3? ✨

Here's what's been cooking in the latest update—v1.1.3. We've got some slick new features, essential fixes, and handy refinements to enhance your experience. Let's dive right in:

⚙️ Enhancements

  • APP Filtering Harmonization: Made the logic between App filtering and creation consistent for a seamless UX by @jiangbo721 in #16079.

  • ESLint Cache Enabled: Code quality meets speed as ESLint cache support is enabled, reducing linting time by @karamaru-alpha in #16570.

  • Workflow Adjustments: You can now add a related-id in iteration nodes for more dynamic workflows by @kenwoodjw in #16255.

🛠️ Bug Fixes

  • Optimize Expired Workflow Run Query: Fixed inefficient queries by adding a date filter and limiting the results to improve query performance by @Yeuoly in #16491.

  • Document Dataset Creation: Resolved the missing weight_type issue in documents created within datasets by @LiuBodong in #16503.

  • Inputs on iOS Devices: Squashed bugs causing errors when passing inputs on iOS by @mrdotdotdot in #16534.

  • Variable Aggregator Node in Workflows: Fixed issue with variable-aggregation nodes failing checks when using group mode by @LeeeeeeM in #16439.

  • XSS Sanitization: Strengthened your security with SVG sanitization to prevent XSS attacks by @iamjoel in #16606.

  • UI/UX Fixes: Addressed various style and interaction issues, like sidebar width on mobile (#16629) and app detail panel in JP (#16620) by @JzoNgKVO.

  • Sandbox Security Upgrade: Upgrade the Dify sandbox to avoid JavaScript code injection.

This update focuses on making the platform not only more efficient but also easier and secure to use. Enjoy the improvements, and let's keep pushing the boundaries together!


Upgrade Guide

Docker compose deployments

  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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.1.3
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

  • refactor: add OpikDataTrace instance builder. by @laipz8200 in #16444
  • feat: Skip Redis operations if RateLimit is disabled by @acelyc111 in #12226
  • fix: workflow file add related-id in iteration node by @kenwoodjw in #16255
  • feat: cleanup free tenants expired data like messages/conversations/workflow_runs/workflow_node_executions by @Yeuoly in #16490
  • use REDIS_PORT to replace 6379 in celery config by @jjzhoujun in #16182
  • fix: optimize query for expired workflow runs by adding date filter and limiting results by @Yeuoly in #16491
  • fix:weight_type missing when create document in dataset by @LiuBodong in #16503
  • fix: the error occurring when passing inputs on iOS devices and some … by @mrdotdotdot in #16534
  • fix: update chatbot doc link at create app page by @douxc in #16479
  • fix: fix the app max_active_requests been overwritten bug by @acelyc111 in #16513
  • feat: Make the logic of APP filtering and creation the same by @jiangbo721 in #16079
  • fix: fix variable-aggregator cannot pass node check in group mode by @LeeeeeeM in #16439
  • fix: update app mode display text for advanced-chat type by @WTW0313 in #16578
  • chore: enable eslint cache by @karamaru-alpha in #16570
  • fix: workflow if-else node variable tag style by @zxhlyh in #16583
  • fix: transition in simple select causes page crash by @iamjoel in #16587
  • Fix: web app sidebar cannot close when long title conversation existed by @JzoNgKVO in #16593
  • feat: datasets openapi list segements support paged resp by @StrayDragon in #16603
  • feat: add datasets detail context and provider for improved data vali… by @WTW0313 in #16451
  • fix: sanitizer svg to avoid xss by @iamjoel in #16606
  • feat: add openGauss PQ acceleration feature by @chenhuan0728 in #16432
  • fix: cancel marketplace debounced search when clear search keywords by @zxhlyh in #16614
  • Fix: show feedback status in conversation by @JzoNgKVO in #16615
  • Fix: style issue of app detail panel in jp by @JzoNgKVO in #16620
  • Fix: style of sidebar with in mobile by @JzoNgKVO in #16629
  • chore: update release trigger to include all tags in build-push workflow by @laipz8200 in #16631
  • fix: update retrieval configuration to correctly handle reranking mod… by @WTW0313 in #16641
  • fix: fix inner API workspace Account.query error. by @islenbo in #16630
  • chore: bump the package version to 1.1.3 by @laipz8200 in #16612
  • fix metadata filter not affect in keyword-search and fulltext-search by @JohnJyong in #16644

New Contributors

Full Changelog: 1.1.2...1.1.3

v0.15.5

24 Mar 09:06
8e75eb5
Compare
Choose a tag to compare

🔒 Security Patch in v0.15.5

Hey everyone, this version bumps us up to v0.15.5, and it focuses on tightening security:

🔐 Important Fix

  • Sandbox Code Injection: Upgrade Dify Sandbox to avoid the code injection. We strongly recommend that all users currently using versions below 0.15.5 update to this version, or you can only update the sandbox.
  • XSS Vulnerability: Sanitize SVG to prevent XSS attacks by @iamjoel in #16608.

What this means: We've updated our SVG handling to ensure that potentially malicious scripts can't take advantage of your interaction with our SVG elements. This patch fortifies our platform against cross-site scripting vulnerabilities, making sure your application usage remains safe and secure.

Stay secure, and happy coding! 🚀


What's Changed

Full Changelog: 0.15.4...0.15.5

v1.1.2

21 Mar 10:05
bf90d34
Compare
Choose a tag to compare

✨ What’s New in v1.1.2? ✨

Thanks for keeping up with Dify! This patch delivers some important fixes to boost the stability and security of your operations.

Important

This update includes a critical fix for an XSS vulnerability. Cloud users are not affected by this issue.

This version disables the SVG rendering in the message. If you are using our Community Edition and meet all of the following conditions, we recommend that you upgrade to the current version immediately:

  1. Your service is exposed to the internet.
  2. You provide external WebApps.
  3. You have not configured SERVICE_API_URL and FILES_URL on different domains.

🛠️ Fixes & Improvements

  • Security: Resolved an XSS vulnerability related to rendering SVGs, closing a security gap with help from @iamjoel in #16433.

  • Knowledge Base Cleanup: Fixed an issue where the OpenAPI interface couldn't delete metadata, thanks to @StrayDragon in #16365. Now clearing out old or unnecessary metadata is straightforward.

  • GitHub Plugin Installation: Resolved an import DSL issue that blocked the installation of the GitHub plugin, thanks to @junjiem in #16362. This patch ensures smoother plugin integrations.

  • Metadata Migration Check: Added a check for built-in fields during old metadata migration to ensure completeness and accuracy, contributed by @JohnJyong in #16371. Your metadata migrations have stepped up in robustness.

  • Literal Syntax Error Handling: Fixed errors related to literal_eval function usage, courtesy of @svcvit in #16297. These changes help keep your code from breaking due to syntax evaluation.

This update is all about refining the edges and enhancing the user experience—an essential pit-stop on our road to new features and capabilities. Keep those contributions and feedback coming, and let's make Dify even better, together! 🚀


Upgrade Guide

Docker compose deployments

  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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.1.2
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

New Contributors

Full Changelog: 1.1.1...1.1.2

v0.15.4

21 Mar 10:02
1ca1598
Compare
Choose a tag to compare

✨ What’s New in v0.15.4? ✨

Thanks for keeping up with Dify! This patch delivers some important fixes to boost the stability and security of your operations.

Important

This update includes a critical fix for an XSS vulnerability. Cloud users are not affected by this issue.

This version disables the SVG rendering in the message. If you are using our Community Edition and meet all of the following conditions, we recommend that you upgrade to the current version immediately:

  1. Your service is exposed to the internet.
  2. You provide external WebApps.
  3. You have not configured SERVICE_API_URL and FILES_URL on different domains.
  4. You are still using a version lower than 1.0.0

🛠️ Fixes & Improvements

  • Security: Resolved an XSS vulnerability related to rendering SVGs, closing a security gap with help from @iamjoel in #16437.

This update is all about refining the edges and enhancing the user experience—an essential pit-stop on our road to new features and capabilities. Keep those contributions and feedback coming, and let's make Dify even better, together! 🚀

v1.1.1

20 Mar 10:20
85160b0
Compare
Choose a tag to compare

✨ What’s New in v1.1.1? ✨

We've got some cool updates and fixes in v1.1.1 to keep things running smoother and shinier. Let's dive in:

⚙️ Enhancements

  • Addressed a metadata service API issue so everything stays in sync, thanks to @JohnJyong in #16211.
  • Solved metadata and retrieval bugs with Weaviate by @JohnJyong in #16230.
  • Fixed weight rerank mode information not showing up when creating datasets by @JohnJyong in #16190.
  • Ensured retrieval configurations with empty embedding models still play nice, thanks to another assist from @JohnJyong in #16181.
  • Sorted out some code linting issues, courtesy of @jiangbo721 in #16164.
  • Solved the MAX_TOOLS_NUM environment value issue in dify-web docker by @0fv in #16241.
  • Fixed conversation reset inputs so they function as expected by @ModyQyW in #16233.

Big thanks to all contributors for making v1.1.1 even better! Keep diving into those projects and creating cool things!


Upgrade Guide

Docker compose deployments

  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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.1.1
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

New Contributors

Full Changelog: 1.1.0...1.1.1

v1.1.0

18 Mar 12:02
ac80c04
Compare
Choose a tag to compare

🚀 What's New in v1.1.0

Welcome to v1.1.0! This release packs a punch with significant improvements, enhancements, and the introduction of some much-awaited features. Here's what we've got:

🚀 New Features

  • Metadata Filtering for Knowledge Retrieval by @JohnJyong in #15982 and #16063. Metadata filtering enhances the retrieval and accuracy of relevant data in knowledge bases by leveraging custom metadata attributes. This makes finding the right data quicker and more precise. To get more information, please read our blog.
    image

🛠️ Enhancements

  • Improved File Upload Handling in manager.py by @laipz8200 in #15714.
  • IF-ELSE Node Improvements: Handles missing optional file variables seamlessly by @lrhan321 in #15693.
  • Enhanced Integration of pg_bigm for Keyword Search in pgvector by @utsumi-fj in #13876.
  • Increased Maximum Number of Parallelism Branches by @XiaoBa-Yu in #15964.
  • HTTP request node now supports skipping SSL verification by @sho-takano-dev in #15664.

🐞 Bug Fixes

  • Fixed SQL Injection Vulnerabilities in Vector DB by @JohnJyong in #16096. We recommend users upgrade to this version immediately to mitigate risks.
  • Resolved Conditional Branches That Disrupted Streaming Output by @Nov1c444 in #14065.
  • Fixed Trace Return Null Issues Causing Page Crashes by @iamjoel in #15588.
  • Corrected Missing Translations by @crazywoola in #4212.
  • Improved Handling of Unicode in Keyword Search Queries by @kenwoodjw in #15522.
  • Fixed Dataset Re-Ranking Mode to Handle Optional Fields Gracefully by @JohnJyong in #15643.
  • Resolved File Upload Method Validation Issues for Non-Image Files in Workflows by @lrhan321 in #15932.
  • Fixed Nginx Template Environment Variable Replacement Issues by @LiuBodong in #15651.
  • Improved InputNumber Component Behavior by @ACAne0320 in #16044.

Miscellaneous

This release aims to strengthen our platform's reliability, security, and usability, and we are keen on hearing your feedback. Happy coding with v1.1.0!


Upgrade Guide

Docker compose deployments

  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 the API server, Worker, and Web frontend Server.

  2. Get the latest code from the release branch:

    git checkout 1.1.0
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run the API server, Worker, and Web frontend Server again.


What's Changed

Read more

v1.0.1

11 Mar 10:52
46036e6
Compare
Choose a tag to compare

🎉 Welcome to v1.0.1! 🎉

We've leveled up to v1.0.1, bringing a bunch of improvements, new features, and fixes. Here’s the lowdown without the bloat:

🛠️ Fixes & Improvements

  • Cache Mechanics for Plugin Models: Reducing redundancy through improved caching, championed by @Yeuoly in #14968 and #14898.

  • Connectors & Workflows: Improved data source handling: Fixed iteration logs, edges in copied nodes, and one-step run operations with updates in #14855 by @iamjoel, #12692 by @ihaichao, and #14724 by @zxhlyh.

  • Visual & UX Refinements: Interface upgrades across the board with zoom handling, dataset selection revamps, and fullscreen toggles improved by @WTW0313, @marsDes, and others.

  • Stability & Reliability: Tackled pesky bugs—be it with document extracts, chat components, or execution metadata—to make your experience smooth. Solutions from @hjlarry, @jiangbo721, and more.

You might have already met these errors, we fixed them in this version.

core.plugin.manager.exc.PluginDaemonInternalServerError: PluginDaemonInternalServerError: no available node, plugin not found
Error: PluginDaemonInternalServerError: killed by timeout
<Site at 0x7ffaec0a8c50> is not bound to a Session
TypeError: expected string or bytes-like object, got 'NoneType'
...

🌐 Internationalization

  • New Translations: German translations for README & CONTRIBUTING, thanks to @Walpurga03, and Bangla README added by @warhammer327.

For a more detailed dive into each update, feel free to browse through the PRs. We’re all about improving and adapting, so keep the feedback coming. Now go explore what’s new, and as always, happy coding! 🚀


Upgrade Guide

Docker compose deployments

  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 release branch:

    git checkout 1.0.1
  3. Update Python dependencies:

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

    poetry run flask db upgrade
  5. Finally, run API server, Worker and Web frontend Server again.


What's Changed

Read more

v1.0.0

28 Feb 07:27
c0358d8
Compare
Choose a tag to compare

🎉 Introducing Dify Plugins 🎉

We are glad to share that we're launching Dify v1.0.0.

Plugins are modular components that extend AI applications with plug-and-play simplicity. Now you can assemble external services and custom functionalities with your Dify apps effortlessly.

image

What's new

  • We've developed a plugin system, a standard for Dify that lets users create plugins with the suffix .difypkg. By installing different plugin packages, you can add various capabilities to Dify.
  • Through this system, we've decoupled tools and models that can be expanded from Dify, enabling you to install them in a truly plug-and-play manner.
  • We've introduced a new Agent node in Workflow, where the agent's behavior can now be defined by plugins. This means Dify is no longer limited to built-in strategies like CoT; you can define your own agent strategies.
  • We've also introduced a new type of plugin called Extension, which is a custom service hosted within Dify. You can customize this service's code through plugins to handle external Webhook events.
  • We've launched the Dify Marketplace, a centralized platform where plugins can be freely shared, allowing users to publish and download different plugins.

Docker Deployment

v1.0.0 supports Docker compose deployment. You can start Dify using the following commands:

git checkout 1.0.0
cd ./docker
docker compose -f docker-compose.yaml up -d

Plugin Migration

  • !! Note, if you are upgrading from an older version to v1.0.0, you need to execute some basic migration steps.
    The first step in upgrading to v1.0.0 is to install the tools and models used in your current environment into the new plugin environment, ensuring plugin installation is completed before database migration, run the following command:
poetry run flask extract-plugins --workers=20

This command extracts all models and tools used in the current environment. The workers parameter determines the number of parallel processes during extraction; adjust it according to your needs.
The final result will be saved in the plugins.jsonl file, which contains the plugin information for all workspaces in the current Dify instance.
Ensure your network is functioning properly and can access https://marketplace.dify.ai, then run the following command:

poetry run flask install-plugins --workers=2

This command will download and install all necessary plugins into the latest environment.

Database Migration

After completing the basic plugin installation process, follow the standard Dify upgrade procedure to update the database schema to the latest version.

poetry run flask db upgrade

Dify v1.0 includes compatibility for old data. You should be able to operate normally, but for better future compatibility, run the following data migration command once you're sure you won't revert to an older version:

poetry run flask migrate-data-for-plugin

This command will prefix existing model and tool vendors in the database with langgenius, such as converting openai to langgenius/openai/openai. This operation may affect the functioning of the older Dify version, so back up your database before running this command to prevent unwanted issues.

For more detailed migration docs, you can refer to https://docs.dify.ai/development/migration/migrate-to-v1

Chore Changes From v0.15.3

🚀 New Features & Enhancements

  • Pan & Zoom: The MiniMap now comes equipped with pan and zoom support thanks to @KatyTao.
  • Unified Reasoning Model: Standardized the think tag with <think></think> by @junjiem for enhanced compatibility.
  • Docker SSRF Settings: Fine-tuned SSRF-related timeout settings in Docker by @gubinjie.
  • HNSW Vector Index: Now available for TiDB vector store with TiFlash, optimizing how you handle large datasets by @bowenliang123.
  • Efficient Retrieval Service: We’ve doubled down on efficiency, making data retrieval lightning fast by @charli117.

🛠️ Performance Optimizations & Bug Fixes

  • Logical Optimization: Integration of short-circuit evaluation to optimize logical conditions by @llinvokerl.
  • SQL Queries Reduction: Improved message loading speeds while slicing SQL queries by @hundredwz.
  • Streamlined Workflow: Simplified the workflow by @jiangbo721.

🌟 New Contributors

A warm welcome to our new contributors! They’ve made their first contributions to our project:

Full Changelog: For a comprehensive overview of all changes, check out the full changelog here.

Thanks for being a part of our journey, your contributions and support make this project better with every release! 🚀

🎉 Welcome to Dify v1.0.0! 🎉

Hey Dify community! It’s been a wild ride, but here we are at v1.0.0! First and foremost, a massive shoutout to every contributor, both new and veteran. Your hard work has brought us to this major milestone. 🚀 Now, let’s dive into the highlights of this landmark release.

🌟 A Warm Welcome to New Contributors

We’re ecstatic to welcome so many new names contributing to our project! Your initiatives have enriched this ecosystem. Whether it was translating i18n files, squashing bugs, refining algorithms, or anything in between — you made a difference.

🔍 Full Changelog

Missed the nitty-gritty? You can find the complete list of changes from 0.15.3 to 1.0.0 here.

With Dify hitting v1.0.0, our commitment to providing open-source LLMOps solutions continues stronger than ever. Here’s to many more releases filled with innovation and community spirit! Cheers! 🥂