Alur Kerja AI Engine & RAG¶
AI dalam sistem ini bertindak layaknya "Otak" yang menterjemahkan niat bahasa manusia ke dalam Query ORM Odoo. Sistem AI Engine ini berada pada chat.py dan ai_service.py.
Pipeline Eksekusi Utuh¶
- Gerbang Masuk (Hard Gate): Sistem memvalidasi
session_id,X-API-Key, dan memastikan modul atau tabel target (misal modul HR atau Sales) sudah diatur. - Init & Load Context: Memuat klien Odoo dan klien Groq, sekaligus mengambil Active Models, Konteks Odoo (Perusahaan), dan data pengguna.
- Pending Write Check: Jika AI sebelumnya mengusulkan tindakan Create/Update dan sedang menunggu persetujuan (Draft), ia akan mengecek apakah respon dari pengguna adalah "Ya" (execute) atau "Batal" (buang).
- Semantic Router (Sticky & Decay): Menganalisis keyword pada prompt pengguna untuk memutuskan model Odoo yang dituju. Router ini memastikan konteks tidak lompat-lompat (sticky) dengan jeda beberapa turn (decay).
- Fast Classifier (8b model): Sebuah klasifikasi ringan (hemat token) menggunakan model
Llama 3.1 8b. Jika pesan pengguna hanya sapaan (chit-chat), AI akan membalas secara lokal tanpa harus mengeksekusi LLM yang berat atau bertanya ke Odoo. - Agent Loop (Chain-of-Thought): Inti pemrosesan. AI meng-inject "Knowledge Base" (Glossary, Schema Odoo), kemudian melakukan penalaran berulang (maksimal 10 langkah).
- Response JSON: AI mengeluarkan respon final, disertai trace (jejak eksekusi), data grafik, atau antrean (pending action).
Knowledge Layer (Semantic RAG)¶
Alih-alih menggunakan Vector DB eksternal, sistem memakai pendekatan Semantic Knowledge Layer:
- Glossary: Memetakan istilah bisnis (contoh: "omzet") menjadi terminologi Odoo (contoh: account.move dengan filter posted).
- Table Cards: Ringkasan schema setiap model Odoo penting untuk mengurangi jumlah query get_schema secara live.
- Few-shot Prompting: Menyuplai pasangan contoh pertanyaan dan format JSON yang benar.
Self-correction: Jika AI membuat kesalahan saat memanggil ORM Odoo (misalnya field typo), kode akan membuang exception dan memberi tahu AI pesan error (ODOO_ERROR). AI kemudian dapat berpikir dan melakukan retry dengan format yang benar.