# Project AI Backend for Frontend # 1. Run DB and RabbitMQ (skip ì you already install) `docker compose -f docker-persistent up --build` # 2. Migrate Database Schema ( If needed ) 1.1 Make migration file `python manage.py makemigrations` 1.2 Apply to database `python manage.py migrate` # 3. Run Project ## 2.1 Run with Docker ### 2.1.1 Add file `.env` at same folder level with docker-compose.yml. Sample at `env_sample/example_{OS}_env` (Window / Linux) ### 2.1.2 Build & Run Image By Command `docker compose up --build` ## 2.2 Local Development Run ### 2.2.1 Add file `.env` at same folder level with docker-compose.yml. Sample at `env_sample/example_local_env` ### 2.2.2 Run API `python manage.py runserver 0.0.0.0:8000` ### 2.2.3 Run Worker `celery -A fwd_api.proj.worker worker -l INFO --without-gossip --without-mingle --without-heartbeat -Ofair --pool=solo` ## Feature ### Semi correction **API URL**: /api/automation/ #### **Exclaimer**: This process will overwrite all request files (images) reason and counter measure with the provided rule #### How to use Example: subsidiary: SESP \ Invoice_Purchase Date_Accuracy: 100% \ Invoice_Sold_To_Party_OCR: != "" \ Invoice_Retailer_OCR: Samsung Brand Store \ Reason to fill: Wrong Feedback \ Counter Measure: Update revised resutl and re-calculate accuracy \ The config would be as following ``` { "subsidiary": "SESP", "predict_result": { "retailername": "Samsung Brand Store", "sold_to_party": "notEmpty" }, "feedback_accuracy": { "purchase_date": 1 }, "reason": "Wrong Feedback", "counter_measures": "Update revised result and re-calculate accuracy" }, ``` Supported special commands: ["<", "Empty", "notEmpty", "starts_with"] \ To use the commands with values, you need to sperate it with the value by `||` for example: "<||1.0" means <100% and "starts_with||Shopee" means Shopee* #### Modify a duration with a rule: ``` curl -X 'POST' \ '/api/automation//scan/' \ -H 'accept: application/json' \ -H 'Authorization: ' \ -H 'Content-Type: application/json' \ -d '{ "start_date": "2024-05-17T07:27:19.087Z", "end_date": "2024-07-17T07:27:19.087Z" }' ``` To get the list of URLS: ``` curl -X 'GET' \ '/api/automation/' \ -H 'accept: application/json' \ -H 'Authorization: ' ``` More infomation, please refer to the swagger page