> ## Documentation Index
> Fetch the complete documentation index at: https://docs.viamoss.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 세션 데이터 내보내기

> Moss Dashboard에서 세션 대화 데이터를 내보내는 방법

## 개요

Dashboard의 Sessions 화면에서 세션 대화 데이터를 CSV 또는 JSON으로 내보낼 수 있습니다.

**지원 형식:** `csv`, `json`\
**행 기준:** 사용자 노출 메시지(`user_query`, `assistant_response`, `system_continuation`) 기준 1행\
**하드 제한:** 요청당 최대 `10,000`행

내보내기 결과가 10,000행을 초과하면 API는 다음 오류를 반환합니다:

```text theme={null}
Export exceeds 10000 rows (<count> found). Please narrow your filters.
```

결과를 줄이려면 필터(날짜 범위, 사용자, 마지막 활동, 평가 등급)를 사용하세요.

## 내보내기 컬럼

세션 내보내기에는 다음 컬럼이 포함됩니다:

* `session_id`
* `user_id`
* `session_created_at`
* `message_sequence` (내보내기 대상 메시지 기준으로 세션별 재번호 부여)
* `message_type`
* `message_content`
* `message_created_at`
* `evaluation_rating`
* `evaluation_comment`

## 메시지 타입 설명

세션 내보내기에는 사용자 노출 메시지 타입만 포함됩니다:

* `user_query`: 사용자가 채팅에 직접 입력한 질문/요청
* `system_continuation`: 상호작용 완료 후 같은 대화를 이어가기 위한 사용자 트리거형 연속 이벤트
* `assistant_response`: AI 응답 페이로드. 내보내기에서는 `message_content`에 JSON 문자열 형태로 저장됨 (아래 스키마 참고)

## `assistant_response` 메시지 콘텐츠 스키마

`message_type = "assistant_response"`인 경우 `message_content`는 JSON 객체가 문자열로 직렬화되어 저장됩니다.
기준 스키마:

```json theme={null}
{
  "guidance_text": "string (required)",
  "target_node_ids": ["string"],
  "interaction_type": "click | input | change | null",
  "suggests_interactive_guide": false,
  "plan": {
    "goal": "string",
    "steps": [
      {
        "order": 1,
        "title": "string",
        "description": "string | null",
        "target_component_label": "string | null",
        "status": "pending | current | completed | skipped"
      }
    ],
    "current_step_index": 0,
    "status": "in_progress | completed | abandoned"
  },
  "step_update": {
    "step_id": "uuid",
    "new_status": "pending | current | completed | skipped"
  },
  "step_updates": [
    {
      "step_id": "uuid",
      "new_status": "pending | current | completed | skipped"
    }
  ]
}
```

`guidance_text`는 필수이며, 나머지 필드는 응답 상황에 따라 선택적으로 포함됩니다.

## JSON 내보내기 예시 (`assistant_response`)

```json theme={null}
{
  "session_id": "cs_abc123",
  "user_id": "user_42",
  "session_created_at": "2026-03-03T11:58:04.987654+00:00",
  "message_sequence": 2,
  "message_type": "assistant_response",
  "message_content": "{\"guidance_text\":\"우측 상단의 Save를 클릭하세요.\",\"target_node_ids\":[\"e7f2c9b4-3d9b-49e7-a8f0-2b1f4fd8b9d1\"],\"interaction_type\":\"click\",\"suggests_interactive_guide\":false}",
  "message_created_at": "2026-03-03T11:58:07.120000+00:00",
  "evaluation_rating": "helpful",
  "evaluation_comment": ""
}
```
