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문자열대화 GUID36자
쿼리 매개변수
필수타입설명비고
sinceX문자열오프셋 채팅 GUID지정 시 해당 채팅 이전의 메시지를 반환
limitO32비트 정수한 번에 가져올 갯수기본값: 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"
}