소개
2주차 토요일 오프라인 모임에서 김현우 스터디장님이 흥미로운 주제를 꺼내셨습니다.
바로 "Dify와 카카오톡 챗봇을 연결해서 AI 도우미를 만들어보자!"는 이야기였죠.
처음엔 단순한 연동 실험처럼 보였지만, 해보면 해볼수록 꽤나 복잡하고 생각할 게 많은 흥미로운 여정이었습니다.
스터디에서 아이디어가 나왔고, 바로 실행에 옮기게 되었어요.
"과연 Dify는 내가 원하는 방식으로 잘 대답해줄까?"라는 궁금증도 컸습니다. 😊
진행 방법
사용한 도구들
Dify.ai – 오픈소스 RAG 기반 AI 도구
Cursor + Claude 코드 활용 – 코드 작성 및 수정
JS 기반 카카오톡 챗봇 – 실제 대화 인터페이스로 연동 (소스는 김현우 스터디장님이 미리 준비해주신 코드로 진행)
구현 흐름
Dify 워크플로우 설정
챗봇을 연결할 API 엔드포인트 구성
개인 프로파일 문서 업로드 및 지식문서 설정
문서 기반 답변을 제대로 하는지 확인해보기 위해 인터넷에 없는 내 프로파일 문서를 기반으로 답변 테스트해봄.
먼저 내 프로 파일을 지식문서로 등록
워크플로 생성
템플릿에서 시작 > Knowledge Retrival + Chatbot 템플릿 선택
앱명 입력 > 생성버튼 클릭
지식 선택 > 추가 버튼 클릭
[시스템 프롬프트 입력]
You are a helpful assistant. Use the following context as your learned knowledge, inside <context></context> XML tags. <context> {{#context#}} </context>
When answer to user:
- If you don't know, just say that you don't know.
- If you don't know when you are not sure, ask for clarification.
Avoid mentioning that you obtained the information from the context. And answer according to the language of the user's question.
게시하기 버튼 클릭
카톡봇과 연동
JS로 작성된 챗봇 코드에 Dify API 키와 설정만 추가하면 되는 구조였어요 🙌
메시지 전송 → 응답 → 다시 사용자에게 전달
소스 배포 & 연동 테스트
결과와 배운 점
시행착오들
프롬프트를 아무리 구체화해도 외부 정보가 섞여서 답변하는 경우가 많았어요.
똑같은 문서, 똑같은 프롬프트를 쓰고도 사람마다 응답 결과가 다르게 나왔습니다. 🤯
결국, Dify의 프롬프트 컨트롤은 꽤 예민하다는 걸 체감했습니다.
배운 점
단순한 기술 연동보다 프롬프트 설계가 훨씬 중요하다는 사실
문서 구조, 키워드, 질문 패턴이 응답 품질에 큰 영향을 미침
첨부 가능한 문서의 크기가 25Mb로 제한적이어서 실제 사용가능할지 의문이 생김
실전에서 나의 문서 기반에 대한 답변만이 필요로 한 경우와 나의 문서 기반 + 실시간 검색이 필요한 경우를 명쾌하게 선택할수 있을까 라는 의문점도 생겼습니다.
LLM 기반 응답은 예측 불가능성이 있어서, 결과를 완전히 통제하려는 시도는 한계가 있다는 것도 느꼈습니다
그리고 무엇보다도, 팀원 모두가 Dify를 잘 모르는 상태였지만, 각자의 작은 지식 조각들을 모아 협업한 덕분에 간단한 지식 문서 연동 테스트에는 성공할 수 있었습니다! 🎉
실제 Dify 활용 사례와 기능들에 대해 좀더 깊이 있게 연구해볼 필요성을 느꼈습니다.
도움 받은 글
김현우 스터디장님의 시연과 코드 설명 🙏
함께한 스터디원분들과의 실험 공유 및 프롬프트 비교
읽어주셔서 감사합니다! 😊
혹시 비슷한 시도를 해보셨거나, 프롬프트 설정에 팁 있으시면 댓글로 나눠주세요!