- Notifications
You must be signed in to change notification settings - Fork13k
api
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
parent directory.. | ||||
Important
In the v0.6.12 release, we deprecatedpip
as the package management tool for Dify API Backend service and replaced it withpoetry
.
Start the docker-compose stack
The backend require some middleware, including PostgreSQL, Redis, and Weaviate, which can be started together using
docker-compose
.cd ../dockercp middleware.env.example middleware.env# change the profile to other vector database if you are not using weaviatedocker compose -f docker-compose.middleware.yaml --profile weaviate -p dify up -dcd ../api
Copy
.env.example
to.env
cp .env.example .env
Generate a
SECRET_KEY
in the.env
file.bash for Linux
sed -i"/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env
bash for Mac
secret_key=$(openssl rand -base64 42)sed -i''"/^SECRET_KEY=/c\\SECRET_KEY=${secret_key}" .env
Create environment.
Dify API service usesPoetry to manage dependencies. First, you need to add the poetry shell plugin, if you don't have it already, in order to run in a virtual environment. [Note: Poetry shell is no longer a native command so you need to install the poetry plugin beforehand]
poetry self add poetry-plugin-shell
Then, You can execute
poetry shell
to activate the environment.Install dependencies
poetry env use 3.12poetry install
Run migrate
Before the first launch, migrate the database to the latest version.
poetry run python -m flask db upgrade
Start backend
poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug
Start Difyweb service.
Setup your application by visiting
http://localhost:3000
...If you need to handle and debug the async tasks (e.g. dataset importing and documents indexing), please start the worker service.
poetry run python -m celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail,ops_trace,app_deletion
Install dependencies for both the backend and the test environment
poetry install -C api --with dev
Run the tests locally with mocked system environment variables in
tool.pytest_env
section inpyproject.toml
poetry run -P api bash dev/pytest/pytest_all_tests.sh