AI & assistenten Beschikbaar
OpenAI-compatibel
Voor een bureau dat klantgegevens niet naar een externe aanbieder mag of wil sturen, is dit de manier om de AI-functies toch te gebruiken: het model draait waar jij het neerzet en schakl. praat alleen met jouw endpoint.
Wat je nodig hebt
- Een endpoint dat de chat-API van OpenAI spreekt en bereikbaar is vanaf de server waarop schakl. draait.
- De basis-URL van dat endpoint, inclusief het versiepad, bijvoorbeeld https://ai.example.com/v1.
- Een API-sleutel die jouw endpoint accepteert.
- De naam van het model dat je wilt draaien. Deze aanbieder heeft geen ingebouwde standaard, dus dit vul je zelf in.
- Het recht ai.settings.manage om de aanbieder in te stellen. Standaard alleen voor beheerders.
Zo koppel je het
- 1 Zet je model klaar achter een endpoint dat de chat-API van OpenAI spreekt: Azure OpenAI, Mistral, of een eigen Ollama of vLLM.
- 2 Open Instellingen → AI en zet Provider op OpenAI-compatibel (eigen server).
- 3 Vul Basis-URL in, bijvoorbeeld
https://ai.example.com/v1. Dit veld is hier verplicht: opslaan zonder geeft een validatiefout op het veld zelf. - 4 Plak in API-sleutel de sleutel die jouw endpoint accepteert. Die wordt versleuteld opgeslagen en nooit teruggetoond; bij een latere opslag houdt een leeg veld de bewaarde sleutel.
- 5 Vul bij Model de naam in die jouw server gebruikt. Modellen ophalen haalt de lijst op bij je eigen server, want ook die spreekt
GET /models. - 6 Zet onder Functies aan wat je wilt gebruiken en druk op Verbinding testen. De foutmelding van je eigen server komt letterlijk terug, wat het zoeken naar een verkeerde URL of modelnaam kort houdt.
- 7 Wil je ook dictaat, zet dan onder Spraak naar tekst de Spraakaanbieder op OpenAI-compatibel met een eigen basis-URL en sleutel, of laat hem op Uit staan om hetzelfde endpoint te hergebruiken.
Als klantdata het pand niet uit mag
Sommige opdrachtgevers staan geen externe verwerker toe, en sommige bureaus willen die discussie gewoon niet voeren. Met een eigen endpoint blijft de keuze bij jou: schakl. stuurt de aanvraag naar de basis-URL die jij invult, op de sleutel die jij invult, en verder nergens heen. De functies in de app veranderen er niet van.
- De aanvraag vertrekt vanaf de server van schakl., niet vanuit de browser van de gebruiker
- De sleutel staat versleuteld per organisatie en wordt nooit teruggetoond
- Verbruik wordt geteld in aantallen en labels, nooit als de tekst van een prompt of antwoord
Wat je hier zelf invult
Deze aanbieder kent geen standaarden, want wij weten niet wat er op jouw server draait. Basis-URL en Model zijn dus allebei van jou, en modelnamen blijven vrije tekst zodat een nieuw model geen nieuwe release nodig heeft. Verbinding testen doet een kleine echte aanroep met de opgeslagen instellingen en toont de fout van je server ongefilterd: dat is de snelste manier om een tikfout in de URL of de modelnaam te vinden.
Spraak naar tekst, als je server het kan
Dictaat op Uren werkt met deze aanbieder zodra jouw endpoint het transcriptie-endpoint implementeert. Je kiest onder Spraak naar tekst voor een eigen server met eigen basis-URL en sleutel, of je laat Spraakaanbieder op Uit staan en dan wordt hetzelfde chat-endpoint hergebruikt. Het audioverbruik heeft een eigen maandbudget in seconden, omdat een audiomodel geen tokens rapporteert.
Rechten
Geef deze rechten aan de rol die deze koppeling beheert (Instellingen → Rollen). Standaard alleen voor beheerders, en nooit voor de rol client.
-
ai.settings.manageInstellingen → AI beheren: aanbieder, basis-URL, sleutel, model, functies, budgetten, de testknop en de verbruiksmeter. Standaard alleen beheerder. -
ai.useDe AI-functies gebruiken. Staat standaard bij beheerder en medewerker, en is op elke AI-route vereist. -
time.entry.writeExtra vereist voor dictaat op Uren, want een transcript bestaat om een urenregel te worden.
Wat het bewust niet doet
- Er is geen standaardmodel. De modelnaam vul je zelf in en een typefout merk je pas aan de foutmelding van je eigen server.
- schakl. controleert niet wat jouw endpoint kan. Implementeert je server geen transcriptie, dan is er simpelweg geen dictaat.
- Het endpoint moet bereikbaar zijn vanaf de server van schakl. De browser van een gebruiker praat nooit rechtstreeks met je model.
- De verbinding naar de aanbieder heeft vaste time-outs: 10 seconden om te verbinden, 180 seconden om te lezen. Een lokaal model dat daar structureel overheen gaat, valt af.
- Het antwoordplafond ligt vast op 8192 tokens en er is nog geen instelling voor reasoning-effort.
- De assistent blijft alleen-lezen en de Urenhulp levert een concept: ook op je eigen model wordt er nooit vanzelf een record aangemaakt of gewijzigd.
Waar je het vindt Instellingen → AI, veld Provider op OpenAI-compatibel (eigen server), met het veld Basis-URL eronder.
Lees de handleiding