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

# Інтеграція ШІ

> Налаштування ШІ-чату, підказок щодо помилок LaTeX, квот і служб пошуку в розгортанні Kubernetes.

ШІ-асистент і асистент помилок LaTeX працюють у службі **web** (модулі `workbench` і `error-assistant`) кожного пода Ayakaleaf Pro. Що робить кожен параметр, доступ користувачів і квоти описано в розділі [Інтеграція ШІ](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/overleaf-toolkit/integrations/ai-integration.md); ця сторінка описує, як перенести це в Kubernetes.

| | |
| - | - |
| Служба | web, у кожному поді Ayakaleaf Pro; зчитується під час запуску web. Інструмент `web_fetch` працює через linked-url-proxy у тому самому поді |
| Под → зовні | `AI_BASE_URL`; `WEB_SEARCH_URL` (за замовчуванням `https://api.tavily.com/search`) і `DOCS_MCP_URL`, якщо пошук увімкнено; сторінки, які модель читає за допомогою `web_fetch` |
| Зовні → Overleaf | немає |
| Стан | лічильники квот токенів у Redis, спільні для всіх реплік; історія чату залишається в браузері |
| Періодичні завдання | немає |

### Конфігурація

**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` має дорівнювати саме `"true"`. Асистент з'являється, лише коли задано всі `AI_ENABLED`, `AI_BASE_URL`, `AI_MODEL` і `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. Застосуйте, перезапустіть і перевірте шлюз із кожного пода**

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

Будь-який статус HTTP означає, що шлюз доступний; `000` означає, що ні.

Інструмент `web_fetch` завантажує сторінки через той самий проксі, що й файли [Зовнішньої URL-адреси](https://ayakaleaf-pro.mintlify.site/uk/on-premises/configuration/kubernetes/external-url.md), тож параметри `OVERLEAF_LINKED_URL_*` також обмежують те, що може читати модель.

### Кілька реплік

Нічого додаткового. Квота токенів підраховується в Redis, тож використання користувача однакове на кожній репліці, а скидання адміністратором діє всюди.

### Перевірено в Kubernetes

Із макетами OpenAI-сумісного шлюзу, Tavily та кінцевої точки GitBook MCP (довіра до яких встановлена через `NODE_EXTRA_CA_CERTS` з `overleaf-certs`), у Kubernetes 1.37, наші наскрізні тести проходять: для ШІ-асистента на трьох репліках за HAProxy (31 випадок) — чати з викликами інструментів і запропонованими правками, пошук в інтернеті та документації, читання вебсторінок через linked-url-proxy з обмеженням `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`, вкладення-зображення та PDF, згода, квота токенів, що підраховується в Redis, ШІ, вимкнений для користувача та для екземпляра, і повільні з'єднання зі шлюзом; для асистента помилок на одній репліці (15 випадків) — запропоновані виправлення, згода, спільна квота токенів і вимкнений ШІ.


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