Phase 1-3 구현: - init.sql v2: 12테이블 (기존 5 + 신규 7) + 분류기 v2 프롬프트 - migrate-v2.sql: 기존 DB 마이그레이션 스크립트 - setup-qdrant.sh: tk_company 컬렉션 + payload 인덱스 설정 - 워크플로우 v2 (37노드): 토큰검증, Rate Limit, 프리필터, 분류기v2(response_tier), 3-tier 라우팅(local/Haiku/Opus), 멀티-컬렉션 RAG, 예산 체크, 선택적 메모리 - .env.example + docker-compose.yml: 새 환경변수 추가 - CLAUDE.md, QUICK_REFERENCE.md, docs/architecture.md 전면 갱신 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
70 lines
2.3 KiB
Bash
70 lines
2.3 KiB
Bash
#!/bin/bash
|
|
# Qdrant 컬렉션 설정: tk_company 생성 + chat_memory 인덱스 추가
|
|
# 실행: bash init/setup-qdrant.sh
|
|
|
|
QDRANT_URL="${QDRANT_URL:-http://localhost:6333}"
|
|
|
|
echo "=== Qdrant 컬렉션 설정 ==="
|
|
|
|
# 1. tk_company 컬렉션 생성 (bge-m3: 1024 dimensions)
|
|
echo "▶ tk_company 컬렉션 생성..."
|
|
curl -s -X PUT "${QDRANT_URL}/collections/tk_company" \
|
|
-H 'Content-Type: application/json' \
|
|
-d '{
|
|
"vectors": {
|
|
"size": 1024,
|
|
"distance": "Cosine"
|
|
}
|
|
}' | python3 -m json.tool
|
|
|
|
# 2. tk_company payload 인덱스 생성
|
|
echo "▶ tk_company 인덱스 생성..."
|
|
for field in year department doc_type created_at; do
|
|
field_type="keyword"
|
|
if [ "$field" = "year" ]; then field_type="integer"; fi
|
|
if [ "$field" = "created_at" ]; then field_type="keyword"; fi
|
|
|
|
curl -s -X PUT "${QDRANT_URL}/collections/tk_company/index" \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{
|
|
\"field_name\": \"${field}\",
|
|
\"field_schema\": \"${field_type}\"
|
|
}" | python3 -c "import sys,json; print(f' {\"${field}\"}: {json.loads(sys.stdin.read()).get(\"status\", \"error\")}')"
|
|
done
|
|
|
|
# 3. chat_memory 인덱스 추가 (username, topic, intent)
|
|
echo "▶ chat_memory 인덱스 추가..."
|
|
for field in username topic intent; do
|
|
curl -s -X PUT "${QDRANT_URL}/collections/chat_memory/index" \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{
|
|
\"field_name\": \"${field}\",
|
|
\"field_schema\": \"keyword\"
|
|
}" | python3 -c "import sys,json; print(f' {\"${field}\"}: {json.loads(sys.stdin.read()).get(\"status\", \"error\")}')"
|
|
done
|
|
|
|
# 4. 확인
|
|
echo ""
|
|
echo "=== 컬렉션 목록 ==="
|
|
curl -s "${QDRANT_URL}/collections" | python3 -c "
|
|
import sys,json
|
|
data = json.loads(sys.stdin.read())
|
|
for c in data.get('result',{}).get('collections',[]):
|
|
name = c['name']
|
|
info = json.loads(open('/dev/stdin','r').read()) if False else None
|
|
print(f' - {name}')
|
|
" 2>/dev/null || curl -s "${QDRANT_URL}/collections" | python3 -m json.tool
|
|
|
|
echo ""
|
|
echo "=== tk_company 상세 ==="
|
|
curl -s "${QDRANT_URL}/collections/tk_company" | python3 -c "
|
|
import sys,json
|
|
data = json.loads(sys.stdin.read())
|
|
r = data.get('result',{})
|
|
print(f' 벡터수: {r.get(\"points_count\",0)}')
|
|
print(f' 상태: {r.get(\"status\",\"unknown\")}')
|
|
" 2>/dev/null || echo " (확인 실패)"
|
|
|
|
echo ""
|
|
echo "설정 완료!"
|