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

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

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

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

<Info>
  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).
</Info>

`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 når det brukes en modell som støtter bilder.

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

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å de eksisterende kontokontrollene:

* `aiFeatures.enabled` må ikke være `false`. Dette eksisterende databasefeltet styrer både chat og forslag til LaTeX-feilrettinger.
* Brukerens effektive `features.aiUsageQuota` må samsvare med det konfigurerte ubegrensede nivået (`unlimited` som standard), eller den eksisterende eldre tillatelsen `features.aiErrorAssistant` må være aktivert. Effektive funksjoner inkluderer gjeldende overstyringer av kontofunksjoner.

Å aktivere avkrysningsboksen alene endrer ikke brukerens abonnement. Feltet `aiUsageQuota` er et tillatelsesnivå, ikke en numerisk tokenkvote. `AI_TOKEN_QUOTA` er en separat 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. Oppdater editoren for å oppdatere de synlige kontrollene etter en endring i tillatelser.

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

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

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; disse modulene eksponerer ikke prosjektfiler som en MCP-server og tilbyr ikke noe generelt register for MCP-servere.

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.


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