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

> Konfigurera AI-chatt, förslag för LaTeX-fel, användaråtkomst, kvoter och valfria söktjänster.

<Info>
  Den här funktionen tillhandahålls av [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/overleaf-pro) och finns tillgänglig från och med v6.3.0. Vi välkomnar din återkoppling om du stöter på problem.
</Info>

## AI-assistent och assistent för LaTeX-fel

Ayakaleaf Pro för in AI-funktioner i redigeraren på två sätt.

* AI-assistenten kan använda dina projektdokument och den aktuella markeringen som kontext för att besvara frågor och föreslå ändringar som du kan granska.
* Felassistenten föreslår en riktad korrigering när du väljer ett LaTeX-kompileringsfel.

<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

Lägg till följande i `config/variables.env` i din Toolkit-driftsättning och ersätt exempel-URL:en, nyckeln och modellen med värden från din leverantör:

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

Förvara riktiga API-nycklar i din driftsättnings miljöfil och håll dem utanför versionshanteringen. Värdena ovan är platshållare, inte fungerande inloggningsuppgifter.

<Info>
  Kvaliteten på AI-förslagen beror på vilken modell du väljer. Om du redan har en Codex- eller ChatGPT-prenumeration kan du ansluta den via den OpenAI-kompatibla slutpunkten i [CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI).
</Info>

`AI_BASE_URL` är bas-URL:en för det OpenAI-kompatibla API:et, inklusive leverantörens versionsprefix där det krävs. Lägg inte till `/chat/completions`, eftersom vi lägger till det internt. Gatewayen och modellen måste stödja strömmande chat completions och funktionsverktyg. Båda funktionerna skickar dokumentkontext till denna gateway; chatten kan även skicka uppladdade bilder när en modell med bildstöd används.

Toolkit vidarebefordrar `config/variables.env` till applikationscontainern. Behåll variabelnamnen som visas här; lägg inte till något `OVERLEAF_`-prefix. Återskapa applikationscontainern från Toolkit-katalogen när du har ändrat dessa variabler:

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

### Gateway-inställningar

| Variabel | Standard | Syfte |
| - | - | - |
| `AI_ENABLED` | `false` | Ange exakt `true` för att aktivera chatt och felförslag för instansen. Om variabeln inte är satt eller har något annat värde förblir de inaktiverade. En fungerande gateway-konfiguration krävs också. |
| `AI_BASE_URL` | Inget; obligatorisk | Bas-URL för det OpenAI-kompatibla API:et. |
| `AI_API_KEY` | Inget; obligatorisk | API-nyckel för den gatewayen, används av servern. |
| `AI_MODEL` | Inget; obligatorisk | Textmodell som används av standardkonfigurationen för chatt och av förslagen för LaTeX-fel. |
| `AI_IMAGE_MODEL` | Inte satt | Valfri modell med bildstöd på samma gateway, med samma API-nyckel. |
| `AI_MAX_STEPS` | `20` | Maximalt antal verktygsanrop per användarmeddelande i AI-chatten, inklusive automatiska fortsättningar. Använd ett positivt heltal. |
| `AI_PROXY_URL` | Inte satt | Valfri URL till en HTTP-proxy för anrop till AI-gatewayen. Den konfigurerar inte klienterna för webb- eller dokumentationssökning. |
| `AI_TOKEN_QUOTA` | `0` | Tokengräns per användare som delas av chatt och felförslag under varje period. Inte satt eller `0` innebär obegränsat; använd ett positivt heltal för en gräns. |
| `AI_TOKEN_QUOTA_PERIOD` | `month` | `month` nollställs den första dagen kl. 00:00 UTC; `week` nollställs på måndagar kl. 00:00 UTC. Andra värden använder `month`. |

För bilduppladdningar anger du `AI_IMAGE_MODEL` till en modell som tar emot bildindata och stöder de verktyg som chatten använder. Varje chattförfrågan vars historik innehåller en bifogad bild använder den här modellen, inklusive senare meddelanden i samma konversation. Utan den här inställningen använder bildförfrågningar den vanliga chattmodellen, som då själv måste stödja bilder. Förslagen för LaTeX-fel fortsätter att använda `AI_MODEL`.

Så här aktiverar du till exempel en bildmodell och en veckovis AI-tilldelning:

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

### Användaråtkomst och samtycke

Tillgänglighet på instansnivå och användarbehörighet är separata. `AI_ENABLED` och gateway-konfigurationen styr instansens tillgänglighet. En inloggad användare måste också klara de befintliga kontokontrollerna:

* `aiFeatures.enabled` får inte vara `false`. Detta befintliga databasfält styr både chatt och förslag för LaTeX-fel.
* Användarens effektiva `features.aiUsageQuota` måste matcha den konfigurerade obegränsade nivån (`unlimited` som standard), eller så måste den befintliga äldre behörigheten `features.aiErrorAssistant` vara aktiverad. Effektiva funktioner inkluderar tillämpliga åsidosättningar av kontofunktioner.

Att bara aktivera kryssrutan ändrar inte användarens plan. Fältet `aiUsageQuota` är en behörighetsnivå, inte en numerisk tokentilldelning. `AI_TOKEN_QUOTA` är en separat gräns som tillämpas lika för varje behörig användare; den nuvarande modulen erbjuder ingen individuell numerisk gräns per konto.

I administratörens användarlista väljer du en användare och öppnar **Update account info → AI features**. **Enable AI features** uppdaterar `aiFeatures.enabled` när kontoändringarna sparas. Servern kontrollerar aktuella behörigheter vid nya AI-förfrågningar, inklusive förfrågningar från en redan öppen redigerare. Uppdatera redigeraren för att uppdatera dess synliga kontroller efter en behörighetsändring.

### Användning och nollställning

Administratörsfliken AI features visar den aktuella periodens **Usage**, **Limit** och knappen **Reset** på en rad. Användningen läses in när fliken öppnas; den uppdateras inte kontinuerligt. Öppna fliken igen när en chatt eller ett felförslag har slutförts för att se det senaste värdet. Nollställningen träder i kraft omedelbart och rensar endast den användarens räknare för den aktuella perioden, varefter den visade användningen läses in på nytt. Du behöver inte spara resten av kontoformuläret.

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

Användningen av chatt och felförslag delar en Redis-räknare, som uppdateras utifrån det totala antal tokens som modellleverantören rapporterar när en förfrågan har slutförts. Detta omfattar in- och utdatatokens över alla modellsteg. Indata kan omfatta konversationshistorik, dokumentkontext och verktygsresultat, så en uppföljningsfråga kan förbruka fler tokens än bara det nya meddelandet. Användningen registreras även när gränsen är **Unlimited**. Förfrågningar utan rapporterat tokenantal läggs inte till i räknaren; historisk oregistrerad användning kan inte rekonstrueras av modulen.

Kvotkontroller görs innan strömningen börjar. En förfrågan, eller flera samtidiga förfrågningar, kan överskrida den återstående tilldelningen innan senare förfrågningar blockeras. Detta är en användningstilldelning snarare än ett strikt utgiftstak hos leverantören. Om kvotuppslaget misslyckas tillåts förfrågan och felet loggas.

Båda funktionerna använder `AI_TOKEN_QUOTA`; felförslag har ingen separat gräns för antal förfrågningar. Att nollställa räknaren ändrar inte behörighet, samtycke, den konfigurerade gränsen eller leverantörens egna faktureringsuppgifter. Räknarna använder periodnycklar i UTC och upphör efter 40 dagar; om Redis-data behålls bevaras aktuell användning när applikationen startas om.

### Valfria söktjänster

Webbsökning använder ett Tavily-kompatibelt API. Den är tillgänglig när en API-nyckel för sökning har konfigurerats. Dessa inställningar är oberoende av AI-gatewayen:

| Variabel | Standard | Syfte |
| - | - | - |
| `TAVILY_API_KEY` | Inte satt | API-nyckel för sökning. Har företräde framför `WEB_SEARCH_API_KEY`. |
| `WEB_SEARCH_API_KEY` | Inte satt | Alternativt namn för API-nyckeln för sökning. |
| `WEB_SEARCH_URL` | `https://api.tavily.com/search` | Sökslutpunkt; anpassade slutpunkter måste acceptera Tavilys format för förfrågningar och svar. |
| `WEB_SEARCH_MAX_RESULTS` | `5` | Antal resultat som begärs per sökning; använd ett positivt heltal som tjänsten stöder. |
| `WEB_SEARCH_DEPTH` | `basic` | Sökdjup, normalt `basic` eller `advanced`. |
| `WEB_SEARCH_PROVIDER` | `tavily` | Den nuvarande implementeringen stöder endast det Tavily-kompatibla protokollet; att ändra detta värde väljer inte någon annan adapter. |
| `DOCS_MCP_URL` | `https://docs.overleaf.com/~gitbook/mcp` | Slutpunkt för dokumentationssökning. Ange en tom sträng för att inaktivera dokumentationssökning. |

Till exempel:

```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ökningen anropar verktyget `searchDocumentation` på den konfigurerade GitBook MCP-slutpunkten och accepterar JSON- eller SSE-svar. Detta är en MCP-klient för dokumentationssökning; dessa moduler exponerar inte projektfiler som en MCP-server och tillhandahåller inte något allmänt register över MCP-servrar.

Sökfrågor skickas till den konfigurerade söktjänsten. Sökresultaten kan sedan inkluderas i förfrågningar till AI-gatewayen. Chattens meny **Tools** låter användarna aktivera eller inaktivera **Web** och **Documentation** för sina förfrågningar; ett verktyg måste också vara konfigurerat på servern för att vara tillgängligt för modellen.


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