Update README.md (#5228)

This commit is contained in:
takatost 2024-06-14 22:31:01 +08:00 committed by GitHub
parent ef6034abfd
commit 8da035aac6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -18,30 +18,104 @@
sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env
``` ```
4. Create environment. 4. Create environment.
- Anaconda
If you use Anaconda, create a new environment and activate it Dify API service uses [Poetry](https://python-poetry.org/docs/) to manage dependencies. You can execute `poetry shell` to activate the environment.
```bash
conda create --name dify python=3.10 > Using pip can be found [below](#usage-with-pip).
conda activate dify
``` 6. Install dependencies
- Poetry
If you use Poetry, you don't need to manually create the environment. You can execute `poetry shell` to activate the environment.
5. Install dependencies
- Anaconda
```bash
pip install -r requirements.txt
```
- Poetry
```bash ```bash
poetry install poetry install
``` ```
In case of contributors missing to update dependencies for `pyproject.toml`, you can perform the following shell instead. In case of contributors missing to update dependencies for `pyproject.toml`, you can perform the following shell instead.
```base
```bash
poetry shell # activate current environment poetry shell # activate current environment
poetry add $(cat requirements.txt) # install dependencies of production and update pyproject.toml poetry add $(cat requirements.txt) # install dependencies of production and update pyproject.toml
poetry add $(cat requirements-dev.txt) --group dev # install dependencies of development and update pyproject.toml poetry add $(cat requirements-dev.txt) --group dev # install dependencies of development and update pyproject.toml
``` ```
6. Run migrate
7. Run migrate
Before the first launch, migrate the database to the latest version.
```bash
poetry run python -m flask db upgrade
```
8. Start backend
```bash
poetry run python -m flask run --host 0.0.0.0 --port=5001 --debug
```
9. Start Dify [web](../web) service.
10. Setup your application by visiting `http://localhost:3000`...
11. If you need to debug local async processing, please start the worker service.
```bash
poetry run python -m celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail
```
The started celery app handles the async tasks, e.g. dataset importing and documents indexing.
## Testing
1. Install dependencies for both the backend and the test environment
```bash
poetry install --with dev
```
2. Run the tests locally with mocked system environment variables in `tool.pytest_env` section in `pyproject.toml`
```bash
cd ../
poetry run -C api bash dev/pytest/pytest_all_tests.sh
```
## Usage with pip
> [!NOTE]
> In the next version, we will deprecate pip as the primary package management tool for dify api service, currently Poetry and pip coexist.
1. Start the docker-compose stack
The backend require some middleware, including PostgreSQL, Redis, and Weaviate, which can be started together using `docker-compose`.
```bash
cd ../docker
docker-compose -f docker-compose.middleware.yaml -p dify up -d
cd ../api
```
2. Copy `.env.example` to `.env`
3. Generate a `SECRET_KEY` in the `.env` file.
```bash
sed -i "/^SECRET_KEY=/c\SECRET_KEY=$(openssl rand -base64 42)" .env
```
4. Create environment.
If you use Anaconda, create a new environment and activate it
```bash
conda create --name dify python=3.10
conda activate dify
```
6. Install dependencies
```bash
pip install -r requirements.txt
```
7. Run migrate
Before the first launch, migrate the database to the latest version. Before the first launch, migrate the database to the latest version.
@ -49,25 +123,12 @@
flask db upgrade flask db upgrade
``` ```
⚠️ If you encounter problems with jieba, for example 8. Start backend:
```
> flask db upgrade
Error: While importing 'app', an ImportError was raised:
```
Please run the following command instead.
```
pip install -r requirements.txt --upgrade --force-reinstall
```
7. Start backend:
```bash ```bash
flask run --host 0.0.0.0 --port=5001 --debug flask run --host 0.0.0.0 --port=5001 --debug
``` ```
8. Setup your application by visiting http://localhost:5001/console/api/setup or other apis... 9. Setup your application by visiting http://localhost:5001/console/api/setup or other apis...
9. If you need to debug local async processing, please start the worker service. 10. If you need to debug local async processing, please start the worker service.
```bash ```bash
celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail celery -A app.celery worker -P gevent -c 1 --loglevel INFO -Q dataset,generation,mail
``` ```
@ -85,3 +146,4 @@
```bash ```bash
dev/pytest/pytest_all_tests.sh dev/pytest/pytest_all_tests.sh
``` ```