AI 채팅 목록 조회
지정한 AI 대화의 채팅 메시지 목록을 최신순으로 조회합니다. since 매개변수에 채팅 GUID를 지정하면 해당 채팅 이전의 메시지를 가져와 무한 스크롤 형태로 활용할 수 있습니다. 새 질문은 AI 채팅 질문 전송 API로 전송합니다.
필요 권한
로그인한 계정으로 이용할 수 있습니다. 각 사용자는 자신이 생성한 대화의 채팅만 조회할 수 있습니다.
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비트 정수 | 최대 갯수 |
정상 응답
{
"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": 1,
"content": "차단 이력 조회",
"category": "ACTION",
"status": "COMPLETED",
"need_approve": false,
"approved": false,
"request": {
"action": "rest-api",
"method": "GET",
"path": "/api/sonar/response-logs",
"params": {}
},
"response": {
"total_count": 3
}
}
],
"created": "2024-09-15 14:30:05+0900",
"updated": "2024-09-15 14:30:30+0900"
}
]
}
- chats (배열): 채팅 메시지 목록 (최신순)
- guid (문자열): 채팅 GUID
- conversation_guid (문자열): 소속 대화 GUID
- category (문자열): 채팅 처리 모드 (
AUTO,PLAIN,QNA,ACTION) - question (문자열): 사용자 질문
- tasks (배열): 태스크 목록
- chat_guid (문자열): 소속 채팅 GUID
- idx (32비트 정수): 태스크 순번 (1부터 시작)
- content (문자열): 태스크 내용
- category (문자열): 태스크 처리 모드 (
AUTO,PLAIN,QNA,ACTION) - status (문자열): 태스크 상태 (
WAIT,LOADED,WAIT_APPROVE,COMPLETED,ERROR,STOPPED) - need_approve (불리언): 실행 전 승인 필요 여부. 상태가
WAIT가 아닐 때만 포함됩니다. - approved (불리언): 승인 완료 여부. 상태가
WAIT가 아닐 때만 포함됩니다. - request (맵): 태스크가 수행하는 요청 정보(액션 종류, 호출 메서드·경로, 파라미터 등). 상태가
WAIT가 아니며 요청 정보가 있을 때만 포함됩니다. - response (맵): 요청 수행 결과. 상태가
WAIT가 아니며 응답이 있을 때만 포함됩니다. - post_action (맵): 후처리 결과. 상태가
WAIT가 아니며 후처리가 있을 때만 포함됩니다. - error (맵): 오류 정보. 상태가
WAIT가 아니며 오류가 발생했을 때만 포함됩니다. - stream (맵): 진행 중인 LLM 스트리밍 응답 정보. 스트리밍이 진행 중일 때만 포함됩니다.
- created (문자열): 채팅 생성 시각 (
yyyy-MM-dd HH:mm:ssZ형식) - updated (문자열): 채팅 수정 시각 (
yyyy-MM-dd HH:mm:ssZ형식)
오류 응답
필수 매개변수가 누락된 경우
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."
}
limit 값이 정수가 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-argument",
"error_msg": "'limit' parameter should be int type"
}