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

# Integrasi AI

> Konfigurasikan chat AI, saran error LaTeX, kuota, dan layanan pencarian pada deployment Kubernetes.

Asisten AI dan asisten error LaTeX berjalan di layanan **web** (modul `workbench` dan `error-assistant`) di setiap pod Ayakaleaf Pro. Apa fungsi setiap pengaturan, akses pengguna, dan kuota dijelaskan di [Integrasi AI](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/overleaf-toolkit/integrations/ai-integration.md); halaman ini menerapkannya ke Kubernetes.

| | |
| - | - |
| Layanan | web, di setiap pod Ayakaleaf Pro; dibaca saat web dimulai. Tool `web_fetch` melewati linked-url-proxy di pod yang sama |
| Pod → luar | `AI_BASE_URL`; `WEB_SEARCH_URL` (default `https://api.tavily.com/search`) dan `DOCS_MCP_URL` jika pencarian aktif; halaman yang dibaca model dengan `web_fetch` |
| Luar → Overleaf | tidak ada |
| Status | penghitung kuota token di Redis, dibagi oleh semua replika; riwayat chat tetap berada di browser |
| Job berkala | tidak ada |

### Konfigurasi

**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` harus tepat bernilai `"true"`. Asisten hanya muncul jika `AI_ENABLED`, `AI_BASE_URL`, `AI_MODEL`, dan `AI_API_KEY` semuanya diatur.

**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. Terapkan, restart, dan periksa gateway dari setiap pod**

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

Status HTTP apa pun berarti gateway dapat dijangkau; `000` berarti tidak.

Tool `web_fetch` mengambil halaman melalui proxy yang sama dengan file [URL Eksternal](https://ayakaleaf-pro.mintlify.site/id/on-premises/configuration/kubernetes/external-url.md), sehingga pengaturan `OVERLEAF_LINKED_URL_*` juga membatasi apa yang boleh dibaca oleh model.

### Beberapa replika

Tidak ada yang perlu ditambahkan. Kuota token dihitung di Redis, sehingga penggunaan seorang pengguna sama di setiap replika, dan reset oleh admin berlaku di semua replika.

### Diuji di Kubernetes

Terhadap tiruan (mock) gateway yang kompatibel dengan OpenAI, Tavily, dan endpoint MCP GitBook (dipercaya melalui `NODE_EXTRA_CA_CERTS` dari `overleaf-certs`), di Kubernetes 1.37, pengujian end-to-end kami lulus: untuk asisten AI pada tiga replika di belakang HAProxy (31 kasus), chat dengan pemanggilan tool dan saran suntingan, pencarian web dan dokumentasi, pembacaan halaman web melalui linked-url-proxy yang dibatasi oleh `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`, lampiran gambar dan PDF, persetujuan, kuota token yang dihitung di Redis, AI yang dinonaktifkan untuk seorang pengguna dan untuk instans, serta koneksi lambat ke gateway; untuk asisten error pada satu replika (15 kasus), saran perbaikan, persetujuan, kuota token bersama, dan AI yang dinonaktifkan.


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