Spaces:
Sleeping
Sleeping
ForStream Claude Opus 4.8 commited on
Commit ·
5454e77
1
Parent(s): 7eedd82
Fix 500 on /api/ask: semantic_search TTL 경로 robust 탐색
Browse files첫 axisB 질문의 KoSimCSE warm-up에서 semantic_search._TTL_PATH가
code의 부모/ontology로 단정 → 컨테이너 /app/ontology(없음) FileNotFoundError
→ 500. 실제 TTL은 /app/active/ontology. main.py는 ONTOLOGY_DIR robust
탐색으로 이미 해결됐으나 semantic_search는 자체 경로를 독립 계산해 누락.
- semantic_search.py: _ONT_DIR 후보 탐색 (ontology / active·ontology / data)
- Dockerfile: CACHE_BUST v2→v3 (COPY code/ 레이어 캐시 무효화)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Dockerfile +1 -1
- code/semantic_search.py +15 -5
Dockerfile
CHANGED
|
@@ -39,7 +39,7 @@ RUN pip install --upgrade pip && pip install -r /app/api/requirements.txt
|
|
| 39 |
|
| 40 |
# 코드 (rag_engine·semantic_search 등 active/code의 핵심 모듈)
|
| 41 |
# 캐시 무효화용 ARG (commit SHA 다르면 캐시 무효화)
|
| 42 |
-
ARG CACHE_BUST=
|
| 43 |
COPY code/ /app/code/
|
| 44 |
# 백엔드
|
| 45 |
COPY api/ /app/api/
|
|
|
|
| 39 |
|
| 40 |
# 코드 (rag_engine·semantic_search 등 active/code의 핵심 모듈)
|
| 41 |
# 캐시 무효화용 ARG (commit SHA 다르면 캐시 무효화)
|
| 42 |
+
ARG CACHE_BUST=v3
|
| 43 |
COPY code/ /app/code/
|
| 44 |
# 백엔드
|
| 45 |
COPY api/ /app/api/
|
code/semantic_search.py
CHANGED
|
@@ -15,11 +15,21 @@ from typing import Optional
|
|
| 15 |
|
| 16 |
import numpy as np
|
| 17 |
|
| 18 |
-
# 기본 경로 —
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
|
| 24 |
MODEL_NAME = os.environ.get("KOSIMCSE_MODEL", "BM-K/KoSimCSE-roberta")
|
| 25 |
|
|
|
|
| 15 |
|
| 16 |
import numpy as np
|
| 17 |
|
| 18 |
+
# 기본 경로 — code/의 형제 ontology/. 단, code/의 위치가 환경마다 달라서
|
| 19 |
+
# (컨테이너 /app/code → 부모 /app, 로컬 active/code → 부모 active) 부모 기준 단정은 어긋난다.
|
| 20 |
+
# 데이터는 컨테이너 /app/active/ontology, 로컬 active/ontology, hf_app 로컬 hf_app/data 에 존재 → 후보 탐색.
|
| 21 |
+
# (main.py의 ONTOLOGY_DIR 탐색과 동일 철학 — 한쪽만 고치면 경로가 다시 어긋난다.)
|
| 22 |
+
_CODE_DIR = Path(__file__).resolve().parent
|
| 23 |
+
_ONT_DIR = next(
|
| 24 |
+
(p for p in (_CODE_DIR.parent / "ontology",
|
| 25 |
+
_CODE_DIR.parent / "active" / "ontology",
|
| 26 |
+
_CODE_DIR.parent / "data")
|
| 27 |
+
if p.exists()),
|
| 28 |
+
_CODE_DIR.parent / "ontology",
|
| 29 |
+
)
|
| 30 |
+
_CACHE_DIR = _ONT_DIR / "_embeddings_cache"
|
| 31 |
+
_TTL_PATH = _ONT_DIR / "investment_ontology_v1_10.ttl"
|
| 32 |
+
_CHUNKS_PATH = _ONT_DIR / "regulations_chunks_v14.jsonl"
|
| 33 |
|
| 34 |
MODEL_NAME = os.environ.get("KOSIMCSE_MODEL", "BM-K/KoSimCSE-roberta")
|
| 35 |
|