Van vraag naar antwoord in seconden

Elke stap is ontworpen rond één principe: je data verlaat nooit je infrastructuur, en jij houdt de controle bij elke stap.

01

Jij verbindt je database

Het verbindingsformulier vraagt om je databasehost, poort, gebruikersnaam, wachtwoord en databasenaam. Standaardvelden — hetzelfde als in elke DB-client.

PostgreSQL MySQL MariaDB SQL Server ClickHouse Databricks Redshift
Inloggegevens worden versleuteld met een server-side sleutel voordat ze worden opgeslagen. Ze worden nooit in platte tekst bewaard.
Ottoch verbindt met je databaseserver. Je databaseserver wordt nooit blootgesteld aan Ottoch-servers — de verbinding komt vanaf de machine waarop de Docker-image draait.
De verbinding wordt getest bij het opslaan. Je krijgt direct te zien of het lukt of niet.
De enterprise-editie ondersteunt LDAP/Active Directory — gebruikers worden automatisch aangemaakt bij de eerste keer inloggen, met instelbare standaardrollen.
We lezen, bewaren of versturen nooit je daadwerkelijke rijdata.
02

Jij selecteert welke tabellen worden getoond

Na het verbinden activeer je de specifieke tabellen die de AI mag bevragen. Ottoch leest alleen het schema (kolomnamen en -typen) van die tabellen.

Alleen geactiveerde tabellen worden opgenomen in de AI-prompt. Tabellen die je niet activeert, zijn volledig onzichtbaar voor het model.
Schemametadata (tabelnaam, kolomnamen, typen) wordt verstuurd — niet je rijdata.
Je kunt tabellen op elk moment activeren of deactiveren. De wijziging is direct van kracht.
Geen tabeldata, geen voorbeeldrijen, geen foreign-key-data wordt ooit naar de AI verstuurd. Alleen schemanamen.
03

Jij levert je AI-sleutel

Ottoch heeft geen ingebouwd AI-model. Jij levert een API-sleutel voor de provider van je keuze. Je sleutel komt op je eigen server en wordt daar rechtstreeks gebruikt.

OpenAI Anthropic Google Gemini Elke OpenAI-compatibele API
Sleutels worden versleuteld opgeslagen. Alleen jouw instantie kan ze ontsleutelen.
AI-kosten gaan rechtstreeks naar je provideraccount. Ottoch verwerkt nooit facturatie voor AI-gebruik.
Je kunt op elk moment van model of provider wisselen via het LLM-instellingenscherm.

Verkrijg een sleutel op platform.openai.com, console.anthropic.com, of aistudio.google.com.

04

Jij stelt een vraag

Typ je vraag in de chatinterface — net zoals je een collega zou vragen. Ottoch bouwt een gestructureerde prompt met je schema en stuurt die naar je AI-provider.

Welke producten hadden de meeste retouren in Q4?
De prompt bevat je actieve tabelschema, zodat het model nauwkeurige, relevante SQL schrijft voor je daadwerkelijke tabellen.
Vragen worden opgeslagen in benoemde sessies zodat je ze later kunt bekijken of opnieuw uitvoeren.
05

Wij valideren de SQL

De AI retourneert een SQL-query. Voordat deze ooit je database raakt, parseert Ottoch de query en controleert of het een pure SELECT-statement is. Deze controle draait in code — het is niet afhankelijk van of de AI het goed doet.

Elke query die INSERT, UPDATE, DELETE, DROP of een andere schrijfoperatie bevat, wordt direct met een foutmelding geweigerd — hij wordt nooit uitgevoerd.
Als de AI onjuiste of onleesbare SQL retourneert, wordt de fout teruggekoppeld naar het model en probeert het opnieuw — tot 3 keer.
Na 3 mislukte pogingen meldt Ottoch de mislukking duidelijk, in plaats van te gokken of een gedeeltelijk resultaat te tonen.
We voeren nooit een query uit die we niet hebben gevalideerd. Vertrouwen is goed, controle is beter.
06

Jij krijgt een antwoord in gewone taal

De gevalideerde SQL draait op je database. De resultaatrijen worden samen met de oorspronkelijke vraag teruggestuurd naar de AI. Het model vertaalt de data naar een zin in gewone taal en toont je ook de SQL en uitvoeringstijd.

SELECT p.name, COUNT(*) AS return_count
FROM returns r JOIN products p ON r.product_id = p.id
WHERE r.created_at >= '2024-10-01' AND r.created_at < '2025-01-01'
GROUP BY p.name ORDER BY return_count DESC LIMIT 10;
Het meest geretourneerde product was "Wireless Headset Pro" met 214 retouren, gevolgd door "USB-C Hub" (187) en "Laptop Stand" (143). Alle drie zijn accessoires.
Uitgevoerd in 0,08s · 10 rijen geretourneerd

Wat we nooit doen

Het beveiligingsmodel werkt alleen als de grenzen echt zijn. Dit zijn de harde limieten.

Nooit direct je rijdata lezen

Ottoch leest alleen schemametadata (tabel- en kolomnamen). Het scant, exporteert of indexeert nooit je daadwerkelijke rijdata.

Query-resultaten nooit bewaren

Query-resultaten worden je getoond en daarna weggegooid. Ze worden niet weggeschreven naar Ottoch's database, niet naar derden verstuurd, niet gelogd.

Nooit schrijfoperaties toestaan

De SQL-validatielaag weigert elke niet-SELECT-statement vóór uitvoering. INSERT, UPDATE, DELETE, DROP — allemaal geweigerd in code, niet op basis van AI-oordeel.

Nooit "phone home"

Ottoch is zelf-gehost. Er is geen analytics, geen telemetrie, geen licentiecontroleservers. De enige uitgaande verzoeken gaan naar je gekozen AI-provider.

Sla je AI-sleutel nooit in platte tekst op

API-sleutels worden versleuteld met een server-side geheim voordat ze in de database worden geschreven. Ze kunnen door niemand in platte tekst worden teruggelezen — ook niet door ons.

Raak nooit tabellen aan die je niet hebt geactiveerd

De AI ontvangt alleen schema voor tabellen die je expliciet hebt geactiveerd. Inactieve tabellen worden nooit in prompts opgenomen en nooit bevraagd.

Klaar om het te proberen?

Eén Docker-commando en je bevraagt binnen minuten.

Probeer live demo → Gratis implementeren