소개
RAG AI Agent를 만드는 일에 관심이 많고,
n8n으로 RAG 장착한 AI agent를 만들고 test 해 보기도 해서
RAG AI agent를 좀 더 쉽게 그리고 더 효과적으로 만들 수 있다는
Dify AI 시연을 보고 급 호기심이 생겼음.
그리고 Orchestration을 하는 AI tool이라는 것도 알게 되어서 더욱 호기심이 생겼음. Orchestration을 나도 한 번 해보고 싶다는 마음이 컸기에 개발 지식,
복잡한 코딩 지식이 없어도 해 볼 수 있겠다 싶어서 관심이 많이 갔음.
참고: Orchestration
AI 오케스트레이션은 여러 AI 모델, 도구, 데이터 소스, 서비스 등을
하나의 워크플로우로 통합하여 자동으로 조정·관리하는 프로세스입니다
그래서 스터디를 못 정하고 있다가 이 곳으로 결정하고
스터디 멤버들의 상황을 고려해서 운영 방향이 변경되어도
그냥 쭈욱 Dify랑 놀아보기로 하고, 놀면서 배우거나 느낌 점,
또는 만든 것들을 시리즈로 사례를 쓰기로 마음먹음.
오늘은 첫번째 시리즈로 Dify에 적응하는 이야기들을 써보려 함.
Dify AI에 대해서 아는 게 거의 없어서 Youtube에 관련 영상들 찾아보면서 감을 좀 잡아보기로 함
뒤져보니 Dify AI는 국내에 아직 많이 소개되지 않은 것 같음.
그래서 국내 영상은 없는 것 같고, 해외 영상들이 그나마 좀 있는 것 같아서
뒤적이다가 다음의 영상을 보고 감을 좀 잡음
https://youtu.be/-RdhQcD5lQw?si=T-aKXA-E5pDc9Fw8
영어로 되어 있지만 그리 어렵지 않게 들으면서 파악할 수 있어서 좋은 내용 같아서 추천해 드림
영상 보면서 Dify로 할 수 있는 게 무엇인지, 그리고 어떤 구조로 이루어져 있는지 등등에 대해서 얼추 감을 잡음.
단순히 RAG AI Agent만 만들 수 있는 것이 아니라는 점 또한 흥미로웠고,
그래서 이것 저것 다 해보기로 생각함
우선은 제공되는 Template을 활용해보면서 좀 더 감을 잡으면 좋겠다라고 생각해서,
첫 번째 시도로 'Patient intake chatbot' 템플릿을 사용해보았습니다.
환자 응대 챗봇은 수익화 가능성이 있다고 생각했고,
Dify AI의 인터페이스, 기능, 구조를 직접 체험해보면서 파악해보고 싶었기 때문임
진행 방법
Dify AI의 'Patient intake chatbot' 템플릿을 선택했습니다.
이 템플릿은 대형 병원에서 사용자가 나이, 성별, 증상을 입력하면
적합한 진료과를 안내해주는 챗봇입니다.
선택하면 아래 그림처럼 Dify에서 이미 만들어 둔 챗봇의 구조가 나타납니다.아래 보기를 보면 매우 복잡해보이지만, 구조를 천천히 뜯어보니 조건문에 따른 분기가 많을 뿐이지, 사실은 매우 간단한 챗봇이라는 것을 알 수 있습니다.
환자의 나이, 성별, 증상을 물어보고 답을 다 얻은 후에야
어느 과로 가라고 안내해주는 구조입니다.
UI 구성과 블록(노드), 분기, 함수, 변수 설정 방식 등을 탐색하며
Dify AI의 구조를 파악했습니다.특히 n8n과 유사한 흐름 제어 방식이 인상적이었고,
Python 기반으로 동작하는 듯한 느낌을 받았습니다.
n8n에서 AI agent 설정하면서 만들었던 경험이 도움이 되는군요. 유사한 느낌도 들고 어떤 것들이 들어가 있는지 감도 잡을 수 있어서
perplexity 도움 받아가면서 본격적으로 파해를 해 보면 가능할 것 같다는 생각이 들었습니다.
그리고 변수 설정이 꽤 중요하게 다루어진다는 느낌이 들었습니다.
파악도 하고 test도 해보고 나서 배포(발행)도 해보고 싶었습니다.
발행을 눌렀더니, '"시력 변수가 필요합니다."라는 에러 메시지를 만나 발행이 중단되었지만, perplexity를 통해 도움을 받아 에러를 해결하고 정상적으로 배포할 수 있었습니다.
시력 변수가 뭐지??? 하다가
Perplexity에게 물어보니
시력, eye sight, vision 이런 소리를 해 대길래, 갑자기 시력이 왜 나와? 하고,
빵 터지고 나서 얘가 미쳤나 했다가
혹시나 해서 Dify 뒤져보니
비전이라는 항목이 있길래, 혹시나 하고
비전에서 설정을 바꾸어 보니 에러가 해결이 되더군요.
에러를 해결하고 정상적으로 배포할 수 있었습니다만,
아직까지도 비전이 무엇인지 잘 모르겠습니다.
결과물
Dify AI로 발행하면(배포) cloud, 앱으로 배포, 다른 개발 프로덕트에 임베딩이 가능하다는 점을 알 수 있었음
<Explore에서 열기>
한글로도 작동하는 것을 확인했고, 환각 내지는 에러가 발생하는 것도 확인했음.
(이 template은 RAG 없이 LLM만 연결한 모델이라서 그런 듯....)
어떻게 fine tuning할 수 있는지 등에 대해서는 Dify에 익숙해지면서 차차 배워가기로 함.
같이 병원에 온 남편의 두통에 대해서 물어봤더니 그냥 부인 따라서 치과가라고 함.
남편은 닥치고 그냥 아내 따라다녀야..... ^^ 😂
결과와 배운 점
Dify AI의 기본적인 사용 방법과 구조를 파악할 수 있었습니다.
변수 설정 및 조건 분기 사용 방법을 익히며 n8n과의 유사성도 발견했습니다.
Orchestration을 통해 AI 기반 서비스를 구성할 수 있다는 점에서
Dify AI의 활용성을 체감했습니다.