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

> [!NOTE]
>
> 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.

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

![](https://mintcdn.com/ayakaleaf-pro/UZ_4Jfz7cU6MnXtE/images/on-premises/image-49.png?fit=max\&auto=format\&n=UZ_4Jfz7cU6MnXtE\&q=85\&s=609d6a28104dfb16264790c00123eeb4)

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

> [!NOTE]
>
> 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.

`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 og PDF-filer, når der bruges en model, der accepterer dem.

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_PDF_MODEL` | Ikke sat | Valgfri model på samme gateway til chats med PDF-filer, som bruger samme API-nøgle. Fra v6.4.0. |
| `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`.

PDF-vedhæftninger er introduceret fra v6.4.0 og senere. Brugere kan vedhæfte PDF-filer på op til 2 MB, ligesom billeder. Chatten sender hver PDF-fil, som den er, som en Chat Completions-`file`-del, så gatewayen og modellen skal acceptere PDF-input: OpenAI's vision-modeller gør det, mens mange selvhostede gateways, såsom vLLM, accepterer billeder, men afviser PDF-filer. Sæt `AI_PDF_MODEL` til en model, der kan læse PDF-filer; enhver chat, hvis historik indeholder en PDF-fil, bruger den, inklusive senere beskeder og eventuelle billeder i samme samtale, så den bør også acceptere billeder. Uden denne indstilling bruger PDF-chats `AI_MODEL`. Når modellen afviser en PDF-fil, beder chatten brugeren om at bede administratoren sætte `AI_PDF_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å den eksisterende kontokontrol: `aiFeatures.enabled` må ikke være `false`. Dette eksisterende databasefelt styrer både chat og forslag til LaTeX-fejl. Når det ikke er sat, er AI-funktioner aktiveret for brugeren.

`AI_TOKEN_QUOTA` er en 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. En bruger uden rettighed kan stadig se AI-assistenten i editoren, men kan ikke sende beskeder.

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

![](https://mintcdn.com/ayakaleaf-pro/x9kfDjtWlyyhG_mR/images/on-premises/img-2f5a5399.png?fit=max\&auto=format\&n=x9kfDjtWlyyhG_mR\&q=85\&s=3c52c12aa1551cda22f218ec2dfda63b)

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. Hvis AI-klienter uden for Ayakaleaf skal kunne arbejde med et projekt, se [MCP Server](https://ayakaleaf-pro.mintlify.site/da/on-premises/configuration/overleaf-toolkit/integrations/mcp-server.md).

Læsning af websider er introduceret fra v6.4.0 og senere. Chatten kan læse en side ud fra dens URL, f.eks. et link, som brugeren angiver, eller et søgeresultat. Den henter siden via linked URL-proxyen, den samme tjeneste, der henter filer fra eksterne URL'er, så de netværksbegrænsninger, der er beskrevet i [Ekstern URL](https://ayakaleaf-pro.mintlify.site/da/on-premises/configuration/overleaf-toolkit/external-url.md), gælder også for den. Der kræves ingen yderligere indstilling.

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.

### Spørgsmål og svar

> [accordion] AI-assistenten vises ikke i editoren
>
> **Svar:** AI-assistenten vises kun i editorens venstre panel, når `AI_ENABLED=true`, og `AI_BASE_URL`, `AI_API_KEY` og `AI_MODEL` alle er sat. Hvis en af dem mangler, er AI-assistenten skjult for alle brugere.
>
> Når du har ændret `config/variables.env`, skal du genoprette containeren med `bin/up -d`. Det er ikke nok at opdatere browseren for at anvende nye variabler. Kontakten **Enable AI features** i administratorpanelet viser eller skjuler ikke AI-assistenten; den afgør kun, om brugeren kan sende beskeder.

> [accordion] Jeg sender en besked, men AI-assistenten svarer ikke
>
> **Svar:** Kontrollér først, at brugeren har accepteret AI-samtykkekortet, der vises i AI-assistenten. Der kan ikke sendes beskeder før det.
>
> Se derefter efter fejl i webtjenestens log:
>
> ```sh theme={null}
> bin/logs web
> ```
>
> | Logbesked | Betydning |
> | - | - |
> | `workbench AI chat requested but no AI gateway is configured` | En af `AI_ENABLED`, `AI_BASE_URL`, `AI_API_KEY` eller `AI_MODEL` mangler i den kørende container. Genopret den med `bin/up -d`. |
> | `workbench chat stream error` | Gatewayen returnerede en fejl. Brugeren ser "The AI service returned an error". Den loggede fejl viser gatewayens statuskode og besked. |
> | `workbench chat failed` | Forespørgslen mislykkedes før eller under streaming, for eksempel fordi gatewayen ikke kan nås. |
>
> Hvis din udbyders dashboard ikke viser noget forbrug, nåede forespørgslen ikke frem til udbyderen. Almindelige årsager er:
>
> * `AI_BASE_URL` er forkert, for eksempel et manglende eller ekstra `/v1`, eller `/chat/completions` er tilføjet til den.
> * Serveren kan ikke nå gatewayen. Hvis udgående trafik skal gå gennem en proxy, skal du sætte `AI_PROXY_URL`.
> * `AI_MODEL` er ikke et model-ID, som gatewayen kender.
>
> Hvis udbyderen viser forespørgsler, men chatten stadig fejler, skal du kontrollere, at modellen understøtter streamede chat completions og function tools.

> [accordion] Gemmes chathistorikken?
>
> **Svar:** Nej. En chat gemmes kun i den åbne browserfane. Hvis siden opdateres eller lukkes, ryddes den, og **Start new chat** erstatter den aktuelle chat. Der er ingen liste over tidligere chats, og hvert projekt viser én chat ad gangen.


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