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