dify插件代码

Yeuoly 5f3e23f436 Merge pull request #114 from langgenius/fix/correct-cli-guide 4 mēneši atpakaļ
.github fce99c8dc7 fix: Prevent Docker Hub login during pull requests 4 mēneši atpakaļ
.script 81c3deb4fa feat: installation script (#14) 6 mēneši atpakaļ
.vscode ba80dcc78d readme (#68) 5 mēneši atpakaļ
cmd b3f389d37a fix: Update links in Python plugin guide to point to the correct schema definition documentation 4 mēneši atpakaļ
docker fb903d6b8d fix: add PATH to uv installation command (#90) 4 mēneši atpakaļ
docs 309142acf1 bump: cli version (#24) 6 mēneši atpakaļ
internal 937dfad510 Merge pull request #104 from langgenius/fix/plugin-active-log 4 mēneši atpakaļ
pkg bc4c60f93e fix: respect resolution settings for vision sent from api 4 mēneši atpakaļ
tests b19140ca23 refactor: optimize plugin declaration caching and encoding (#34) 5 mēneši atpakaļ
.env.example 1d3342e730 fix: enhance env.example (#65) 5 mēneši atpakaļ
.gitignore 2f8d22fcc6 add ide config to .gitignore (#18) 6 mēneši atpakaļ
LICENSE 41ff75a976 LICENSE (#42) 5 mēneši atpakaļ
README.md ba80dcc78d readme (#68) 5 mēneši atpakaļ
dify.rb 309142acf1 bump: cli version (#24) 6 mēneši atpakaļ
entrypoint.sh 6ba6c9ace7 add entrypoint for service 7 mēneši atpakaļ
go.mod d5d12a0589 feat: add patch mechanism for Python plugin SDK memory leak (#55) 5 mēneši atpakaļ
go.sum d5d12a0589 feat: add patch mechanism for Python plugin SDK memory leak (#55) 5 mēneši atpakaļ

README.md

Dify Plugin Daemon

Overview

Dify Plugin Daemon is a service that manages the lifecycle of plugins. It's responsible for 3 types of runtimes:

  1. Local runtime: runs on the same machine as the Dify server.
  2. Debug runtime: listens to a port to wait for a debugging plugin to connect.
  3. Serverless runtime: runs on a serverless platform such as AWS Lambda.

Dify api server will communicate with the daemon to get all the status of plugins like which plugin was installed to which workspace, and receive requests from Dify api server to invoke a plugin like a serverless function.

All requests from Dify api based on HTTP protocol, but depends on the runtime type, the daemon will forward the request to the corresponding runtime in different ways.

  • For local runtime, daemon will start plugin as the subprocess and communicate with the plugin via STDIN/STDOUT.
  • For debug runtime, daemon wait for a plugin to connect and communicate in full-duplex way, it's TCP based.
  • For serverless runtime, plugin will be packaged to a third-party service like AWS Lambda and then be invoked by the daemon via HTTP protocol.

For more detailed introduction about Dify plugin, please refer to our docs https://docs.dify.ai/plugins/introduction.

Development

Run daemon

Firstly copy the .env.example file to .env and set the correct environment variables like DB_HOST etc.

cp .env.example .env

Attention that the PYTHON_INTERPRETER_PATH is the path to the python interpreter, please specify the correct path according to your python installation and make sure the python version is 3.11 or higher, as dify-plugin-sdk requires.

We recommend you to use vscode to debug the daemon, and a launch.json file is provided in the .vscode directory.

LICENSE

Dify Plugin Daemon is released under the Apache-2.0 license.