> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# AI-integratie

> Configureer AI-chat, suggesties voor LaTeX-fouten, quota en zoekservices op een Kubernetes-implementatie.

De AI-assistent en de LaTeX-foutassistent draaien in de **web**-service (de modules `workbench` en `error-assistant`) van elke Ayakaleaf Pro-pod. Wat elke instelling doet, gebruikerstoegang en quota staan beschreven in [AI-integratie](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/overleaf-toolkit/integrations/ai-integration.md); deze pagina zet het in Kubernetes.

| | |
| - | - |
| Service | web, in elke Ayakaleaf Pro-pod; gelezen wanneer web start. De tool `web_fetch` loopt via linked-url-proxy in dezelfde pod |
| Pod → buiten | `AI_BASE_URL`; `WEB_SEARCH_URL` (standaard `https://api.tavily.com/search`) en `DOCS_MCP_URL` als zoeken is ingeschakeld; pagina's die het model met `web_fetch` leest |
| Buiten → Overleaf | geen |
| Status | de tellers van het tokenquotum in Redis, gedeeld door alle replica's; de chatgeschiedenis blijft in de browser |
| Periodieke taken | geen |

### Configuratie

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  AI_ENABLED: "true"
  AI_BASE_URL: https://ai-gateway.example.com/v1
  AI_MODEL: YOUR_TEXT_MODEL_ID
  # optional, see the Toolkit page
  # AI_IMAGE_MODEL: YOUR_IMAGE_CAPABLE_MODEL_ID
  # AI_PDF_MODEL: YOUR_PDF_CAPABLE_MODEL_ID
  # AI_TOKEN_QUOTA: "200000"
  # AI_TOKEN_QUOTA_PERIOD: month
  # AI_PROXY_URL: http://proxy.example.com:3128
```

`AI_ENABLED` moet precies `"true"` zijn. De assistent verschijnt alleen wanneer `AI_ENABLED`, `AI_BASE_URL`, `AI_MODEL` en `AI_API_KEY` allemaal zijn ingesteld.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge -p '{"stringData":{
  "AI_API_KEY":"<gateway key>",
  "TAVILY_API_KEY":"<search key, optional>"}}'
```

**3. Toepassen, herstarten en de gateway vanuit elke pod controleren**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
for p in $(kubectl -n overleaf get pod -l app=overleaf -o name); do   # app=overleaf-ha for several replicas
  kubectl -n overleaf exec "$p" -- curl -sS -o /dev/null -w "$p %{http_code}\n" https://ai-gateway.example.com/v1/models
done
```

Elke HTTP-status betekent dat de gateway bereikbaar is; `000` betekent dat hij niet bereikbaar is.

De tool `web_fetch` haalt pagina's op via dezelfde proxy als bestanden van [Externe URL](https://ayakaleaf-pro.mintlify.site/nl/on-premises/configuration/kubernetes/external-url.md), dus de `OVERLEAF_LINKED_URL_*`-instellingen beperken ook wat het model mag lezen.

### Meerdere replica's

Niets extra's. Het tokenquotum wordt in Redis geteld, dus het verbruik van een gebruiker is op elke replica hetzelfde, en een reset door een beheerder geldt overal.

### Getest op Kubernetes

Tegen een mock van een OpenAI-compatibele gateway, Tavily en het GitBook MCP-endpoint (vertrouwd via `NODE_EXTRA_CA_CERTS` uit `overleaf-certs`), op Kubernetes 1.37, slagen onze end-to-endtests: voor de AI-assistent op drie replica's achter HAProxy (31 gevallen) chats met toolaanroepen en voorgestelde bewerkingen, zoeken op het web en in documentatie, webpagina's lezen via linked-url-proxy beperkt door `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`, afbeeldings- en pdf-bijlagen, toestemming, het tokenquotum geteld in Redis, AI uitgeschakeld voor een gebruiker en voor de instantie, en trage verbindingen met de gateway; voor de foutassistent op één replica (15 gevallen) voorgestelde oplossingen, toestemming, het gedeelde tokenquotum en AI uitgeschakeld.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.