> ## 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, gebruikerstoegang, quota en optionele zoekservices.

<Info>
  Deze functie wordt geleverd door [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/overleaf-pro) en is beschikbaar vanaf v6.3.0. We horen graag je feedback als je problemen tegenkomt.
</Info>

## AI-assistent en LaTeX-foutassistent

Ayakaleaf Pro brengt AI-functies op 2 manieren naar de editor.

* De AI-assistent kan je projectdocumenten en huidige selectie als context gebruiken om vragen te beantwoorden en wijzigingen voor te stellen die je kunt beoordelen.
* De foutassistent stelt een gerichte oplossing voor wanneer je een LaTeX-compilatiefout selecteert.

<Frame>
  <img src="https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/on-premises/image-48.png?fit=max&auto=format&n=x9kfDjtWlyyhG_mR&q=85&s=107b27f8843a326269b5e3711ccf2616" alt="" width="2844" height="1710" data-path="images/on-premises/image-48.png" />
</Frame>

### Toolkit-configuratie

Voeg het volgende toe aan `config/variables.env` in je Toolkit-implementatie en vervang de voorbeeld-URL, -sleutel en -model door waarden van je provider:

```dotenv theme={null}
AI_ENABLED=true
AI_BASE_URL=https://ai-gateway.example.com/v1
AI_API_KEY=REPLACE_WITH_YOUR_GATEWAY_API_KEY
AI_MODEL=YOUR_TEXT_MODEL_ID
```

Bewaar echte API-sleutels in het omgevingsbestand van je implementatie en houd ze buiten versiebeheer. De bovenstaande waarden zijn plaatshouders, geen werkende inloggegevens.

<Info>
  De kwaliteit van AI-suggesties hangt af van het model dat je kiest. Als je al een Codex- of ChatGPT-abonnement hebt, kun je dat koppelen via het OpenAI-compatibele endpoint van [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI).
</Info>

`AI_BASE_URL` is de basis-URL van de OpenAI-compatibele API, inclusief het versievoorvoegsel van de provider waar dat vereist is. Voeg geen `/chat/completions` toe, omdat we dit intern toevoegen. De gateway en het model moeten streaming chat completions en function tools ondersteunen. Beide functies sturen documentcontext naar deze gateway; de chat kan ook geüploade afbeeldingen versturen bij gebruik van een model dat afbeeldingen ondersteunt.

Toolkit geeft `config/variables.env` door aan de applicatiecontainer. Gebruik de hier getoonde variabelenamen; voeg geen voorvoegsel `OVERLEAF_` toe. Maak na het wijzigen van deze variabelen de applicatiecontainer opnieuw aan vanuit de Toolkit-map:

```sh theme={null}
bin/up -d
```

### Gateway-instellingen

| Variabele | Standaard | Doel |
| - | - | - |
| `AI_ENABLED` | `false` | Stel exact `true` in om chat en foutsuggesties voor de instantie in te schakelen. Niet ingesteld of een andere waarde houdt ze uitgeschakeld. Er is ook een werkende gatewayconfiguratie nodig. |
| `AI_BASE_URL` | Geen; verplicht | Basis-URL van de OpenAI-compatibele API. |
| `AI_API_KEY` | Geen; verplicht | API-sleutel voor die gateway, gebruikt door de server. |
| `AI_MODEL` | Geen; verplicht | Tekstmodel dat wordt gebruikt door de standaard chatconfiguratie en door suggesties voor LaTeX-fouten. |
| `AI_IMAGE_MODEL` | Niet ingesteld | Optioneel model dat afbeeldingen ondersteunt op dezelfde gateway, met dezelfde API-sleutel. |
| `AI_MAX_STEPS` | `20` | Maximaal aantal tool-aanroepen per gebruikersbericht in de AI-chat, inclusief automatische vervolgstappen. Gebruik een positief geheel getal. |
| `AI_PROXY_URL` | Niet ingesteld | Optionele HTTP-proxy-URL voor aanroepen naar de AI-gateway. Deze configureert niet de clients voor web- of documentatiezoekopdrachten. |
| `AI_TOKEN_QUOTA` | `0` | Tokenlimiet per gebruiker per periode, gedeeld door chat en foutsuggesties. Niet ingesteld of `0` betekent onbeperkt; gebruik een positief geheel getal voor een limiet. |
| `AI_TOKEN_QUOTA_PERIOD` | `month` | `month` wordt gereset op de eerste dag om 00:00 UTC; `week` wordt gereset op maandag om 00:00 UTC. Andere waarden gebruiken `month`. |

Stel voor het uploaden van afbeeldingen `AI_IMAGE_MODEL` in op een model dat afbeeldingsinvoer accepteert en de tools ondersteunt die door de chat worden gebruikt. Elk chatverzoek waarvan de geschiedenis een afbeeldingsbijlage bevat, gebruikt dit model, inclusief latere berichten in dat gesprek. Zonder deze instelling gebruiken verzoeken met afbeeldingen het normale chatmodel, dat dan zelf afbeeldingen moet ondersteunen. Suggesties voor LaTeX-fouten blijven `AI_MODEL` gebruiken.

Bijvoorbeeld, om een afbeeldingsmodel en een wekelijks AI-tegoed in te schakelen:

```dotenv theme={null}
AI_IMAGE_MODEL=YOUR_IMAGE_CAPABLE_MODEL_ID
AI_TOKEN_QUOTA=100000
AI_TOKEN_QUOTA_PERIOD=week
```

### Gebruikerstoegang en toestemming

Beschikbaarheid op instantieniveau en gebruikersrechten staan los van elkaar. `AI_ENABLED` en de gatewayconfiguratie bepalen de beschikbaarheid op instantieniveau. Een ingelogde gebruiker moet ook voldoen aan de bestaande accountcontroles:

* `aiFeatures.enabled` mag niet `false` zijn. Dit bestaande databaseveld regelt zowel de chat als de suggesties voor LaTeX-fouten.
* De effectieve `features.aiUsageQuota` van de gebruiker moet overeenkomen met de geconfigureerde onbeperkte laag (standaard `unlimited`), of de bestaande verouderde machtiging `features.aiErrorAssistant` moet zijn ingeschakeld. Effectieve functies omvatten toepasselijke overschrijvingen van accountfuncties.

Alleen het selectievakje inschakelen verandert het abonnement van de gebruiker niet. Het veld `aiUsageQuota` is een machtigingslaag, geen numeriek tokentegoed. `AI_TOKEN_QUOTA` is een afzonderlijke limiet die voor elke toegestane gebruiker gelijk geldt; de huidige module biedt geen individuele numerieke limiet per account.

Selecteer in de gebruikerslijst van de beheerder een gebruiker en open **Update account info → AI features**. **Enable AI features** werkt `aiFeatures.enabled` bij wanneer de accountwijzigingen worden opgeslagen. De server controleert de actuele machtigingen bij nieuwe AI-verzoeken, ook bij verzoeken vanuit een editor die al geopend is. Vernieuw de editor om de zichtbare bedieningselementen bij te werken na een wijziging van machtigingen.

### Gebruik en resetten

Het tabblad AI features in het beheer toont het **Usage**, de **Limit** en de knop **Reset** voor de huidige periode op één rij. Het gebruik wordt ingelezen wanneer het tabblad wordt geopend; het wordt niet continu vernieuwd. Open het tabblad opnieuw nadat een chat of foutsuggestie is voltooid om de nieuwste telling te zien. Reset werkt direct en wist alleen de teller van die gebruiker voor de huidige periode, waarna het weergegeven gebruik opnieuw wordt geladen. De rest van het accountformulier hoeft daarvoor niet te worden opgeslagen.

<Frame>
  <img src="https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/on-premises/img-2f5a5399.png?fit=max&auto=format&n=x9kfDjtWlyyhG_mR&q=85&s=3c52c12aa1551cda22f218ec2dfda63b" alt="" width="563" data-path="images/on-premises/img-2f5a5399.png" />
</Frame>

Het gebruik van chat en foutsuggesties deelt één Redis-teller, die na afloop van een verzoek wordt bijgewerkt op basis van het totale aantal tokens dat de modelprovider rapporteert. Dit omvat invoer- en uitvoertokens over alle modelstappen. Invoer kan gespreksgeschiedenis, documentcontext en toolresultaten bevatten, waardoor een vervolgvraag meer tokens kan verbruiken dan alleen het nieuwe bericht. Gebruik wordt ook geregistreerd wanneer de limiet **Unlimited** is. Verzoeken zonder gerapporteerd tokentotaal worden niet bij de teller opgeteld; historisch niet-geregistreerd gebruik kan niet door de module worden gereconstrueerd.

Quotacontroles vinden plaats vóór het streamen. Een verzoek, of meerdere gelijktijdige verzoeken, kan het resterende tegoed overschrijden voordat latere verzoeken worden geblokkeerd. Het gaat om een gebruikstegoed en niet om een strikt uitgavenplafond bij de provider. Als het opvragen van het quotum mislukt, wordt het verzoek toegestaan en wordt de fout gelogd.

Beide functies gebruiken `AI_TOKEN_QUOTA`; foutsuggesties hebben geen aparte limiet op het aantal verzoeken. Het resetten van de teller verandert niets aan machtigingen, toestemming, de geconfigureerde limiet of de eigen factureringsgegevens van de provider. Tellers gebruiken periodesleutels in UTC en verlopen na 40 dagen; door Redis-gegevens te behouden blijft het huidige gebruik bewaard bij herstarts van de applicatie.

### Optionele zoekservices

Webzoeken gebruikt een Tavily-compatibele API. Het is beschikbaar wanneer er een API-sleutel voor zoeken is geconfigureerd. Deze instellingen staan los van de AI-gateway:

| Variabele | Standaard | Doel |
| - | - | - |
| `TAVILY_API_KEY` | Niet ingesteld | API-sleutel voor zoeken. Heeft voorrang op `WEB_SEARCH_API_KEY`. |
| `WEB_SEARCH_API_KEY` | Niet ingesteld | Alternatieve naam voor de API-sleutel voor zoeken. |
| `WEB_SEARCH_URL` | `https://api.tavily.com/search` | Zoek-endpoint; aangepaste endpoints moeten het verzoek- en antwoordformaat van Tavily accepteren. |
| `WEB_SEARCH_MAX_RESULTS` | `5` | Aantal opgevraagde resultaten per zoekopdracht; gebruik een positief geheel getal dat door de service wordt ondersteund. |
| `WEB_SEARCH_DEPTH` | `basic` | Zoekdiepte, normaal gesproken `basic` of `advanced`. |
| `WEB_SEARCH_PROVIDER` | `tavily` | De huidige implementatie ondersteunt alleen het Tavily-compatibele protocol; het wijzigen van deze waarde selecteert geen andere adapter. |
| `DOCS_MCP_URL` | `https://docs.overleaf.com/~gitbook/mcp` | Endpoint voor het doorzoeken van documentatie. Stel in op een lege string om het doorzoeken van documentatie uit te schakelen. |

Bijvoorbeeld:

```dotenv theme={null}
TAVILY_API_KEY=REPLACE_WITH_YOUR_SEARCH_API_KEY
WEB_SEARCH_MAX_RESULTS=5
WEB_SEARCH_DEPTH=basic
DOCS_MCP_URL=https://docs.overleaf.com/~gitbook/mcp
```

Het doorzoeken van documentatie roept de tool `searchDocumentation` aan van het geconfigureerde GitBook MCP-endpoint en accepteert JSON- of SSE-antwoorden. Dit is een MCP-client voor het doorzoeken van documentatie; deze modules stellen geen projectbestanden beschikbaar als MCP-server en bieden geen algemeen register van MCP-servers.

Zoekopdrachten gaan naar de geconfigureerde zoekservice. Zoekresultaten kunnen vervolgens worden opgenomen in verzoeken aan de AI-gateway. Via het menu **Tools** van de chat kunnen gebruikers **Web** en **Documentation** in- of uitschakelen voor hun verzoeken; een tool moet ook op de server zijn geconfigureerd om beschikbaar te zijn voor het model.


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