.. | ||
EDA | ||
env_sample | ||
fwd | ||
fwd_api | ||
locale | ||
scripts | ||
static | ||
billing_report.xlsx | ||
celery_config.txt | ||
dev.docker-compose.yml.dev | ||
docker-compose.yml | ||
docker-persistent.yml | ||
Dockerfile | ||
Dockerfile-dev | ||
Dockerfile.base | ||
manage.py | ||
modified.txt | ||
README.md | ||
report_detail.xlsx | ||
report.xlsx | ||
requirements.txt | ||
TODO.md |
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