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

> Konfigurer AI-chat, forslag til LaTeX-feilrettinger, brukertilgang, kvoter og valgfrie søketjenester.

> [!NOTE]
>
> Denne funksjonen leveres av [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) og er tilgjengelig fra v6.3.0. Vi setter pris på tilbakemeldinger hvis du støter på problemer.

## AI-assistent og LaTeX-feilassistent

Ayakaleaf Pro bringer AI-funksjoner inn i editoren på 2 måter.

* AI-assistenten kan bruke prosjektdokumentene dine og det gjeldende utvalget som kontekst for å svare på spørsmål og foreslå endringer som du kan gjennomgå.
* Feilassistenten foreslår en målrettet rettelse når du velger en LaTeX-kompileringsfeil.

![](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-konfigurasjon

Legg til følgende i `config/variables.env` i Toolkit-distribusjonen din, og erstatt eksempel-URL-en, nøkkelen og modellen med verdier fra leverandøren din:

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

Oppbevar ekte API-nøkler i miljøfilen for distribusjonen og utenfor versjonskontroll. Verdiene ovenfor er plassholdere, ikke fungerende legitimasjon.

> [!NOTE]
>
> Kvaliteten på AI-forslagene avhenger av modellen du velger. Hvis du allerede har et Codex- eller ChatGPT-abonnement, kan du koble det til via det OpenAI-kompatible endepunktet til [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI).

`AI_BASE_URL` er basis-URL-en til det OpenAI-kompatible API-et, inkludert leverandørens versjonsprefiks der det kreves. Ikke legg til `/chat/completions`, siden vi legger dette til internt. Gatewayen og modellen må støtte strømmende chat completions og funksjonsverktøy. Begge funksjonene sender dokumentkontekst til denne gatewayen; chatten kan også sende opplastede bilder og PDF-filer når det brukes en modell som godtar dem.

Toolkit videresender `config/variables.env` til applikasjonscontaineren. Behold variabelnavnene som vises her; ikke legg til et `OVERLEAF_`-prefiks. Fra Toolkit-katalogen gjenoppretter du applikasjonscontaineren etter at du har endret disse variablene:

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

### Gateway-innstillinger

| Variabel | Standard | Formål |
| - | - | - |
| `AI_ENABLED` | `false` | Sett nøyaktig til `true` for å aktivere chat og feilforslag for instansen. Hvis den ikke er satt eller har en annen verdi, forblir funksjonene deaktivert. En fungerende gateway-konfigurasjon kreves også. |
| `AI_BASE_URL` | Ingen; påkrevd | Basis-URL for OpenAI-kompatibelt API. |
| `AI_API_KEY` | Ingen; påkrevd | API-nøkkel for denne gatewayen, brukt av serveren. |
| `AI_MODEL` | Ingen; påkrevd | Tekstmodell som brukes av standard chatkonfigurasjon og av forslag til LaTeX-feilrettinger. |
| `AI_IMAGE_MODEL` | Ikke satt | Valgfri bildekompatibel modell på samme gateway, med samme API-nøkkel. |
| `AI_PDF_MODEL` | Ikke satt | Valgfri modell på samme gateway for chatter med PDF-filer, med samme API-nøkkel. Fra v6.4.0. |
| `AI_MAX_STEPS` | `20` | Maksimalt antall verktøykall per brukermelding i AI-chatten, inkludert automatiske fortsettelser. Bruk et positivt heltall. |
| `AI_PROXY_URL` | Ikke satt | Valgfri URL til en HTTP-proxy for kall til AI-gatewayen. Den konfigurerer ikke klientene for nett- eller dokumentasjonssøk. |
| `AI_TOKEN_QUOTA` | `0` | Tokengrense per bruker, delt mellom chat og feilforslag for hver periode. Ikke satt eller `0` betyr ubegrenset; bruk et positivt heltall for en grense. |
| `AI_TOKEN_QUOTA_PERIOD` | `month` | `month` nullstilles den første dagen kl. 00:00 UTC; `week` nullstilles mandag kl. 00:00 UTC. Andre verdier bruker `month`. |

For bildeopplastinger setter du `AI_IMAGE_MODEL` til en modell som godtar bildeinndata og støtter verktøyene chatten bruker. Alle chatforespørsler der historikken inneholder et bildevedlegg, bruker denne modellen, også senere meldinger i samme samtale. Uten denne innstillingen bruker bildeforespørsler den vanlige chatmodellen, som da selv må støtte bilder. Forslag til LaTeX-feilrettinger fortsetter å bruke `AI_MODEL`.

PDF-vedlegg er introdusert fra og med v6.4.0. Brukerne kan legge ved PDF-filer på opptil 2 MB, på samme måte som bilder. Chatten sender hver PDF-fil som den er, som en `file`-del i Chat Completions, så gatewayen og modellen må godta PDF-inndata: OpenAIs visjonsmodeller gjør det, mens mange selvhostede gatewayer, som vLLM, godtar bilder, men avviser PDF-filer. Sett `AI_PDF_MODEL` til en modell som kan lese PDF-filer; alle chatter der historikken inneholder en PDF-fil, bruker den, også senere meldinger og eventuelle bilder i samme samtale, så den bør også godta bilder. Uten denne innstillingen bruker PDF-chatter `AI_MODEL`. Når modellen avviser en PDF-fil, ber chatten brukeren om å be administratoren sette `AI_PDF_MODEL`.

For eksempel, for å aktivere en bildemodell og en ukentlig AI-kvote:

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

### Brukertilgang og samtykke

Tilgjengelighet på instansen og brukertillatelse er to separate ting. `AI_ENABLED` og gateway-konfigurasjonen styrer tilgjengeligheten på instansen. En innlogget bruker må i tillegg bestå den eksisterende kontokontrollen: `aiFeatures.enabled` må ikke være `false`. Dette eksisterende databasefeltet styrer både chat og forslag til LaTeX-feilrettinger. Når feltet ikke er satt, er AI-funksjonene aktivert for brukeren.

`AI_TOKEN_QUOTA` er en grense som gjelder likt for hver bruker med tillatelse; den nåværende modulen tilbyr ingen individuell numerisk grense per konto.

I brukerlisten for administratorer velger du en bruker og åpner **Update account info → AI features**. **Enable AI features** oppdaterer `aiFeatures.enabled` når kontoendringene lagres. Serveren kontrollerer gjeldende tillatelser ved nye AI-forespørsler, også forespørsler fra en editor som allerede er åpen. En bruker uten tillatelse ser fortsatt AI-assistenten i editoren, men kan ikke sende meldinger.

### Forbruk og nullstilling

Fanen for AI-funksjoner i administrasjonspanelet viser gjeldende periodes **Usage**, **Limit** og **Reset**-knappen på én rad. Forbruket leses når fanen åpnes; det oppdateres ikke kontinuerlig. Åpne fanen på nytt etter at en chat eller et feilforslag er fullført for å se det siste tallet. Nullstilling trer i kraft umiddelbart og tømmer bare telleren for den aktuelle brukerens gjeldende periode, og laster deretter inn det viste forbruket på nytt. Det krever ikke at resten av kontoskjemaet lagres.

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

Forbruket for chat og feilforslag deler én Redis-teller, som oppdateres med det totale antallet tokens modelleverandøren rapporterer etter at en forespørsel er fullført. Dette inkluderer inn- og utdatatokens på tvers av modelltrinn. Inndata kan omfatte samtalehistorikk, dokumentkontekst og verktøyresultater, så en oppfølging kan bruke flere tokens enn den nye meldingen alene. Forbruket registreres selv når grensen er **Unlimited**. Forespørsler uten rapportert tokentotal legges ikke til i telleren; historisk forbruk som ikke er registrert, kan ikke rekonstrueres av modulen.

Kvotekontroller skjer før strømmingen starter. En forespørsel, eller flere samtidige forespørsler, kan overskride gjenværende kvote før senere forespørsler blokkeres. Dette er en forbrukskvote snarere enn et strengt utgiftstak hos leverandøren. Hvis kvoteoppslaget mislykkes, tillates forespørselen, og feilen logges.

Begge funksjonene bruker `AI_TOKEN_QUOTA`; feilforslag har ingen separat grense for antall forespørsler. Nullstilling av telleren endrer ikke tillatelse, samtykke, den konfigurerte grensen eller leverandørens egne faktureringsdata. Tellerne bruker periodenøkler i UTC og utløper etter 40 dager; hvis Redis-data beholdes, bevares gjeldende forbruk på tvers av omstarter av applikasjonen.

### Valgfrie søketjenester

Nettsøk bruker et Tavily-kompatibelt API. Det er tilgjengelig når en API-nøkkel for søk er konfigurert. Disse innstillingene er uavhengige av AI-gatewayen:

| Variabel | Standard | Formål |
| - | - | - |
| `TAVILY_API_KEY` | Ikke satt | API-nøkkel for søk. Har forrang over `WEB_SEARCH_API_KEY`. |
| `WEB_SEARCH_API_KEY` | Ikke satt | Alternativt navn på API-nøkkelen for søk. |
| `WEB_SEARCH_URL` | `https://api.tavily.com/search` | Søkeendepunkt; egendefinerte endepunkter må godta Tavilys forespørsels- og svarformat. |
| `WEB_SEARCH_MAX_RESULTS` | `5` | Antall resultater som etterspørres per søk; bruk et positivt heltall som tjenesten støtter. |
| `WEB_SEARCH_DEPTH` | `basic` | Søkedybde, vanligvis `basic` eller `advanced`. |
| `WEB_SEARCH_PROVIDER` | `tavily` | Den nåværende implementasjonen støtter kun den Tavily-kompatible protokollen; å endre denne verdien velger ikke en annen adapter. |
| `DOCS_MCP_URL` | `https://docs.overleaf.com/~gitbook/mcp` | Endepunkt for dokumentasjonssøk. Sett til en tom streng for å deaktivere dokumentasjonssøk. |

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

Dokumentasjonssøk kaller verktøyet `searchDocumentation` på det konfigurerte GitBook MCP-endepunktet og godtar JSON- eller SSE-svar. Dette er en MCP-klient for dokumentasjonssøk. For å la AI-klienter utenfor Ayakaleaf arbeide med et prosjekt, se [MCP-server](https://ayakaleaf-pro.mintlify.site/no/on-premises/configuration/overleaf-toolkit/integrations/mcp-server.md).

Lesing av nettsider er introdusert fra og med v6.4.0. Chatten kan lese en side via URL-en, for eksempel en lenke brukeren oppgir eller et søkeresultat. Den henter siden gjennom proxyen for lenkede URL-er, den samme tjenesten som henter filer fra eksterne URL-er, så nettverksbegrensningene som er beskrevet i [External URL](https://ayakaleaf-pro.mintlify.site/no/on-premises/configuration/overleaf-toolkit/external-url.md), gjelder også for den. Ingen ytterligere innstilling er nødvendig.

Søkespørringer sendes til den konfigurerte søketjenesten. Søkeresultatene kan deretter inkluderes i forespørsler til AI-gatewayen. Chattens **Tools**-meny lar brukerne aktivere eller deaktivere **Web** og **Documentation** for forespørslene sine; et verktøy må også være konfigurert på serveren for å være tilgjengelig for modellen.

### Spørsmål og svar

> [accordion] AI-assistenten vises ikke i editoren
>
> **Svar:** AI-assistenten vises i editorens venstre felt bare når `AI_ENABLED=true` og `AI_BASE_URL`, `AI_API_KEY` og `AI_MODEL` alle er satt. Hvis én av dem mangler, skjules AI-assistenten for alle brukere.
>
> Etter at du har endret `config/variables.env`, må du gjenopprette containeren med `bin/up -d`. Å bare oppdatere nettleseren tar ikke i bruk nye variabler. Bryteren **Enable AI features** i administrasjonspanelet viser eller skjuler ikke AI-assistenten; den avgjør bare om brukeren kan sende meldinger.

> [accordion] Jeg sender en melding, men AI-assistenten svarer ikke
>
> **Svar:** Kontroller først at brukeren har godtatt samtykkekortet for AI som vises i AI-assistenten. Meldinger kan ikke sendes før det.
>
> Se deretter etter feil i loggen for web-tjenesten:
>
> ```sh theme={null}
> bin/logs web
> ```
>
> | Loggmelding | Betydning |
> | - | - |
> | `workbench AI chat requested but no AI gateway is configured` | Én av `AI_ENABLED`, `AI_BASE_URL`, `AI_API_KEY` eller `AI_MODEL` mangler i den kjørende containeren. Gjenopprett den med `bin/up -d`. |
> | `workbench chat stream error` | Gatewayen returnerte en feil. Brukeren ser "The AI service returned an error". Den loggede feilen viser gatewayens statuskode og melding. |
> | `workbench chat failed` | Forespørselen mislyktes før eller under strømmingen, for eksempel fordi gatewayen ikke kan nås. |
>
> Hvis leverandørens dashbord ikke viser noe forbruk, nådde ikke forespørselen leverandøren. Vanlige årsaker er:
>
> * `AI_BASE_URL` er feil, for eksempel en manglende eller ekstra `/v1`, eller `/chat/completions` lagt til på slutten.
> * Serveren kan ikke nå gatewayen. Hvis utgående trafikk må gå gjennom en proxy, setter du `AI_PROXY_URL`.
> * `AI_MODEL` er ikke en modell-ID som gatewayen kjenner.
>
> Hvis leverandøren viser forespørsler, men chatten fortsatt mislykkes, må du kontrollere at modellen støtter strømmende chat completions og funksjonsverktøy.

> [accordion] Blir chathistorikken beholdt?
>
> **Svar:** Nei. En chat beholdes bare i den åpne nettleserfanen. Hvis du oppdaterer eller lukker siden, slettes den, og **Start new chat** erstatter gjeldende chat. Det finnes ingen liste over tidligere chatter, og hvert prosjekt viser én chat om gangen.


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