ODXBrain (in development)
The on-premises resolver that tells your AI which Odoo model to look in. In development — not yet integrated or released.
In development
ODXBrain is not released. Engine 0.1.0 runs, but no ODXProxy integration
is live and the API is not yet declared stable. This page tracks what exists; the
full reference lands when /v1 is frozen. It will ship as part of ODXProxy, with
no separate pricing.
ODXBrain tells an AI which Odoo model holds the data for a question. A plain-language question goes in, three ranked Odoo model names come out, and it runs entirely on your own hardware. See the ODXBrain overview for the why.
It returns Odoo model names only — not fields, records, SQL, or answers. It is not an LLM, a chatbot, or a vector database, and it contains no generative model.
Where it fits
Your client application (or the on-premises LLM agent it runs) calls ODXBrain and ODXProxy separately. ODXBrain never talks to Odoo; ODXProxy is the only component that does.
question: "is there any incoming shipment today?"
1. ODXBrain POST /v1/resolve { query, odoo_version, edition }
→ stock.picking, … which model to look in
2. ODXProxy fields_get stock.picking
→ picking_type_code, scheduled_date, state, partner_id, …
what that model looks like on this instance
3. ODXProxy search_read stock.picking [incoming, scheduled today]
→ the actual shipmentsSteps 2 and 3 are ordinary ODXProxy calls — see Allowed actions.
fields_get is what covers your custom and Studio fields; ODXBrain doesn't need to
know them.
What exists today (engine 0.1.0)
| Endpoint | Purpose |
|---|---|
POST /v1/resolve | Question → three ranked Odoo model names. Version- and edition-aware. |
POST /v1/embeddings | The local embedding service itself. |
GET /health, /ready, /info | Liveness, readiness, build info. |
- Request to
/v1/resolve:{ query, odoo_version, edition }.odoo_versionis14.0–19.0;editionis Community or Enterprise. If either is unknown, ODXBrain filters nothing rather than guessing. - Coverage: 41 core Odoo models across accounting, sales, purchasing, inventory, manufacturing and point of sale, plus contacts, products, companies, currencies, users and units of measure.
- Platform: Linux, CPU-only (no GPU). A single binary plus its CPU backend
libraries and a local embedding model (
bge-m3, MIT licence, about 1.2 GB). - Network: an HTTP server with no HTTP client — it never connects to Odoo or the internet.
Yet another key
ODXBrain accepts an optional shared x-api-key, set in its JSON config file.
It is a third, separate secret — not the ODXProxy x-api-key and not the Odoo
user's odoo_instance.api_key. It is a shared secret, not an auth system; users,
roles and Odoo access rights stay with ODXProxy and Odoo. ODXBrain never accepts
Odoo credentials.
Not documented yet
The /v1/resolve response shape (including the fields that explain why a model was
left out for a version or edition and what replaced it), error responses, and
configuration reference are still settling and will be published with the stable
/v1.
Roadmap
These are not built:
- Extension packs — coverage per Odoo app (helpdesk, project, field service…).
- Custom-model layer — your own custom modules and Studio models, per instance.
- Odoo 20.0 audit.
- A declared-stable
/v1, frozen once ODXProxy has integrated.
The corpus ODXBrain answers from is public: terrakernel/odxbrain-corpus (CC0 data, 0BSD scripts). The engine is proprietary.