Run it
Self-hosted, any LLM, your data — never locked in
Open source under Apache 2.0. Bring any LLM provider, your own search engine and your own storage. Multi-tenant, observable, and running entirely on your infrastructure.
Bring any LLM
OpenAI, Anthropic Claude, Google Gemini (native SDK or OpenAI-compatible), Azure OpenAI and local Ollama models — all behind one pluggable provider interface. Switch providers per agent; API keys are stored encrypted.
Bring your search engine & storage
Run on Apache Solr, Elasticsearch or embedded Lucene, and back assets with MinIO, the filesystem or nothing at all. Turing adapts to the infrastructure you already operate.
Multi-tenant by design
Isolate tenants behind a single identity realm with tenant-owned infrastructure, gated behind a feature flag so a single-tenant deployment stays simple.
Observable & operable
Micrometer metrics, chat & conversion analytics, cache-hit gauges and per-tool latency percentiles give you the operational visibility a production search platform needs.
Measure the funnel in the analytics stack you already run
Server metrics tell you the platform is healthy; the SDK tells you what your users do. It emits a canonical, vendor-neutral event for every step of the funnel — query, no-results, result click, chat start, conversion and abandonment. A GA4 / Google Tag Manager sink auto-detects the gtag / dataLayer your page already loads (Adobe Edge Delivery Services included), so it lights up with zero extra config — with a generic escape hatch for Segment, Matomo or Plausible. Cross-surface session stitching ties a chat lead back to the search that started it, and because it's your own tag on your own page, you decide what's collected.
A real developer experience
A zero-dependency CLI (init / dev / deploy / eval / logs), official React and vanilla-JS SDKs, and YAML eval suites to gate agent and prompt changes in CI.
turing:
storage:
type: filesystem # none | minio | filesystem
filesystem:
path: ./store/assets
tenancy:
enabled: false # flip on for multi-tenant