o2o-plagiarism-ai/scripts/sample_curl.sh
hbyang 4913bf3ecc API Key 인증 완전 제거
사내 운영 전제로 X-API-Key 인증을 전면 제거.
- app/core/auth.py 삭제
- routes.py에서 Depends(require_api_key) 모두 제거
- config.Settings에서 api_keys / api_key_set 제거
- .env / .env.example에서 API_KEYS 제거
- docker-compose.yml에서 API_KEYS 환경변수 제거 (KOSIMCSE_MODEL 추가)
- UI(index.html)에서 DEFAULT_API_KEY 상수 + X-API-Key 헤더 모두 제거
- scripts/sample_curl.sh, sample_python.py에서 키 헤더 제거
- tests: test_detect_requires_api_key → test_detect_no_auth_required로 갱신
- README: 인증 컬럼 제거, curl 예시에서 헤더 제거
2026-05-14 08:58:28 +09:00

37 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# 샘플 호출 스크립트. 서비스가 http://localhost:8000 에서 동작 중이어야 한다.
set -euo pipefail
API_HOST="${API_HOST:-http://localhost:8000}"
echo "--- 1) Health ---"
curl -sS "${API_HOST}/v1/health" | python3 -m json.tool
echo
echo "--- 2) 단건 탐지: 어린왕자 유사 텍스트 ---"
curl -sS -X POST "${API_HOST}/v1/plagiarism/detect" \
-H "Content-Type: application/json" \
-d '{
"doc_id": "test-001",
"text": "어린왕자는 작은 별에서 온 소년이다. 그는 별을 떠나 여러 행성을 여행하며 다양한 어른들을 만난다. 마침내 지구에 도착해 여우를 만나고 길들임의 의미를 배운다.",
"metadata": {"title": "테스트 작품", "author": "익명"}
}' | python3 -m json.tool
echo
echo "--- 3) 배치 등록 ---"
JOB_RESPONSE=$(curl -sS -X POST "${API_HOST}/v1/plagiarism/batch" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"doc_id": "b-001", "text": "앤 셜리는 상상력이 풍부한 고아 소녀로 초록 지붕 집에 입양된다."},
{"doc_id": "b-002", "text": "홍길동은 서자로 태어나 활빈당을 조직하여 탐관오리의 재물을 빼앗는다."}
]
}')
echo "${JOB_RESPONSE}" | python3 -m json.tool
JOB_ID=$(echo "${JOB_RESPONSE}" | python3 -c 'import json,sys; print(json.load(sys.stdin)["job_id"])')
echo
echo "--- 4) 배치 결과 조회 ---"
sleep 1
curl -sS "${API_HOST}/v1/plagiarism/batch/${JOB_ID}" | python3 -m json.tool