[Dify AI랑 탱자탱자 놀기 2탄] - 아주 간단한 RAG AI Agent 구축해서 Test 해보고 Dify의 성능 간보기

소개

Dify AI를 사용하는 가장 큰 목표는 RAG AI Agent를 구축하는 것이었습니다.
이번에는 직접 간단한 RAG AI Agent를 만들어 보면서,
Dify RAG AI Agent 구축 방법을 익혀보고,
n8n보다 성능이 뛰어난지, 구축이 더 쉬운지를 확인하고자 했습니다.

진행 방법

  • Dify AI에서 빈상태로 시작(from scratch)을 선택하고,
    채팅 플로우를 선택하고, 이름과 설명을 입력해 주고 작성을 누르면
    Dify가 알아서 기본 구조를 만들어줍니다.

한국 웹 사이트의 스크린 샷
한국의 흐름도의 스크린 샷
  • RAG를 할 지식(Knowledge)를 추가해서 넣어줍니다.
    이를 위해 중간에 블럭(노드)를 LLM 앞에 추가합니다.
    블록 중에서 '지식검색'을 선택하면 됩니다.

    삼성의 SMS 앱은 한국어로 표시됩니다
  • 지식으로 추가할 대한민국 상법 법률 내용을 PDF 파일로 넣어주고
    청킹하고, Temperature, Top P, Top K 등의 여러 설정을 해 줍니다.

    RAG 용어 참고

    1. Chunking (청킹)

    큰 책을 읽기 좋게 잘게 나누는 것!

    • AI가 한꺼번에 너무 많은 정보를 보면 헷갈릴 수 있어.

    • 그래서 책(또는 문서)을 작은 조각(청크) 으로 잘게 나눠서 읽게 해줘.

    • 예시: 동화책 100쪽을 5쪽씩 나눠서 보는 거야.

    🧠 중요한 이유: AI가 중요한 내용을 놓치지 않고 제대로 기억하게 해주는 거야.


    2. Temperature (템퍼러처)

    AI가 정답을 얼마나 자유롭게 말할지를 정하는 온도!

    • 낮은 온도 (0~0.3): 딱딱 정확한 대답을 하려고 해. (수학 문제처럼!)

    • 높은 온도 (0.7~1): 상상력 넘치게 말해. (이야기 짓기 놀이처럼!)

    🔥 중요한 이유: 말이 너무 딱딱하면 재미없고, 너무 자유로우면 이상할 수 있으니 상황에 맞게 조절하는 거야.


    3. Top P (탑 피)

    AI가 선택할 단어의 ‘확률 범위’를 정하는 거야!

    • AI는 어떤 단어가 나올 확률이 높은지 계산해.

    • 예를 들어 확률이 높은 단어들을 위에서부터 더해가다가 P(0.9)만큼 되면 그 중에서 하나를 고르는 방식이야.

    🎯 중요한 이유: 너무 엉뚱한 단어가 나오는 걸 막아줘.


    4. Top K (탑 케이)

    AI가 가장 가능성 높은 단어들 중 몇 개만 볼지 정하는 거야!

    • 예: K=5면 가장 그럴듯한 5개 단어만 놓고 고르는 거야.

    📦 중요한 이유: 선택지를 너무 많이 주면 AI도 헷갈릴 수 있으니까 딱 정해진 수만 보고 결정하게 하는 거야.


    요약표 🔍

    개념

    한 줄 설명

    비유

    Chunking

    정보를 작게 나눠서 AI가 잘 이해하게 하기

    책을 5쪽씩 나눠 읽는 것

    Temperature

    대답을 얼마나 자유롭게 할지 정하기

    차가운 로봇 vs 창의력 풍부한 친구

    Top P

    그럴듯한 단어들 중 확률 높은 것만 보기

    상위 90% 확률에 포함된 것만 고르기

    Top K

    가장 가능성 높은 단어 몇 개 중에 고르기

    인기 5개 중 하나 고르기

  • 외부 DB를 사용하지 않고 내장된 DB를 사용하게 해 준다는 점에서
    편하고 인상적이었습니다. (보니까 임베딩 모델이 OpenAI를 사용하는 것 같네요....)

  • 그리고 Supabase에서 청킹하던 것 보다 좀 더 편하고 쉬운 것 같다는 느낌이었고,
    프리뷰 청크가 가독성이 있어서 좋았습니다.

  • 또한, 미리 test 해 볼 수 있는 점도 n8n보다 유용한 부분이었습니다.


한국어 텍스트가있는 페이지의 스크린 샷

한국 웹 사이트의 스크린 샷

전화에 중국어 앱의 스크린 샷
  • 이제 설정된 지식(Knowledge)을 지식검색 블럭(노드)에 연결시켜줍니다.

    한국 앱의 스크린 샷
    한국 앱의 스크린 샷
  • 다음 단계인 LLM 설정을 완료합니다.

  • System prompt를 넣어주고, 컨텍스트에 지식검색의 결과를 넣어주어서 이를 반영해서(retrieve) 답변을 하도록 설정합니다.

    한국의 마인드 맵의 스크린 샷
  • RAG AI Agent 구성은 끝났고, 실제로 잘 작동하는지 체크합니다.

    한국인 두 사람 간의 대화의 스크린 샷

    제대로 작동하는 것을 확인했습니다.

    n8n 에서 만들었던 RAG AI Agent에서 오류가 났던 질문을 동일하게 던져봤는데
    에러 없이 훌륭하게 답변을 하는 것을 보고 마음이 흡족해집니다.

<n8n에서 RAG AI Agent 구축 시, 발생했던 오류 예시>

한국의 두 사람 간의 대화 스크린 샷

한국 문자 메시지의 스크린 샷

🤕 실제로는 181조에 있는 내용인데 40조라고 잘못 대답함.

1개의 에러만 확인해 봤지만 일단은 더 나은 성능을 보여준다라고 판단이 듭니다.

Dify 좀 치는데?

마음에 들기 시작합니다.
Dify로 RAG AI Agent 만드는 것을
좀 더 집중적으로 해 볼 마음이 들기 시작했습니다.


Dify 너 좀 마음에 든다? ^^


  • 발행(배포)까지 새로운 방식(임베딩하는 방식)을 한 번 해보기로 합니다.
    (어떻게 임베딩 해 주는 지 방법이 궁금했거든요. ㅎㅎ)

챗봇을 어떤 형태로 임베딩할지 선택하라고 나오고
그렇게 하려면 이런 코드를 HTML에 붙여 주어야 한다고 알려주는 방식으로 나오네요.

아하, 이렇게 임베딩하는 거구나! 하고 배웁니다.
비개발자의 눈이 크게 떠지는 순간입니다. 👀

결과와 배운 점

  • Dify AI에서 RAG AI Agent를 빠르고 쉽게 구축할 수 있다는 점을 확인했습니다.

  • n8n에 비해 성능이 더 뛰어나며, 설정도 직관적이었습니다.

  • 환각이나 에러가 n8n 보다는 적다는 느낌이 들었고,
    앞으로도 더 많이 테스트 해보면서
    환각이나 에러가 나는 것을 확인하고
    어떻게 줄여 나갈지 연구해 보겠습니다.

  • 특히 DB가 내장되어 있어 별도의 외부 DB 설정 없이도 서비스 구축이 가능했습니다.

  • 앞으로 Dify AI를 활용해 더 다양한 RAG AI Agent 서비스를 구축할 계획입니다.

참고
예전에 만들었던 n8n RAG AI Agent 사례가 궁금하시면
아래 링크로 가시면 있습니다.

https://www.gpters.org/nocode/post/getting-started-n8n-implementing-lEAItMp3FZcZXMz

4
1개의 답글

👉 이 게시글도 읽어보세요