LLMs

A direct answer to "does my data go into a language model": what is sent, to which provider, in which mode, and how to tell which mode is active.

Last updated 20 August 2026

Default: no LLM involved

On the production site (bhubharati.dhethi.com), the built-in assistant is a deterministic, rule-based field guide. It answers from fixed logic and the records already loaded in your session. No prompt, record, or file is sent to any language model provider in this mode.

The rest of the product — the district/mandal/village explorer, record fetch, search, sort, filter, and CSV/JSON export — never involves a language model at all, in any configuration.

Optional mode: OpenAI

The backend can optionally route the /chat endpoint through OpenAI's Responses API instead of the deterministic field guide. This is an operator-level switch (OPENAI_ENABLED), off by default in the source code and explicitly kept off in our production Docker deployment, which also does not forward an OpenAI API key into the container. A self-hosted operator who supplies their own key and turns this on is choosing to use OpenAI on their own instance.

What would be sent (if this mode were enabled)

  • the text of your chat message;
  • a bounded set of already-fetched record fields relevant to answering it — at most a few hundred rows, or a short-lived server-side summary of the currently loaded village;
  • results of a small, fixed set of read-only tool calls (e.g. "list survey numbers for this village") that the model is allowed to invoke through MCP, so it can look up hierarchy or record facts instead of guessing.

What is never sent

  • the full multi-thousand-row village payload — the tool set the model can call is intentionally bounded and returns summaries plus a capped number of matches, not the whole dataset;
  • anything about you personally — there's no account, email, or identity to include;
  • write access of any kind — the model's tools are read-only, so it cannot alter cached or upstream data.

The provider's own terms

If a self-hosted operator enables the OpenAI mode, that traffic becomes subject to OpenAI's own API data-use terms in addition to this site's. As of this writing, OpenAI states that API inputs and outputs are not used to train its models by default; verify the current terms directly with OpenAI before relying on that, since third-party policies can change independently of this page.

Is anything used to train a model?

We do not use any data — chat messages, fetched records, or exports — to train or fine-tune a model ourselves. We don't operate a model at all; the optional mode above only calls a third party's hosted model per-request.

How to check what's active

A deployment's /api-info endpoint lists current capabilities. The README and deployment configuration for this project explicitly document OPENAI_ENABLED as the switch; on bhubharati.dhethi.com it is set to false, and no API key is forwarded to the container, so the OpenAI path is not reachable in production today.