문서
버킷
파일을 버킷에 업로드하면 Schift가 OCR, 청킹, 임베딩, 인덱싱을 자동 처리합니다. 이후 한 번의 쿼리로 모든 문서를 검색할 수 있습니다.
버킷 생성
bashcurl -X POST https://api.schift.io/v1/buckets \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{"name": "research-papers", "description": "ML 연구 논문 모음"}'| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
name | string | Yes | 조직 내 고유한 버킷 이름 |
description | string | No | 설명 |
파일 업로드
multipart form data로 하나 이상의 파일을 업로드합니다. 처리는 비동기로 진행되며, 엔드포인트는 job ID를 즉시 반환합니다.
bashcurl -X POST https://api.schift.io/v1/buckets/{bucket_id}/upload \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-F "[email protected]" \
-F "[email protected]" \
-F "ocr_strategy=auto" \
-F "chunk_size=512"| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
files | File[] | — | 하나 이상의 파일 (PDF, DOCX, Markdown, 이미지, 텍스트) |
ocr_strategy | string | auto | OCR 모드: auto, force, skip |
chunk_size | integer | 512 | 텍스트 청크당 문자 수 |
chunk_overlap | integer | 50 | 연속 청크 간 겹침 |
비동기 처리
각 파일은 백그라운드 작업이 됩니다. Jobs API로 진행 상황을 추적하세요. 크레딧은 업로드 시 예약되고 처리 완료 후 정산됩니다.
버킷 검색
bashcurl -X POST https://api.schift.io/v1/buckets/{bucket_id}/search \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{"query": "트랜스포머의 어텐션 메커니즘", "top_k": 5}'| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
query | string | — | 자연어 검색 쿼리 |
top_k | integer | 10 | 반환할 결과 수 |
model | string | 버킷 기본값 | 쿼리용 임베딩 모델 오버라이드 |
filter | object | — | 메타데이터 필터 |
결과에는 매칭된 텍스트 청크, 유사도 점수, 원본 파일명, 청크 메타데이터가 포함됩니다.
목록 조회 & 삭제
bash# 모든 버킷 조회
curl https://api.schift.io/v1/buckets \
-H "Authorization: Bearer $SCHIFT_API_KEY"
# 버킷 삭제 (되돌릴 수 없음)
curl -X DELETE https://api.schift.io/v1/buckets/{bucket_id} \
-H "Authorization: Bearer $SCHIFT_API_KEY"지원 파일 형식
PDF, DOCX, Markdown, 텍스트, 이미지 (JPG, PNG, WebP, TIFF, BMP, GIF). ocr_strategy가 auto이면 이미지와 스캔된 PDF는 자동으로 OCR 처리됩니다.
엣지 (Edge) 관리
버킷 내 노드 간 관계를 정의합니다. 교육과정 순서, 판례 선례 관계, 문서 계층 구조 등을 표현할 수 있습니다.
bash# 엣지 추가
curl -X POST https://api.schift.io/v1/buckets/{bucket_id}/edges \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"edges": [
{"source": "case-2024-456", "target": "case-2024-123", "relation": "supersedes"},
{"source": "chapter-1", "target": "section-1-1", "relation": "has_child"}
]
}'
# 노드의 엣지 조회
curl https://api.schift.io/v1/buckets/{bucket_id}/edges/{node_id}?direction=both \
-H "Authorization: Bearer $SCHIFT_API_KEY"
# 엣지 삭제
curl -X DELETE https://api.schift.io/v1/buckets/{bucket_id}/edges \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{"source": "A", "target": "B", "relation": "related_to"}'| relation | 설명 | 예시 |
|---|---|---|
contradicts | 두 노드가 서로 모순됨 | 판례 충돌 |
supersedes | 소스가 타겟을 대체함 | 개정 판례 |
caused_by | 인과 관계 | 사건 원인 |
is_a | 분류/유형 관계 | 카테고리 |
related_to | 일반 연관 | 기본값 |
has_child | 부모→자식 구조 | 문서 계층 |
follows | 순서/선후 관계 | 교육과정 순서 |