U
API 문서
ARCHIVE-84 RAG API를 사용하여 문서를 임베딩하고 질의하세요.
1. 빠른 시작
API 요청 시 Authorization 헤더에 API 키를 포함하세요.
Base URL
https://api.archive-84.ai
예시: 문서 질의
curl -X POST https://api.archive-84.ai/v1/rag/query \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "2024년 매출 증가율은?"}'
2. 인증
모든 API 요청에는 Bearer 토큰 인증이 필요합니다. API 키 관리 페이지에서 키를 발급받으세요.
# HeaderAuthorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxx
권한 설정: API 키 생성 시 can_query, can_ingest 권한을 설정할 수 있습니다.
3. Rate Limits
| 플랜 | 임베딩 토큰/월 | 질의 토큰/월 | 문서 수 |
|---|---|---|---|
| Free | 100K | 200K | 20 |
| Pro | 1M | 2M | 200 |
| Business | 10M | 20M | 무제한 |
4. 문서 관리
POST
/v1/rag/ingest_text
텍스트 문서를 임베딩하여 저장합니다.
Query Parameters
group_id (선택) - 그룹에 저장할 경우 그룹 ID
Request Body
{
"text": "임베딩할 텍스트 내용...",
"source": "문서명 (선택)"
}
Response
{
"status": "ok",
"chunks": 15,
"message": "Document ingested successfully"
}
POST
/v1/rag/ingest_file
PDF 또는 TXT 파일을 업로드하여 임베딩합니다.
Query Parameters
group_id (선택) - 그룹에 저장할 경우 그룹 ID
Request (multipart/form-data)
file: (binary) 업로드할 파일 source: (string) 문서명 (선택)
지원 형식
PDF
TXT
Response
{
"status": "ok",
"filename": "document.pdf",
"chunks": 42
}
GET
/v1/rag/documents
저장된 문서 목록을 조회합니다.
Query Parameters
group_id (선택) - 그룹 문서만 조회할 경우
Response
{
"ok": true,
"documents": [
{
"id": "doc_abc123",
"source": "report.pdf",
"group_id": null,
"created_at": "2024-01-15T10:30:00Z"
}
]
}
GET
/v1/rag/documents/{doc_id}
특정 문서의 상세 정보를 조회합니다.
Response
{
"ok": true,
"document": {
"id": "doc_abc123",
"source": "report.pdf",
"chunk_count": 42,
"char_count": 15000,
"file_size": 102400,
"created_at": "2024-01-15T10:30:00Z"
}
}
DELETE
/v1/rag/documents/{doc_id}
문서를 삭제합니다. 벡터 데이터도 함께 삭제됩니다.
Response
{
"ok": true,
"message": "Document deleted successfully"
}
POST
/v1/rag/documents/{doc_id}/move
문서를 개인 ↔ 그룹 간에 이동합니다.
Request Body
{
"target_group_id": "group_xyz" // null이면 개인으로 이동
}
Response
{
"ok": true,
"message": "Document moved successfully"
}
5. 질의 및 분석
POST
/v1/rag/query
저장된 문서를 기반으로 질의응답을 수행합니다.
Query Parameters
group_id (선택) - 특정 그룹 문서만 검색할 경우
Request Body
{
"query": "2024년 매출 증가율은?"
}
Response
{
"ok": true,
"answer": "2024년 매출은 전년 대비 25% 증가했습니다...",
"usage": {
"total_tokens": 1250
}
}
POST
/v1/rag/summary
저장된 문서들의 요약을 생성합니다.
Query Parameters
group_id (선택) - 특정 그룹 문서만 요약할 경우
Response
{
"ok": true,
"summary": "저장된 문서들의 전체 요약 내용...",
"usage": {
"total_tokens": 2500
}
}
6. 그룹
그룹을 통해 여러 사용자가 문서를 공유하고 함께 질의할 수 있습니다.
POST
/v1/groups
새 그룹을 생성합니다.
Request Body
{
"name": "마케팅팀",
"description": "마케팅 관련 문서 공유"
}
Response
{
"ok": true,
"group": {
"id": "grp_abc123",
"name": "마케팅팀",
"owner_id": "tenant_xyz"
}
}
GET
/v1/groups
참여 중인 그룹 목록을 조회합니다.
Response
{
"ok": true,
"groups": [
{
"id": "grp_abc123",
"name": "마케팅팀",
"role": "owner",
"status": "active",
"member_count": 5
}
]
}
GET
/v1/groups/{group_id}
그룹 상세 정보와 멤버 목록을 조회합니다.
Response
{
"ok": true,
"group": { ... },
"members": [
{
"id": "member_123",
"email": "user@example.com",
"role": "member",
"status": "active"
}
]
}
POST
/v1/groups/{group_id}/invite
사용자를 그룹에 초대합니다. (owner만 가능)
Request Body
{
"email": "newuser@example.com"
}
POST
/v1/groups/{group_id}/accept
그룹 초대를 수락합니다.
POST
/v1/groups/{group_id}/decline
그룹 초대를 거절합니다.
POST
/v1/groups/{group_id}/leave
그룹에서 탈퇴합니다. (owner는 탈퇴 불가)
DELETE
/v1/groups/{group_id}/members/{member_id}
멤버를 그룹에서 제거합니다. (owner만 가능)
DELETE
/v1/groups/{group_id}
그룹을 삭제합니다. (owner만 가능, 모든 문서도 삭제됨)
7. 통계
GET
/v1/stats
사용량 통계를 조회합니다.
Query Parameters
days (선택, 기본값: 30) - 조회 기간 (일)
Response
{
"ok": true,
"current_month": {
"embed_tokens": 50000,
"query_tokens": 120000,
"total_tokens": 170000
},
"change_rate": {
"embed_tokens": 15.5,
"query_tokens": -8.2
},
"response_time": {
"avg_ms": 1250,
"min_ms": 450,
"max_ms": 3200
},
"daily_trend": [ ... ]
}
GET
/v1/stats/compare
두 기간의 통계를 비교합니다.
Query Parameters (프리셋 사용)
preset - 7days, 30days, week, month, quarter, year
Query Parameters (커스텀 사용)
period1_start, period1_end, period2_start, period2_end (YYYY-MM-DD)
Response
{
"ok": true,
"period1": {
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"total_tokens": 150000,
"embed_tokens": 50000,
"query_tokens": 100000
},
"period2": { ... },
"comparison": {
"total_tokens": {
"diff": 30000,
"change_rate": 25.0
}
}
}
8. 채팅
POST
/v1/chat/messages
채팅 메시지를 저장합니다.
Request Body
{
"messages": [
{ "role": "user", "content": "매출 현황 알려줘" },
{ "role": "assistant", "content": "현재 매출은..." }
],
"group_id": "grp_abc" // 선택
}
GET
/v1/chat/messages
저장된 채팅 메시지를 조회합니다.
Query Parameters
group_id (선택) - 특정 그룹의 메시지만 조회
DELETE
/v1/chat/messages
채팅 메시지를 모두 삭제합니다.
Query Parameters
group_id (선택) - 특정 그룹의 메시지만 삭제
9. 에러 코드
| 코드 | 설명 |
|---|---|
400 |
잘못된 요청 - 필수 파라미터 누락 또는 형식 오류 |
401 |
인증 실패 - API 키가 유효하지 않음 |
403 |
권한 없음 - 해당 작업에 대한 권한이 없음 (플랜 한도 초과 포함) |
404 |
리소스 없음 - 요청한 문서/그룹 등을 찾을 수 없음 |
429 |
요청 제한 - Rate limit 초과 |
500 |
서버 오류 - 잠시 후 다시 시도하세요 |
에러 응답 형식
{
"detail": "에러 메시지"
}
10. SDK & 라이브러리
다양한 언어의 SDK를 지원합니다. (준비 중)
Python (준비 중)
Node.js (준비 중)
Go (준비 중)