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

2.4 KiB
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