Skip to content

Commit 5e352eb

Browse files
committed
refactor: externalize hardcoded config to .env
- Remove hardcoded defaults from config.py, load via dotenv - Deduplicate env vars in tracing.py (import from config) - Add .env.example with sample values - Update README.md and INSTALL.md to reference .env.example
1 parent 8c9c5eb commit 5e352eb

5 files changed

Lines changed: 47 additions & 30 deletions

File tree

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# =============================================================================
2+
# Agentic AI Platform — 앱 환경 설정 템플릿
3+
# cp .env.example .env 후 실제 값으로 수정하세요.
4+
# ⚠️ .env 파일은 .gitignore에 포함되어 있습니다. 절대 커밋하지 마세요.
5+
# =============================================================================
6+
7+
# --- Bifrost Gateway ---
8+
BIFROST_ENDPOINT=http://bifrost.ai-inference.svc.cluster.local:8080/v1
9+
BIFROST_API_KEY=test-1234
10+
11+
# --- Model names (Bifrost provider/model 형식) ---
12+
MODEL_SIMPLE=self-hosted-vllm/qwen3-8b
13+
MODEL_COMPLEX=bedrock/global.anthropic.claude-haiku-4-5-20251001-v1:0
14+
MODEL_DOCUMENT=self-hosted-vllm/qwen3-8b
15+
MODEL_CLASSIFIER=self-hosted-vllm/qwen3-8b
16+
MODEL_EVALUATOR=self-hosted-vllm/qwen3-8b
17+
18+
# --- Langfuse (leave empty to disable tracing) ---
19+
LANGFUSE_SECRET_KEY=sk-lf-your-secret-key
20+
LANGFUSE_PUBLIC_KEY=pk-lf-your-public-key
21+
LANGFUSE_HOST=http://langfuse.observability.svc.cluster.local:3000

eks-agentic-ai-platform/INSTALL.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -644,14 +644,18 @@ source .venv/bin/activate
644644
645645
### 8.2 환경변수 설정
646646

647-
`.env` 파일을 생성하여 환경변수를 관리합니다 (`.gitignore`추가 권장):
647+
`.env.example` 파일을 복사하여 실제 값으로 수정합니다 (`.env``.gitignore`포함되어 있습니다):
648648

649649
```bash
650-
# .env
650+
cp .env.example .env
651+
```
652+
653+
`.env` 파일을 열어 Langfuse API 키 등을 실제 값으로 수정합니다:
654+
655+
```bash
656+
# .env (수정 필요한 항목)
651657
LANGFUSE_SECRET_KEY=sk-lf-your-secret-key
652658
LANGFUSE_PUBLIC_KEY=pk-lf-your-public-key
653-
LANGFUSE_BASE_URL=http://localhost:3000
654-
VLLM_URL=http://localhost:8000/v1
655659
```
656660

657661
Langfuse API 키는 Langfuse Web UI에서 발급받습니다:

eks-agentic-ai-platform/README.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,10 @@ kubectl port-forward svc/langfuse-web 3000:3000 -n observability &
120120
python3 -m venv .venv && source .venv/bin/activate
121121
.venv/bin/pip install langchain_openai langgraph langfuse python-dotenv
122122

123-
# .env 파일 생성
124-
cat > .env << 'EOF'
125-
LANGFUSE_SECRET_KEY=sk-lf-your-secret-key
126-
LANGFUSE_PUBLIC_KEY=pk-lf-your-public-key
127-
LANGFUSE_BASE_URL=http://localhost:3000
128-
VLLM_URL=http://localhost:8000/v1
129-
EOF
123+
# .env 파일 생성 (.env.example을 복사하여 실제 값으로 수정)
124+
cp .env.example .env
125+
# .env 파일을 열어 Langfuse API 키 등 실제 값으로 수정
126+
# vi .env
130127

131128
# 실행
132129
.venv/bin/python demo.py
Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
import os
22

3+
from dotenv import load_dotenv
4+
5+
load_dotenv()
6+
37
# Bifrost Gateway
4-
BIFROST_ENDPOINT = os.getenv(
5-
"BIFROST_ENDPOINT",
6-
"http://bifrost.ai-inference.svc.cluster.local:8080/v1",
7-
)
8-
BIFROST_API_KEY = os.getenv("BIFROST_API_KEY", "test-1234")
8+
BIFROST_ENDPOINT = os.getenv("BIFROST_ENDPOINT")
9+
BIFROST_API_KEY = os.getenv("BIFROST_API_KEY")
910

10-
# Model names (환경변수로 오버라이드 가능)
11-
MODEL_SIMPLE = os.getenv("MODEL_SIMPLE", "qwen3-8b")
12-
MODEL_COMPLEX = os.getenv("MODEL_COMPLEX", "anthropic.claude-3-sonnet")
13-
MODEL_DOCUMENT = os.getenv("MODEL_DOCUMENT", "gpt-4o")
14-
MODEL_CLASSIFIER = os.getenv("MODEL_CLASSIFIER", "gpt-4o")
15-
MODEL_EVALUATOR = os.getenv("MODEL_EVALUATOR", "gpt-4o")
11+
# Model names
12+
MODEL_SIMPLE = os.getenv("MODEL_SIMPLE")
13+
MODEL_COMPLEX = os.getenv("MODEL_COMPLEX")
14+
MODEL_DOCUMENT = os.getenv("MODEL_DOCUMENT")
15+
MODEL_CLASSIFIER = os.getenv("MODEL_CLASSIFIER")
16+
MODEL_EVALUATOR = os.getenv("MODEL_EVALUATOR")
1617

1718
# Classification-to-model mapping
1819
CLASSIFICATION_MODEL_MAP = {
@@ -24,7 +25,4 @@
2425
# Langfuse
2526
LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY", "")
2627
LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY", "")
27-
LANGFUSE_HOST = os.getenv(
28-
"LANGFUSE_HOST",
29-
"http://langfuse.observability.svc.cluster.local:3000",
30-
)
28+
LANGFUSE_HOST = os.getenv("LANGFUSE_HOST")

eks-agentic-ai-platform/app/tracing.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@
44
키가 없으면 no-op으로 동작하여 앱 로직에 영향을 주지 않습니다.
55
"""
66

7-
import os
87
from contextlib import contextmanager
98

10-
LANGFUSE_SECRET_KEY = os.getenv("LANGFUSE_SECRET_KEY", "")
11-
LANGFUSE_PUBLIC_KEY = os.getenv("LANGFUSE_PUBLIC_KEY", "")
12-
LANGFUSE_HOST = os.getenv("LANGFUSE_HOST", "http://langfuse-web.observability.svc.cluster.local:3000")
9+
from app.config import LANGFUSE_SECRET_KEY, LANGFUSE_PUBLIC_KEY, LANGFUSE_HOST
1310

1411
LANGFUSE_ENABLED = bool(LANGFUSE_SECRET_KEY and LANGFUSE_PUBLIC_KEY)
1512

0 commit comments

Comments
 (0)