AI 채팅
개요
Starnion의 AI 채팅은 Anthropic Claude 기반 에이전트와 자연어로 대화할 수 있는 핵심 기능입니다. 단순한 질의응답을 넘어, 가계부 기록, 일기 작성, 목표 관리, 이미지 분석 등 다양한 스킬을 채팅 한 줄로 실행할 수 있습니다.
에이전트는 대화 맥락을 유지하며, 이전에 나눈 대화 내용을 기억해 이어지는 질문에 자연스럽게 답변합니다. 이미지 첨부 시 AI가 내용을 분석하거나 설명해 줍니다.
채팅 방법 비교
Starnion은 세 가지 채팅 방법을 제공합니다.
| 항목 | CLI TUI | 웹 UI | Telegram |
|---|---|---|---|
| 접근 방법 | starnion chat 터미널 명령 |
브라우저에서 직접 사용 | 텔레그램 앱에서 봇과 대화 |
| 이미지 첨부 | 미지원 | 드래그&드롭, 클립보드 붙여넣기 | 텔레그램 파일 첨부 기능 사용 |
| 스트리밍 응답 | 실시간 타이핑 효과 (TUI) | 실시간 타이핑 효과 | 메시지 수신 후 일괄 표시 |
| 추천 용도 | 빠른 터미널 채팅 | 이미지 분석, 웹 인터페이스 | 이동 중 빠른 조회, 알림 수신 |
기본 사용법
첫 대화 시작하기
웹 UI에서 새 대화를 시작하려면:
- 좌측 사이드바에서 ”+ 새 대화” 버튼을 클릭합니다.
- 채팅 입력창에 메시지를 입력하고 Enter 또는 전송 버튼을 누릅니다.
- AI가 응답을 스트리밍으로 표시합니다.
첫 메시지를 보내면 대화 제목이 자동으로 생성됩니다. 예를 들어 “오늘 점심 뭐 먹을까?”라고 물으면 대화 제목이 “오늘 점심 추천” 정도로 자동 설정됩니다.
사용자: 안녕하세요! 오늘 날씨 어때요?
AI: 안녕하세요! 현재 서울 날씨를 확인해 드릴게요.
🔧 `weather` 실행 중...
서울의 현재 날씨는 맑음, 기온 18°C입니다.
미세먼지 농도는 보통 수준이에요.
대화 이어가기
기존 대화를 선택하면 이전 맥락이 유지됩니다. AI는 같은 스레드 내에서 나눈 대화를 기억하므로 “그거 다시 설명해줘”, “방금 말한 금액으로 기록해줘” 같은 참조 표현을 사용할 수 있습니다.
사용자: 아메리카노 4500원 결제했어
AI: 카페 아메리카노 4,500원을 식비로 기록했어요 ☕
(2025년 3월 8일, 카드)
사용자: 아 식비 말고 카페로 바꿔줘
AI: 수정했습니다. 카페 항목으로 변경됐어요.
대화 목록 관리
좌측 사이드바에서 최근 대화 목록(최대 100개)을 확인할 수 있습니다. 목록은 최근 활동 순으로 정렬됩니다.
- 제목 변경: 대화 제목 옆 편집 아이콘을 클릭
- 삭제: 대화 옆 메뉴에서 삭제 선택
- 검색: 상단 검색창에서 대화 제목 또는 내용으로 검색
파일 첨부
이미지 첨부
이미지를 첨부하면 AI가 시각적 분석을 수행합니다. 멀티모달 비전 모델이 이미지 내용을 파악하고 질문에 답변합니다.
첨부 방법:
- 입력창 왼쪽의 📎 아이콘 클릭 후 파일 선택
- 이미지를 입력창에 드래그&드롭
- 클립보드에 복사된 이미지를 Ctrl+V(또는 Cmd+V)로 붙여넣기
사용 예시:
[영수증 이미지 첨부]
사용자: 이 영수증 내용 가계부에 기록해줘
AI: 영수증을 분석했어요.
- 스타벅스 아메리카노 5,500원
- 샌드위치 6,800원
총 12,300원을 카페 항목으로 기록할까요?
지원 형식: JPEG, PNG, GIF, WebP
문서 첨부
PDF, Word, 텍스트 파일 등 문서를 첨부하면 AI가 내용을 분석하고 요약하거나 질문에 답변합니다.
[계약서.pdf 첨부]
사용자: 이 계약서에서 중요한 조항 요약해줘
AI: 계약서를 분석했습니다. 주요 내용은 다음과 같아요:
1. 계약 기간: 2025년 4월 1일 ~ 2026년 3월 31일
2. 위약금 조항: 계약 해지 시 잔여 기간 금액의 20%
3. 자동 갱신: 만료 30일 전 해지 통보 없으면 1년 자동 연장
지원 형식: PDF, DOCX, TXT, MD, CSV
오디오 첨부
오디오 파일을 첨부하면 AI가 음성을 인식하고 텍스트로 변환하거나 내용을 분석합니다.
지원 형식: MP3, WAV, M4A, OGG
대화 기능
대화 제목 변경
대화 제목은 첫 메시지 전송 후 자동으로 생성됩니다. 원하는 제목으로 직접 변경할 수도 있습니다.
- 사이드바에서 대화 제목 오른쪽의 편집(✏️) 아이콘 클릭
- 새 제목 입력 후 Enter 또는 확인 버튼
대화 삭제
사이드바에서 대화 항목에 마우스를 올리면 삭제 버튼이 나타납니다. 삭제한 대화는 복구되지 않으며, 해당 스레드의 모든 메시지 기록이 함께 삭제됩니다.
대화 검색
상단 검색창에서 키워드를 입력하면 대화 제목 및 메시지 내용을 검색할 수 있습니다. 검색 결과에서 해당 대화를 클릭하면 바로 이동합니다.
스트리밍 응답
Starnion은 AI 응답을 실시간으로 스트리밍합니다. 응답 전체가 완성되기를 기다리지 않고, 단어 단위로 화면에 표시됩니다.
스트리밍 동작 방식:
AI SDK v6 SSE 스트림 이벤트 순서:
data: {"type":"start"}
data: {"type":"start-step"}
data: {"type":"text-start","id":"txt"}
data: {"type":"text-delta","id":"txt","delta":"안녕"}
data: {"type":"text-delta","id":"txt","delta":"하세요!"}
data: {"type":"text-end","id":"txt"}
data: {"type":"finish-step"}
data: {"type":"finish","finishReason":"stop"}
data: [DONE]
도구(스킬)를 사용하는 경우 실행 중 상태가 표시됩니다:
🔧 `weather` 실행 중...
🔧 `finance_add` 실행 중...
최대 스트리밍 대기 시간은 3분이며, 이후에는 자동으로 연결이 종료됩니다.
WebSocket 연결
웹 UI는 WebSocket을 통해 실시간 양방향 통신을 합니다. 아래는 연결에서 메시지 전달까지의 전체 흐름입니다.
브라우저 Gateway (Go) Agent (Python)
| | |
|-- WS 연결 요청 -------->| |
|<-- 연결 수락 ------------| |
| | |
|-- {method:"chat", | |
| message:"안녕", | |
| thread_id:"uuid"} -->| |
| |-- gRPC ChatStream ------->|
| | |-- LLM 호출
| | |<-- 토큰 스트림
| |<-- TEXT 이벤트 ----------|
|<-- {event:"text", | |
| text:"안녕"} -------| |
| |<-- TEXT 이벤트 ----------|
|<-- {event:"text", | |
| text:"하세요!"} ----| |
| |<-- STREAM_END ------------|
|<-- {event:"done"} ------| |
| | |
연결 유지:
- Ping 주기: 50초마다 서버에서 Ping 전송
- Pong 대기: 60초 이내 응답 없으면 연결 종료
- 메시지 최대 크기: 64 KB
- 재연결: 브라우저에서 자동 재연결 시도
인증 및 보안:
- WebSocket 연결 시 사용자 ID를 기반으로 대화 소유권을 검증합니다.
- 다른 사용자의 대화에 접근을 시도하면 즉시 차단됩니다.
맥락 유지 (RAG 4-Layer Memory)
Starnion 에이전트는 대화 맥락을 여러 계층으로 관리합니다.
[메시지 전송]
|
v
+---------------------+
| Layer 1: 단기 기억 | 현재 대화 스레드 내 최근 메시지
| (In-Context) | → LangGraph thread_id로 관리
+---------------------+
|
v
+---------------------+
| Layer 2: 장기 기억 | 사용자별 중요 정보 영구 저장
| (Vector Store) | → 임베딩 검색으로 관련 기억 조회
+---------------------+
|
v
+---------------------+
| Layer 3: 도구 결과 | 스킬 실행 결과 (날씨, 가계부 등)
| (Tool Results) | → 현재 대화에 자동 포함
+---------------------+
|
v
+---------------------+
| Layer 4: 사용자 프로필 | 이름, 선호도, 페르소나 설정
| (User Profile) | → 모든 대화에 기본 컨텍스트 제공
+---------------------+
실제 맥락 유지 예시:
[대화 1 - 1주일 전]
사용자: 나 매달 교통비 예산을 10만원으로 잡고 있어
AI: 교통비 예산 10만원 기억해 둘게요.
[대화 2 - 오늘]
사용자: 이번 달 교통비 얼마 썼어?
AI: 이번 달 교통비를 확인해 볼게요.
🔧 `finance_summary` 실행 중...
이번 달 교통비 지출: 73,400원 (예산 10만원의 73.4%)
아직 26,600원 남았어요! 잘 관리하고 계시네요 👍
대화 히스토리는 LangGraph의 thread_id로 관리되며, 대화를 새로 만들 때마다 새로운 스레드가 생성됩니다. 이전 대화로 돌아가면 해당 스레드의 기억이 복원됩니다.
팁 & 예시
잘 쓰는 방법
구체적으로 말하기:
좋은 예:
사용자: 오늘 저녁 삼겹살 18,000원 현금으로 냈어. 식비로 기록해줘.
덜 좋은 예:
사용자: 밥 먹었어
여러 작업을 한 번에:
사용자: 오늘 지출 정리해줘.
카페 아메리카노 4,500원, 점심 8,000원, 편의점 3,200원
AI: 세 건을 기록했습니다.
- 카페 / 아메리카노 / 4,500원 ☕
- 식비 / 점심 / 8,000원 🍱
- 식비 / 편의점 / 3,200원 🏪
오늘 총 지출: 15,700원
날짜 지정 입력:
사용자: 어제 영화 봤어. 콘텐츠 15,000원이었어.
AI: 3월 7일 문화/영화 15,000원으로 기록했어요 🎬
실제 대화 예시 모음
날씨 확인:
사용자: 내일 우산 필요해?
AI: 내일 서울 날씨를 확인해 볼게요.
🔧 `weather` 실행 중...
내일(3월 9일) 오후부터 비가 올 예정이에요. 🌧️
우산 챙기는 걸 추천드려요!
월간 지출 요약:
사용자: 이번 달 얼마 썼어?
AI: 🔧 `finance_summary` 실행 중...
3월 지출 현황 (1~8일):
- 식비: 42,500원
- 카페: 18,000원
- 교통: 15,400원
- 합계: 75,900원
지난달 같은 기간보다 12.3% 많이 쓰셨어요.
주로 식비 증가가 원인이에요.
이미지 분석:
[음식 사진 첨부]
사용자: 이 음식 칼로리 얼마야?
AI: 사진을 분석했어요.
비빔밥처럼 보이는데, 일반적인 비빔밥 1인분 기준으로
약 500~600 kcal 정도입니다. 참기름 양에 따라 달라질 수 있어요!
문서 요약:
[보고서.pdf 첨부]
사용자: 핵심 내용만 3줄로 요약해줘
AI: 네, 문서를 분석해서 3줄로 정리해 드릴게요.
1. 2024년 매출이 전년 대비 23% 성장했으며 특히 온라인 채널이 주도했습니다.
2. 고객 만족도는 92점으로 역대 최고치를 기록했습니다.
3. 2025년 목표는 신규 시장 진출과 모바일 앱 리뉴얼입니다.
💬 텔레그램 사용 예시
니온에게 자연어로 말하면 됩니다. 정해진 명령어 없이 일상 언어로 대화하세요!
일상 대화
오늘 날씨 좋다! 뭐하면 좋을까?
→ 니온이 날씨에 맞는 활동을 추천해줍니다
요즘 스트레스 받아서 힘들어
→ 니온이 공감하며 스트레스 해소 방법을 제안합니다
질문하기
김치찌개 맛있게 끓이는 법 알려줘
→ 레시피를 단계별로 알려줍니다
이번 주 서울 날씨 어때?
→ 날씨 정보를 알려줍니다
파일 첨부
[사진 첨부] 이 영수증 정리해줘
→ 영수증을 분석하여 지출을 자동 기록합니다
[음성 메시지] (회의 내용 녹음)
→ 음성을 텍스트로 변환하고 요약합니다
자주 묻는 질문
Q. 대화 내용은 얼마나 오래 저장되나요?
A. 대화 내용은 서버 데이터베이스에 영구 저장됩니다. 직접 삭제하지 않는 한 유지됩니다. 단, 대화 목록에는 최근 100개까지만 표시됩니다.
Q. AI가 이전 대화를 기억 못하는 것 같아요.
A. 새 대화를 시작하면 이전 대화의 스레드와 분리됩니다. 이전 대화를 이어가려면 사이드바에서 해당 대화를 선택해 주세요. 같은 대화 내에서는 맥락이 유지됩니다.
Q. 파일 첨부 용량 제한이 있나요?
A. 현재 파일당 최대 20MB를 지원합니다. 용량이 큰 파일은 업로드 전에 압축하거나 분할하는 것을 권장합니다.
Q. 응답이 중간에 멈추거나 끊겨요.
A. 스트리밍 응답 최대 대기 시간은 3분입니다. 복잡한 작업의 경우 시간이 걸릴 수 있습니다. 네트워크 상태를 확인하거나 페이지를 새로고침 후 다시 시도해 보세요.
Q. 동시에 여러 대화를 진행할 수 있나요?
A. 네, 여러 탭에서 각각 다른 대화를 진행할 수 있습니다. 단, 같은 사용자의 WebSocket 연결은 1개만 유지되므로, 새 탭에서 연결하면 기존 탭의 실시간 스트리밍이 끊길 수 있습니다.
Q. Telegram과 웹 UI의 대화가 연동되나요?
A. 현재는 채널별로 독립된 스레드로 관리됩니다. Telegram 대화와 웹 UI 대화는 별도로 저장됩니다.
Q. 어떤 AI 모델을 사용하나요?
A. 기본적으로 설정된 모델을 사용하며, 설정에서 원하는 모델로 변경할 수 있습니다. 사용 가능한 모델 목록은 설정 > 모델 메뉴에서 확인할 수 있습니다.