AI 채팅 목록 조회
지정한 AI 대화의 채팅 메시지 목록을 페이지 단위로 조회합니다. since 매개변수에 채팅 GUID를 지정하면 해당 채팅 이전의 메시지를 가져와 무한 스크롤 형태로 활용할 수 있습니다.
필요 권한
사용자 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
GET /api/sonar/ai/conversations/:guid/chats
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
"https://HOSTNAME/api/sonar/ai/conversations/a1b2c3d4-e5f6-7890-abcd-ef1234567890/chats?limit=10"
요청 매개변수
경로 매개변수
| 키 | 타입 | 설명 | 비고 |
|---|---|---|---|
| guid | 문자열 | 대화 GUID | 36자 |
쿼리 매개변수
| 키 | 필수 | 타입 | 설명 | 비고 |
|---|---|---|---|---|
| since | X | 문자열 | 오프셋 채팅 GUID | 지정 시 해당 채팅 이전의 메시지를 반환 |
| limit | O | 32비트 정수 | 한 번에 가져올 갯수 | 기본값: 10 |
정상 응답
{
"chats": [
{
"guid": "c1d2e3f4-1234-5678-9abc-def012345678",
"conversation_guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"category": "AUTO",
"question": "최근 1시간 동안 차단된 IP를 알려줘",
"tasks": [
{
"chat_guid": "c1d2e3f4-1234-5678-9abc-def012345678",
"idx": 0,
"content": "차단 이력 조회",
"category": "PLAN",
"status": "COMPLETED",
"need_approve": false,
"approved": false,
"request": {
"method": "GET",
"path": "/api/sonar/response-logs",
"params": {
"from": "2024-09-15 14:00:00",
"to": "2024-09-15 15:00:00"
}
},
"response": {
"total_count": 3,
"items": []
}
}
],
"created": "2024-09-15 14:30:05+0900",
"updated": "2024-09-15 14:30:30+0900"
}
]
}
- chats (배열): 채팅 메시지 목록 (최신순)
- guid (문자열): 채팅 GUID
- conversation_guid (문자열): 소속 대화 GUID
- category (문자열): 채팅 카테고리 (
AUTO,PLAN,ACTION,QNA등) - question (문자열): 사용자 질문
- tasks (배열): 태스크 목록
- chat_guid (문자열): 소속 채팅 GUID
- idx (32비트 정수): 태스크 순번
- content (문자열): 태스크 내용
- category (문자열): 태스크 카테고리 (
PLAN,ACTION,QNA,AUTO) - status (문자열): 태스크 상태 (
WAIT,LOADED,WAIT_APPROVE,COMPLETED,ERROR,STOPPED) - need_approve (불리언): 승인 필요 여부
- approved (불리언): 승인 완료 여부
- request (맵): 태스크가 호출하는 REST API 요청 정보
- response (맵): REST API 응답 본문
- post_action (맵): 후처리 정보 (있는 경우)
- error (맵): 오류 정보 (오류 발생 시)
- stream (맵): LLM 스트리밍 응답 정보 (스트리밍 중일 때)
- chat_error_message (문자열): 채팅 처리 중 발생한 오류 메시지 (있는 경우)
- created (문자열): 채팅 생성 시각
- updated (문자열): 채팅 수정 시각
오류 응답
필수 매개변수가 누락된 경우
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "limit should be not null"
}
guid가 GUID 형식이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-param-type",
"error_msg": "guid should be guid type."
}
대화가 존재하지 않거나 소유자가 아닌 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "cannot get conversation"
}
권한이 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}