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

# Integracja AI

> Konfiguracja czatu AI, sugestii dotyczących błędów LaTeX, limitów i usług wyszukiwania we wdrożeniu Kubernetes.

Asystent AI i asystent błędów LaTeX działają w usłudze **web** (moduły `workbench` i `error-assistant`) każdego poda Ayakaleaf Pro. Co robi każde ustawienie, dostęp użytkowników i limity opisano w [Integracja AI](https://ayakaleaf-pro.mintlify.site/pl/on-premises/configuration/overleaf-toolkit/integrations/ai-integration.md); ta strona opisuje, jak umieścić to w Kubernetes.

| | |
| - | - |
| Usługa | web, w każdym podzie Ayakaleaf Pro; odczytywane przy starcie web. Narzędzie `web_fetch` działa przez linked-url-proxy w tym samym podzie |
| Pod → na zewnątrz | `AI_BASE_URL`; `WEB_SEARCH_URL` (domyślnie `https://api.tavily.com/search`) i `DOCS_MCP_URL`, jeśli wyszukiwanie jest włączone; strony, które model odczytuje za pomocą `web_fetch` |
| Z zewnątrz → Overleaf | brak |
| Stan | liczniki limitu tokenów w Redis, współdzielone przez wszystkie repliki; historia czatu pozostaje w przeglądarce |
| Zadania okresowe | brak |

### Konfiguracja

**1. ConfigMap**

```yaml title="30-config.yaml (additions)" wrap theme={null}
  AI_ENABLED: "true"
  AI_BASE_URL: https://ai-gateway.example.com/v1
  AI_MODEL: YOUR_TEXT_MODEL_ID
  # optional, see the Toolkit page
  # AI_IMAGE_MODEL: YOUR_IMAGE_CAPABLE_MODEL_ID
  # AI_PDF_MODEL: YOUR_PDF_CAPABLE_MODEL_ID
  # AI_TOKEN_QUOTA: "200000"
  # AI_TOKEN_QUOTA_PERIOD: month
  # AI_PROXY_URL: http://proxy.example.com:3128
```

`AI_ENABLED` musi mieć dokładnie wartość `"true"`. Asystent pojawia się tylko wtedy, gdy ustawione są wszystkie: `AI_ENABLED`, `AI_BASE_URL`, `AI_MODEL` i `AI_API_KEY`.

**2. Secret**

```bash theme={null}
kubectl -n overleaf patch secret overleaf-secrets --type merge -p '{"stringData":{
  "AI_API_KEY":"<gateway key>",
  "TAVILY_API_KEY":"<search key, optional>"}}'
```

**3. Zastosuj, zrestartuj i sprawdź bramę z każdego poda**

```bash theme={null}
kubectl apply -f 30-config.yaml
kubectl -n overleaf rollout restart deployment/overleaf     # or statefulset/overleaf
for p in $(kubectl -n overleaf get pod -l app=overleaf -o name); do   # app=overleaf-ha for several replicas
  kubectl -n overleaf exec "$p" -- curl -sS -o /dev/null -w "$p %{http_code}\n" https://ai-gateway.example.com/v1/models
done
```

Dowolny status HTTP oznacza, że brama jest osiągalna; `000` oznacza, że nie jest.

Narzędzie `web_fetch` pobiera strony przez to samo proxy co pliki [Zewnętrzny URL](https://ayakaleaf-pro.mintlify.site/pl/on-premises/configuration/kubernetes/external-url.md), więc ustawienia `OVERLEAF_LINKED_URL_*` ograniczają również to, co model może odczytać.

### Kilka replik

Nic dodatkowego. Limit tokenów jest liczony w Redis, więc zużycie użytkownika jest takie samo na każdej replice, a reset wykonany przez administratora obowiązuje wszędzie.

### Przetestowano na Kubernetes

Wobec atrapy bramy zgodnej z OpenAI, Tavily i punktu końcowego GitBook MCP (zaufanych przez `NODE_EXTRA_CA_CERTS` z `overleaf-certs`), na Kubernetes 1.37, nasze testy end-to-end przechodzą pomyślnie: dla asystenta AI na trzech replikach za HAProxy (31 przypadków) czaty z wywołaniami narzędzi i sugerowanymi zmianami, wyszukiwanie w sieci i w dokumentacji, odczytywanie stron internetowych przez linked-url-proxy ograniczone przez `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`, załączniki z obrazami i plikami PDF, zgoda, limit tokenów liczony w Redis, AI wyłączone dla użytkownika i dla instancji oraz wolne połączenia z bramą; dla asystenta błędów na jednej replice (15 przypadków) sugerowane poprawki, zgoda, współdzielony limit tokenów i wyłączone AI.


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