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

> Kubernetes 배포에서 AI 채팅, LaTeX 오류 제안, 할당량 및 검색 서비스를 구성합니다.

AI 어시스턴트와 LaTeX 오류 어시스턴트는 모든 Ayakaleaf Pro 파드의 **web** 서비스(`workbench` 및 `error-assistant` 모듈)에서 실행됩니다. 각 설정의 역할, 사용자 접근 및 할당량은 [AI 통합](https://ayakaleaf-pro.mintlify.site/ko/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/ko/on-premises/configuration/kubernetes/external-url.md) 파일과 같은 프록시를 통해 페이지를 가져오므로, `OVERLEAF_LINKED_URL_*` 설정은 모델이 읽을 수 있는 대상도 제한합니다.

### 여러 레플리카

추가 작업이 없습니다. 토큰 할당량은 Redis에서 집계되므로 사용자의 사용량은 모든 레플리카에서 동일하며, 관리자의 초기화도 모든 곳에 적용됩니다.

### Kubernetes에서의 테스트

OpenAI 호환 게이트웨이, Tavily, GitBook MCP 엔드포인트의 모의 서버(`overleaf-certs`의 `NODE_EXTRA_CA_CERTS`로 신뢰)를 대상으로 한 Kubernetes 1.37 환경에서, 엔드투엔드 테스트가 통과했습니다. HAProxy 뒤의 세 레플리카에서 AI 어시스턴트(31개 케이스)는 도구 호출과 편집 제안이 포함된 채팅, 웹 및 문서 검색, `OVERLEAF_LINKED_URL_ALLOWED_RESOURCES`로 제한된 linked-url-proxy를 통한 웹 페이지 읽기, 이미지 및 PDF 첨부, 동의, Redis에서 집계되는 토큰 할당량, 사용자 및 인스턴스 단위의 AI 끄기, 게이트웨이와의 느린 연결을 검증했고, 레플리카 하나에서 오류 어시스턴트(15개 케이스)는 수정 제안, 동의, 공유 토큰 할당량, AI 끄기를 검증했습니다.


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