문서
채널
Schift RAG를 KakaoTalk 등 메시징 플랫폼과 연동하여 실시간 대화형 검색을 구현합니다.
Channels API는 Schift 컨렉션을 메시징 플랫폼과 연결합니다. 연결된 채널을 통해 사용자가 메시지를 보내면, Schift가 자동으로 쿼리를 임베딩하고 연결된 컨렉션을 검색하여 플랫폼 제약 내에서 포맷된 결과를 반환합니다.
Kakao Webhook
bashPOST /v1/channels/kakao/webhookKakaoTalk Open Builder 스킬 콜백으로 메시지를 수신합니다. 인증은 웹후크 페이로드의 bot_id를 사용합니다 (채널 설정에 등록 필수). 봇당 60초에 30건으로 요청이 제한됩니다.
처리 흐름
메시지 수신 -> bot_id 인증 -> 요청 제한 확인 -> 쿼리 임베딩 -> 연결된 컨렉션 검색 -> 결과 포맷 (900자 제한) -> Kakao simpleText 응답 반환. 대화 이력을 위해 사용자 메시지가 백그라운드에서 벡터로 저장됩니다.
메시지 발송
bashPOST /v1/channels/kakao/sendKakaoTalk 채널을 통해 알림톡을 발송합니다. API 키 인증이 필요합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
channel_config_id | string | 예 | 채널 설정 ID |
phone | string | 예 | 수신자 전화번호 |
template_code | string | 예 | Kakao 알림톡 템플릿 코드 |
template_args | object | 아니오 | 템플릿 변수 치환값 |
user_id | string | 아니오 | Kakao 사용자 ID (phone 대체) |
message | string | 아니오 | 일반 메시지 텍스트 (템플릿 미사용 시) |
bashcurl -X POST https://api.schift.io/v1/channels/kakao/send \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"channel_config_id": "ch_abc123",
"phone": "+821012345678",
"template_code": "order_confirmation",
"template_args": {"order_id": "ORD-2026-001", "customer": "Kim"}
}'채널 설정 CRUD
| 메서드 | 엔드포인트 | 설명 |
|---|---|---|
| POST | /v1/channels/configs | 채널 설정 등록 (프로바이더, API 키, 연결 컨렉션) |
| GET | /v1/channels/configs | 모든 설정 목록 (시크릿 마스킹) |
| DELETE | /v1/channels/configs/{id} | 설정 삭제 |
bash# Kakao 채널 등록
curl -X POST https://api.schift.io/v1/channels/configs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"name": "고객 지원 봇",
"provider": "kakao",
"config": {
"bot_id": "your-kakao-bot-id",
"collection": "support-docs",
"rest_api_key": "your-rest-api-key",
"channel_id": "your-channel-id"
}
}'