ODXProxy

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 shipments

Steps 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)

EndpointPurpose
POST /v1/resolveQuestion → three ranked Odoo model names. Version- and edition-aware.
POST /v1/embeddingsThe local embedding service itself.
GET /health, /ready, /infoLiveness, readiness, build info.
  • Request to /v1/resolve: { query, odoo_version, edition }. odoo_version is 14.0–19.0; edition is 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.

On this page