> ## 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-integration

> Konfigurer AI-chat, forslag til LaTeX-fejl, brugeradgang, kvoter og valgfrie søgetjenester.

<Info>
  Denne funktion leveres af [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) og er tilgængelig fra v6.3.0. Vi hører gerne fra dig, hvis du støder på problemer.
</Info>

## AI-assistent og LaTeX-fejlassistent

Ayakaleaf Pro bringer AI-funktioner ind i editoren på 2 måder.

* AI-assistenten kan bruge dine projektdokumenter og den aktuelle markering som kontekst til at besvare spørgsmål og foreslå ændringer, som du kan gennemgå.
* Fejlassistenten foreslår en målrettet rettelse, når du vælger en LaTeX-kompileringsfejl.

<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-konfiguration

Tilføj følgende til `config/variables.env` i din Toolkit-udrulning, og erstat eksempel-URL'en, nøglen og modellen med værdier fra din udbyder:

```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
```

Opbevar rigtige API-nøgler i din udrulnings miljøfil og uden for versionsstyring. Værdierne ovenfor er pladsholdere, ikke fungerende legitimationsoplysninger.

<Info>
  Kvaliteten af AI-forslagene afhænger af den model, du vælger. Hvis du allerede har et Codex- eller ChatGPT-abonnement, kan du forbinde det via [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)'s OpenAI-kompatible endpoint.
</Info>

`AI_BASE_URL` er den OpenAI-kompatible API-basis-URL, inklusive udbyderens versionspræfiks, hvor det kræves. Tilføj ikke `/chat/completions`, da vi tilføjer dette internt. Gatewayen og modellen skal understøtte streamede chat completions og function tools. Begge funktioner sender dokumentkontekst til denne gateway; chatten kan også sende uploadede billeder, når der bruges en model, der understøtter billeder.

Toolkit videresender `config/variables.env` til applikationscontaineren. Behold de variabelnavne, der er vist her; tilføj ikke et `OVERLEAF_`-præfiks. Genopret applikationscontaineren fra Toolkit-mappen, efter at du har ændret disse variabler:

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

### Gateway-indstillinger

| Variabel | Standard | Formål |
| - | - | - |
| `AI_ENABLED` | `false` | Sæt præcis til `true` for at aktivere chat og fejlforslag for instansen. Hvis den ikke er sat eller har en anden værdi, forbliver de deaktiveret. En fungerende gateway-konfiguration er også påkrævet. |
| `AI_BASE_URL` | Ingen; påkrævet | OpenAI-kompatibel API-basis-URL. |
| `AI_API_KEY` | Ingen; påkrævet | API-nøgle til gatewayen, som bruges af serveren. |
| `AI_MODEL` | Ingen; påkrævet | Tekstmodel, der bruges af standardchatkonfigurationen og af forslag til LaTeX-fejl. |
| `AI_IMAGE_MODEL` | Ikke sat | Valgfri model med billedunderstøttelse på samme gateway, som bruger samme API-nøgle. |
| `AI_MAX_STEPS` | `20` | Maksimalt antal værktøjskald pr. brugerbesked i AI-chatten, inklusive automatiske fortsættelser. Brug et positivt heltal. |
| `AI_PROXY_URL` | Ikke sat | Valgfri HTTP-proxy-URL til kald til AI-gatewayen. Den konfigurerer ikke klienterne til web- eller dokumentationssøgning. |
| `AI_TOKEN_QUOTA` | `0` | Tokengrænse pr. bruger, som deles af chat og fejlforslag i hver periode. Ikke sat eller `0` betyder ubegrænset; brug et positivt heltal for at sætte en grænse. |
| `AI_TOKEN_QUOTA_PERIOD` | `month` | `month` nulstilles den første dag kl. 00:00 UTC; `week` nulstilles mandag kl. 00:00 UTC. Andre værdier bruger `month`. |

Ved billeduploads skal du sætte `AI_IMAGE_MODEL` til en model, der accepterer billedinput og understøtter de værktøjer, som chatten bruger. Enhver chatforespørgsel, hvis historik indeholder en vedhæftet billedfil, bruger denne model, inklusive senere beskeder i samme samtale. Uden denne indstilling bruger billedforespørgsler den normale chatmodel, som så selv skal understøtte billeder. Forslag til LaTeX-fejl bruger fortsat `AI_MODEL`.

For eksempel, for at aktivere en billedmodel og en ugentlig AI-kvote:

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

### Brugeradgang og samtykke

Tilgængelighed på instansen og brugerrettigheder er to separate ting. `AI_ENABLED` og gateway-konfigurationen styrer tilgængeligheden på instansen. En indlogget bruger skal desuden bestå de eksisterende kontokontroller:

* `aiFeatures.enabled` må ikke være `false`. Dette eksisterende databasefelt styrer både chat og forslag til LaTeX-fejl.
* Brugerens effektive `features.aiUsageQuota` skal matche det konfigurerede ubegrænsede niveau (`unlimited` som standard), eller den eksisterende ældre rettighed `features.aiErrorAssistant` skal være aktiveret. Effektive funktioner omfatter gældende tilsidesættelser af kontofunktioner.

Aktivering af afkrydsningsfeltet alene ændrer ikke brugerens plan. Feltet `aiUsageQuota` er et rettighedsniveau, ikke en numerisk tokenkvote. `AI_TOKEN_QUOTA` er en separat grænse, der gælder ens for hver bruger med rettighed; det nuværende modul giver ikke mulighed for en individuel numerisk grænse pr. konto.

I administratorens brugerliste skal du vælge en bruger og åbne **Update account info → AI features**. **Enable AI features** opdaterer `aiFeatures.enabled`, når kontoændringerne gemmes. Serveren kontrollerer de aktuelle rettigheder ved nye AI-forespørgsler, også forespørgsler fra en editor, der allerede er åben. Opdater editoren for at opdatere de synlige kontroller efter en ændring af rettigheder.

### Forbrug og nulstilling

Administratorens AI features-fane viser den aktuelle periodes **Usage**, **Limit** og knappen **Reset** på én række. Forbruget læses, når fanen åbnes; det opdateres ikke løbende. Åbn fanen igen, når en chat eller et fejlforslag er færdigt, for at se det seneste tal. Nulstilling træder i kraft med det samme og rydder kun den pågældende brugers tæller for den aktuelle periode, hvorefter det viste forbrug genindlæses. Det kræver ikke, at resten af kontoformularen gemmes.

<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>

Forbrug fra chat og fejlforslag deler én Redis-tæller, som opdateres med det samlede antal tokens, modeludbyderen rapporterer, når en forespørgsel er afsluttet. Dette omfatter input- og output-tokens på tværs af modeltrin. Input kan omfatte samtalehistorik, dokumentkontekst og værktøjsresultater, så en opfølgning kan forbruge flere tokens end den nye besked alene. Forbruget registreres, selv når grænsen er **Unlimited**. Forespørgsler uden et rapporteret tokentotal lægges ikke til tælleren; historisk forbrug, der ikke er registreret, kan ikke rekonstrueres af modulet.

Kvotekontroller foretages før streaming. En forespørgsel, eller flere samtidige forespørgsler, kan overskride den resterende kvote, før senere forespørgsler blokeres. Der er tale om en forbrugskvote snarere end et strengt udgiftsloft hos udbyderen. Hvis kvoteopslaget mislykkes, tillades forespørgslen, og fejlen logges.

Begge funktioner bruger `AI_TOKEN_QUOTA`; fejlforslag har ingen separat grænse for antal forespørgsler. Nulstilling af tælleren ændrer ikke rettigheder, samtykke, den konfigurerede grænse eller udbyderens egne faktureringsdata. Tællerne bruger UTC-periodenøgler og udløber efter 40 dage; hvis Redis-data bevares, bevares det aktuelle forbrug på tværs af genstarter af applikationen.

### Valgfrie søgetjenester

Websøgning bruger en Tavily-kompatibel API. Den er tilgængelig, når der er konfigureret en søge-API-nøgle. Disse indstillinger er uafhængige af AI-gatewayen:

| Variabel | Standard | Formål |
| - | - | - |
| `TAVILY_API_KEY` | Ikke sat | Søge-API-nøgle. Har forrang for `WEB_SEARCH_API_KEY`. |
| `WEB_SEARCH_API_KEY` | Ikke sat | Alternativt navn for søge-API-nøglen. |
| `WEB_SEARCH_URL` | `https://api.tavily.com/search` | Søge-endpoint; brugerdefinerede endpoints skal acceptere Tavilys forespørgsels- og svarformat. |
| `WEB_SEARCH_MAX_RESULTS` | `5` | Antal resultater, der anmodes om pr. søgning; brug et positivt heltal, som tjenesten understøtter. |
| `WEB_SEARCH_DEPTH` | `basic` | Søgedybde, normalt `basic` eller `advanced`. |
| `WEB_SEARCH_PROVIDER` | `tavily` | Den nuværende implementering understøtter kun den Tavily-kompatible protokol; ændring af denne værdi vælger ikke en anden adapter. |
| `DOCS_MCP_URL` | `https://docs.overleaf.com/~gitbook/mcp` | Endpoint til dokumentationssøgning. Sæt til en tom streng for at deaktivere dokumentationssøgning. |

For eksempel:

```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
```

Dokumentationssøgning kalder værktøjet `searchDocumentation` på det konfigurerede GitBook MCP-endpoint og accepterer JSON- eller SSE-svar. Dette er en MCP-klient til dokumentationssøgning; disse moduler eksponerer ikke projektfiler som en MCP-server og stiller ikke et generelt MCP-serverregister til rådighed.

Søgeforespørgsler sendes til den konfigurerede søgetjeneste. Søgeresultaterne kan derefter indgå i forespørgsler til AI-gatewayen. Chattens **Tools**-menu lader brugerne aktivere eller deaktivere **Web** og **Documentation** for deres forespørgsler; et værktøj skal også være konfigureret på serveren for at være tilgængeligt for modellen.


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