Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
43 lines (35 loc) · 2.58 KB
/
Copy path.env.example
File metadata and controls
43 lines (35 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Spring EC2 → AI EC2 호출용 공유 시크릿. 같은 호스트가 아니므로 생략할 수 없다.
# Spring 쪽 application-secret.yml 의 같은 값과 반드시 일치해야 한다.
INTERNAL_TOKEN=change-me-32-bytes-hex
# Gemini
GEMINI_API_KEY=
# 모델은 구체 버전으로 고정한다. "-latest" 별칭은 Google이 실제 모델을 교체하는 순간
# 코드가 그대로인데도 결과가 바뀌어(재현 불가) 품질 지표를 신뢰할 수 없게 만든다.
# BACKEND 리포의 GeminiModels.PINNED 와 같은 값을 쓴다.
GEMINI_MODEL=gemini-3.5-flash
# 임베딩 모델(AI-08·09). 생성 모델과 **따로 둔다** — 계층 모델을 특화 모델로 갈아끼울 때
# 임베딩까지 함께 바뀌면 기존 컬렉션 전체를 못 쓰게 된다.
GEMINI_EMBED_MODEL=gemini-embedding-001
# 벡터 차원. 컬렉션을 만들 때 박히는 값이라, 바꾸려면 QDRANT_COLLECTION 을 새 이름으로 주고
# 재색인해야 한다. 저장(AI-08)과 조회(AI-09)가 반드시 같은 값을 써야 한다 —
# 다르면 검색이 비는 게 아니라 **엉뚱한 예시가 그럴듯한 점수와 함께** 나온다.
EMBED_DIM=768
# Qdrant (AI-08 · AI-09). 같은 인스턴스의 컨테이너.
# 아래 값은 **로컬 실행용**이다(uv run uvicorn ...). 컨테이너 안에서 도는 배포 환경에서는
# localhost 가 그 컨테이너 자신을 가리키므로 닿지 않는다 — compose 서비스명을 써야 한다.
# 배포(compose): QDRANT_URL=http://qdrant:6333
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=
QDRANT_COLLECTION=meeting_tuple_vector
# few-shot 조회를 끈다. Qdrant 를 아직 안 띄운 환경에서 계층만 돌려볼 때 0 으로 둔다 —
# 켜 둔 채로 두면 계층 호출마다 조회 실패 로그가 쌓인다(동작 자체는 한다).
FEW_SHOT_ENABLED=1
# 로컬에서 Gemini 호출 없이 라우팅만 확인할 때 1. 계층은 고정 스텁을 돌려준다.
DRY_RUN=0
# ── AI-01 VAD ─────────────────────────────────────────────────────────────────
# silero-vad ONNX 모델 경로. 이미지에 함께 넣는다(models/ · Dockerfile COPY).
# 없으면 AI-01 이 VAD_MODEL_MISSING 으로 거절한다 — 조용히 통과시키지 않는다.
VAD_MODEL_PATH=/app/models/silero_vad.onnx
# S3 리전. 자격증명은 여기 두지 않는다 — AI EC2 의 IAM 롤을 boto3 가 집는다.
# 액세스 키를 이 파일에 두면 유출 표면이 되고 자동 회전도 안 된다.
S3_REGION=ap-northeast-2