# CSV Agent

**CSV Agent 노드**는 업로드한 CSV 파일을 기반으로, LLM을 통해 자연어 질의에 응답할 수 있는 에이전트입니다. 사용자는 CSV 파일을 업로드한 뒤, 데이터에 대한 질문을 텍스트로 입력하면 관련된 정보를 대화형으로 받을 수 있습니다. &#x20;

***

### 주요 기능

* **CSV 파일 기반 질의 응답**: 엑셀처럼 정리된 데이터를 문서처럼 활용 가능
* **맞춤형 판다스 코드 활용**: `read_csv` 파라미터를 통해 데이터 전처리 방식 지정
* **LLM 기반 인터페이스**: 데이터를 이해하고 요약, 분석하는 언어 모델 연동

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-0f92078a96cb100eb963dbd95cee5bf51acc4bba%2Fimage%20(62).png?alt=media" alt=""><figcaption><p>WindyFlo CSV Agent</p></figcaption></figure>

<figure><img src="https://2658622170-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfkjMyYilRWTdXwhLDYHx%2Fuploads%2Fgit-blob-0d719f47362539203a3a2e1469a049b6368da922%2Fimage%20(64).png?alt=media" alt=""><figcaption><p>WindyFlo CSV Agent Parameters</p></figcaption></figure>

### 입력값 (Inputs)

| 항목                   | 설명                                               | 필수 여부 |
| -------------------- | ------------------------------------------------ | ----- |
| **Language Model**   | CSV 데이터를 분석하고 응답을 생성할 LLM입니다. 예: GPT-4, Claude 등 | 필수    |
| **Input Moderation** | 입력된 질문의 적절성을 검열할지 여부                             | 선택    |
| **CSV File**         | 분석할 CSV 파일을 업로드합니다. (사용자 업로드 필수)                 | 필수    |

***

### 파라미터 (Parameters)

| 항목                               | 설명                                                                                                                                                                                       |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **System Message**               | <p>LLM에 부여되는 역할 지시 문구입니다. 기본값은 아래와 같으며, 사용자 응답을 CSV 기반 정보로 제한합니다:<br><code>I want you to act as a document that I am having a conversation with. Your name is “AI Assistant”…</code></p> |
| **Custom Pandas Read\_CSV Code** | <p><code>pandas.read\_csv()</code> 호출 시 사용할 커스텀 코드입니다. 기본값: <code>read\_csv(csv\_data)</code><br>필요에 따라 인코딩, 구분자, 필터링 옵션 등을 포함 가능</p>                                                    |

***

### 출력값 (Outputs)

| 출력 항목             | 설명                                                           |
| ----------------- | ------------------------------------------------------------ |
| **AgentExecutor** | CSV 데이터 기반 질의응답 결과를 출력합니다. 예: 특정 조건의 레코드 수, 평균 값 계산, 항목 요약 등 |

***

### 활용 예시

1. **매출 분석**\
   → “3월 한 달간 총 매출은 얼마인가요?”\
   → LLM이 `Amount` 필드를 기준으로 합산
2. **고객 분석**\
   → “서울에 거주하는 고객 수를 알려줘.”\
   → `City` 필터링 후 개수 계산
3. **요약 요청**\
   → “이 데이터에 있는 주요 항목들을 요약해줘.”\
   → 열 이름, 행 수, 결측치 정보 등 요약 제공

***

### 주의사항

* **CSV 파일의 구조가 명확해야** 합니다. 첫 행에는 반드시 헤더가 포함되어야 합니다.
* **맞춤형 `read_csv` 코드를 사용할 때는 신중하게** 작성하세요. 예: `read_csv(csv_data, encoding='utf-8-sig', sep=';')`
* System Message를 수정하면 LLM의 응답 스타일이 바뀔 수 있습니다.

***

CSV Agent는 데이터를 분석하고 요약해야 하는 다양한 상황에서 매우 유용하며, 누구나 코드 없이 파일 기반의 AI 분석 기능을 사용할 수 있게 해줍니다.
