sbt-idp/cope2n-api/README.md
2024-07-17 17:45:44 +07:00

78 lines
2.4 KiB
Markdown
Executable File

# 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' \
'<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