Run it
Self-hosted, any LLM, your data
Open source under Apache 2.0. Bring any LLM provider, your own search engine and your own storage. Multi-tenant and observable, running on your own infrastructure.
Bring any LLM
OpenAI, Anthropic Claude, Google Gemini (native SDK or OpenAI-compatible), Mistral, Cohere, AWS Bedrock, Google Vertex AI, local Ollama models and any OpenAI-compatible endpoint, 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 runs on 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
Turing exposes Micrometer metrics, chat & conversion analytics, cache-hit gauges and per-tool latency percentiles.
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 vendor-neutral event for every funnel step: query, no-results, result click, chat start, conversion and abandonment. A GA4 / Google Tag Manager sink detects the gtag / dataLayer your page already loads (Adobe Edge Delivery Services included), so it works with no extra config, and a generic escape hatch covers Segment, Matomo or Plausible. Cross-surface session stitching ties a chat lead back to the search that started it. It is your own tag on your own page, so you decide what is collected.
Developer tooling
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-tenantQuestions teams ask
- How do I run Turing on my own machine?
- One command: docker run -p 2700:2700 ghcr.io/openviglet/turing-ce, then open the console on port 2700. A docker compose file in the repository brings up the full stack with Solr, MariaDB and monitoring.
- Can it run with no cloud LLM at all?
- Yes. Point the agents at local Ollama models or at any OpenAI-compatible server inside your network, and nothing in the answer path leaves it.
- Is multi-tenancy on by default?
- No. It sits behind a feature flag, so a single-team deployment stays a single application. Turn it on to isolate tenants behind one identity realm.
- How do I gate prompt and agent changes?
- Write YAML eval suites and run them with the CLI's eval command in CI, so a change that lowers answer quality fails the build before it ships.