Files
Open-Assistant/backend
dhug 49b5999ce6 Duplicate message reply filter (#958)
* added changes for user specific message dumplication filter, added error codes, and settings variable as described in Draft PR #926, ran precommit

* removed debug statements

* add missing await to async_managed_tx_method

* add 2nd missing await to async_managed_tx_method

* added changes for user specific message dumplication filter, added error codes, and settings variable as described in Draft PR #926, ran precommit

* removed debug statements

* assert task user matches prompt_repository user

* removed assert statments

* moved duplicate_message_filter and message_length check into store_text_reply

* removed old checks in tree_manager
2023-01-27 21:52:19 +00:00
..
2023-01-05 16:18:04 +01:00
2022-12-19 18:00:09 +01:00

Open-Assistant REST Backend

Backend Development Setup

In root directory, run docker compose up backend-dev --build --attach-dependencies to start a database. The default settings are already configured to connect to the database at localhost:5432.

Python 3.10 is required. It is recommended to use pyenv which will recognise the .python-version in the project root directory.

Make sure you have all requirements installed. You can do this by running pip install -r requirements.txt inside the backend folder and pip install -e . inside the oasst-shared folder. Then, run the backend using the run-local.sh script inside the scripts folder. This will start the backend server at http://localhost:8080.

REST Server Configuration

Please either use environment variables or create a .env file in the backend root directory (in which this readme file is located) to specify the DATABASE_URI.

Example contents of a .env file for the backend:

DATABASE_URI="postgresql://<username>:<password>@<host>/<database_name>"
BACKEND_CORS_ORIGINS=["http://localhost", "http://localhost:4200", "http://localhost:3000", "http://localhost:8080", "https://localhost", "https://localhost:4200", "https://localhost:3000", "https://localhost:8080", "http://dev.oasst.laion.ai", "https://stag.oasst.laion.ai", "https://oasst.laion.ai"]
REDIS_HOST=localhost
REDIS_PORT=6379

Running the REST Server locally for development

Have a look into the main README.md file for more information on how to set up the backend for development. Use the scripts within the scripts/backend-development folder to run the BE API locally.

Alembic

To create an Alembic database migration script after sql-models were modified run alembic revision --autogenerate -m "..." ("..." is what you did) in the /backend directory. Then edit the newly created file. See here for more information.

API Documentation

Once you have successfully started the backend server, you can access the default api docs at localhost:8080/docs. If you need to update the exported openapi.json in the docs/ folder you can run below command to wget them from the relevant local fastapi endpoint. This will enable anyone to just see API docs via something like Swagger.io without having to actually set up and run a development backend.

# save openapi.json to docs/docs/api
wget localhost:8080/api/v1/openapi.json -O docs/docs/api/openapi.json

Note: The api docs should be automatically updated by the test-api-contract.yaml workflow.