Data Source 노드
Data Source 노드는 외부 데이터를 가져오는 역할을 합니다. API 호출, 데이터베이스 조회, 파일 읽기 등을 수행할 수 있습니다.
📋 Data Source 노드 목록
| 노드 | 설명 | 사용 예시 |
|---|---|---|
| VectorDB | AI 참조 문서 조회 | RAG, 문서 검색 |
| Http 요청 | REST API 호출 | 날씨, 뉴스, 외부 데이터 |
VectorDB
AI가 참조할 데이터를 추가해주세요
✨ 주요 기능
- ✅ 문서를 업로드하고 벡터 DB에 저장
- ✅ 질문과 관련된 문서 자동 검색
- ✅ 프롬프트 자동 완성 (RAG 구현 최적화)
🔧 설정 방법
| 설정 항목 | 설명 | 예시 |
|---|---|---|
| files | 참조할 문서 파일 목록 | PDF, TXT, MD 등 |
📋 지원 파일 형식
- ✅ TXT
- ✅ Markdown (.md)
🎯 사용 방법
문서 업로드
- VectorDB 노드 클릭
- "파일 추가" 버튼
- 문서 업로드 (최대 10MB)
자동 벡터화
- 업로드된 문서가 자동으로 벡터화됨
- 의미 기반 검색 가능
검색 및 프롬프트 생성
- 이전 노드의 입력(질문)을 바탕으로 관련 문서를 검색합니다.
- 중요: 검색된 문서 내용과 사용자의 질문을 결합하여 완성된 프롬프트 텍스트를 생성합니다.
📝 결과 데이터 구조
이 노드는 단순한 문서 내용만 반환하는 것이 아니라, LLM에게 바로 보낼 수 있는 프롬프트 형식의 텍스트를 반환합니다 ({{result}}).
구성 요소:
- 검색된 관련 문서 조각들 (
[context]) - 사용자 질문 (
[질의])
예시 ({{result}} 값):
[context]:
유사도: 0.8123
(참조 문서 내용 1...)
==========
유사도: 0.7654
(참조 문서 내용 2...)
---
[질의]: 사용자가 입력한 질문
💡 사용 예시
문서 기반 Q&A 챗봇
[텍스트 입력] → [VectorDB] → [ChatGPT] → [챗봇 응답]
- 사용자 질문 입력
- VectorDB가 관련 문서 찾아서 프롬프트 구성
- ChatGPT는 별도 프롬프트 작성 없이 ``만 입력받아 답변 생성
ChatGPT 설정 예시:
prompt: {{result}}
(system prompt에는 역할만 지정하면 됩니다)
Http 요청
JSON Body를 포함한 HTTP 요청을 보냅니다
✨ 주요 기능
- ✅ REST API 호출
- ✅ GET, POST, PUT, DELETE 지원
- ✅ 커스텀 헤더 설정
- ✅ JSON Body 전송
🔧 필수 설정
| 설정 항목 | 설명 | 예시 |
|---|---|---|
| url* | 요청할 API 주소 | https://api.example.com/data |
| method* | HTTP 메소드 | GET, POST, PUT, DELETE |
| headers* | HTTP 헤더 | {'Content-Type': 'application/json'} |
| body* | 요청 Body (JSON) | {{result}} |
📡 GET 요청 예시
날씨 API 호출
URL: https://api.openweathermap.org/data/2.5/weather?q=Seoul&appid=YOUR_API_KEY
Method: GET
Headers: {'Content-Type': 'application/json'}
Body: (비워두기)
📡 POST 요청 예시
외부 AI API 호출
URL: https://api.example.com/generate
Method: POST
Headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_TOKEN'
}
Body: {
"prompt": "{{result}}",
"max_tokens": 100
}
📝 결과 데이터
다음 노드에서 {{result}}로 API 응답에 접근 가능
예시: {{result}} → API 응답 텍스트 (JSON String 등)
💡 사용 예시 1: 날씨 기반 추천
[클릭] → [Http 요청] → [ChatGPT] → [Telegram]
- Http 요청으로 날씨 API 호출
- ChatGPT가 날씨 기반 옷차림 추천
- Telegram으로 전송
💡 사용 예시 2: 뉴스 요약
[클릭] → [Http 요청] → [ChatGPT] → [Slack]
- 뉴스 API에서 최신 뉴스 가져오기
- ChatGPT가 3줄 요약
- Slack으로 전송
🎯 실전 팁
API 키 보안 관리
- ❌ URL에 직접 노출:
?api_key=123456 - ✅ 헤더로 전송:
{'Authorization': 'Bearer 123456'}
동적 URL 생성
https://api.example.com/user/{{result}}
🆚 VectorDB vs Http 요청
| 항목 | VectorDB | Http 요청 |
|---|---|---|
| 용도 | 문서 검색 (RAG) | API 호출 |
| 데이터 | 내부 문서 | 외부 API |
| 결과물 | 완성된 프롬프트 | API 응답 원본 |
| 사용 예시 | Q&A, 매뉴얼 검색 | 날씨, 뉴스, 연동 |
🔗 다른 노드와 연결하기
VectorDB + AI Generation
[질문] → [VectorDB] → [ChatGPT] → [응답]
VectorDB가 이미 프롬프트를 만들어주므로, AI 노드에서는 {{result}}를 그대로 사용하면 됩니다.
Http 요청 + AI Generation
[시작] → [Http 요청] → [Claude] → [Slack]
API에서 받은 데이터를 AI가 분석합니다.
🎯 다음 단계
- Text Generation 노드 - AI로 텍스트 생성
- Image Generation 노드 - AI로 이미지 생성
- Output 노드 - 결과 전송하기
❓ 자주 묻는 질문
Q: VectorDB에 몇 개의 파일을 업로드할 수 있나요? A: 현재는 파일당 10MB, 총 100MB까지 업로드 가능합니다.
Q: Http 요청이 타임아웃되면 어떻게 되나요? A: 30초 후 자동으로 실패 처리되며, 워크플로우가 중단됩니다.