2023-11-30 11:19:06 +00:00
|
|
|
# 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`
|
2024-07-17 10:45:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 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' \
|
|
|
|
'<server_url>/api/automation/<rule_id>/scan/' \
|
|
|
|
-H 'accept: application/json' \
|
|
|
|
-H 'Authorization: <token>' \
|
|
|
|
-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' \
|
|
|
|
'<server_url>/api/automation/' \
|
|
|
|
-H 'accept: application/json' \
|
|
|
|
-H 'Authorization: <token>'
|
|
|
|
```
|
|
|
|
More infomation, please refer to the swagger page
|