728x90
반응형
출처: DALL-E(프롬프트: 마하바라타의 등장인물 간의 관계를 보여주는 풍경 이미지 만들기)

여러분, Graph Database의 렌즈를 통해 마하바라타를 탐험하는 시간이 다시 돌아왔어요! 1부에서는 Neo4j를 사용해서 서사시 속 등장인물과 그 관계에 대한 포괄적인 그래프를 구축했죠.

아직 안 읽어보셨다면 1부를 먼저 읽어보시는 걸 추천드려요!
Mahabharata의 웹 공개: Neo4j 그래프 데이터베이스를 사용한 엄청난 관계 분석(1부)

이제 강력한 도구인 챗봇을 도입해서 이 복잡한 관계망에 생명을 불어넣을 시간이에요.

가장 큰 challenge는 뭘까요?

Neo4j는 관계를 저장하고 분석하기 위한 강력한 플랫폼을 제공하지만, 기존의 Cypher 쿼리는 기술 지식이 없는 사용자에게는 장벽이 될 수 있어요. 구문을 이해하고 데이터 모델을 파악하는 건 쉽지 않죠. 이는 접근성을 제한하고 마하바라타 관계망 탐색의 잠재력을 온전히 활용하지 못하게 만들어요.

예를 들어, Lord Kashyapa의 부모가 누구인지 알아내고 싶다면 쿼리는 다음과 같을 거예요.

MATCH (kashyapa:Person{name:'Kashyapa'})-[:SON_OF]->(m:Person) RETURN m

마하바라타와 대화하기: 자연어로 간극을 해소해요

바로 이럴 때 챗봇이 등장하는 거죠! 사용자가 간단하게 "Arjuna의 가장 가까운 동맹은 누구야?"라고 물어본다고 상상해 보세요. 아니면 "Draupadi는 크리슈나와 어떤 관계야?" 라거나 "Ghatotakach를 죽인 사람은 누구야?" 같은 질문도 가능하겠죠. 챗봇은 마치 중개인처럼, 이런 자연어 쿼리를 백그라운드에서 효율적인 Cypher 문으로 변환해 준답니다.

Python과 Gradio를 사용해서 챗봇을 구축해 봐요

여기서 저희의 Python 전문성이 빛을 발하죠! 사용자 친화적인 Python 웹 프레임워크인 Gradio의 기능을 활용해서 챗봇 인터페이스를 구성할 거예요. 이를 통해 사용자 쿼리를 이해하고, Gemini API를 사용해서 Cypher 문으로 변환하고, 1부에서 구축한 Neo4j 데이터베이스를 검색하고, 가능한 경우 응답을 반환하고, 사용자에게 보여주는 방식으로 시각적으로 매력적이고 직관적인 플랫폼을 만들 수 있어요.

Gradio 챗봇 스크린샷

 

자연어와 Cypher 사이의 간극을 더욱 좁히기 위해서, Google의 Gemini API in Google AI 스튜디오의 흥미로운 잠재력을 탐구해 봤어요. 이 Large Language Model은 사용자 쿼리를 () 정확한 Cypher 문으로 변환해서 챗봇이 Neo4j 그래프와 원활하게 상호 작용할 수 있게 해준답니다.

혹시 위 문단에서 제가 "거의"라는 단어를 쓴 걸 눈치채셨나요? 이유가 뭘까요?

Gemini는 강력한 도구이긴 하지만, 자연어를 정확한 Cypher 쿼리로 변환하는 게 쉽지 않다는 점을 인정해야 해요. 번역의 정확도는 다음과 같은 다양한 요인에 따라 달라질 수 있거든요.

  • 사용자 쿼리의 복잡성: 명확한 키워드가 포함된 간단한 질문은 복잡하거나 모호한 질문보다 더 정확하게 번역될 가능성이 높아요.
  • Gemini에 사용된 훈련 데이터: Gemini 번역의 효율성은 훈련된 데이터에 따라 결정돼요. 변환과 관련된 학습 데이터 구체화텍스트-암호화정확성을 향상시킬 수 있죠. 하지만 이건 정말 어려운 작업이에요.
  • 개선의 필요성: "거의 정확한" 번역이라고 해도, 일부 사용자 쿼리는 Neo4j의 쿼리 언어와 완벽하게 일치하도록 약간의 조정이 필요할 수 있어요.

참고: 저는 이 프로젝트에 Gemini 1.0 Pro를 사용했어요.

채팅 프롬프트가 포함된 Google AI Studio 스크린샷

Hugging Face Spaces에 배포된 사용자 친화적인 챗봇을 직접 사용해 보려면 를 클릭하세요. 복제하는 단계를 찾고 있다면 제 GitHub 저장소로 이동하시면 돼요. 더 나은 결과를 얻고 싶다면 포크해서 Pull Request를 제출해 주세요! 🙂

미래를 살짝 엿볼까요?

이 프로젝트는 정말 매혹적인 여정의 시작일 뿐이에요. 앞으로 다음과 같은 기능들을 더 통합해볼 수 있을 것 같아요.

  • 감정 분석(Sentiment Analysis): 챗봇이 사용자 쿼리를 분석해서 맞춤형 어조로 응답하면, 사용자 경험이 훨씬 더 몰입감 있을 거예요.
  • 광고 문안 생성: 챗봇이 Gen-AI를 활용해서 사용자 쿼리를 기반으로 시, 캐릭터 프로필, 또는 짧은 이야기를 만들어낼 수도 있겠죠.

Knowledge Graph: 내러티브 확장

이러한 개선 사항 외에도, 캐릭터 관계 그래프와 함께 Knowledge Graph를 통합하는 건 엄청난 잠재력을 가지고 있어요. Knowledge Graph에는 마하바라타와 관련된 인물, 위치, 이벤트는 물론 문화적인 측면까지 더 자세한 정보가 포함될 수 있거든요. 이렇게 풍부한 데이터 덕분에 챗봇은 다음과 같은 일들을 할 수 있게 돼요.

  • 맥락과 배경 스토리 제공: 사용자가 캐릭터에 대해 질문하면, 챗봇은 캐릭터의 관계를 보여줄 뿐만 아니라 캐릭터의 뒷이야기, 성격, 그리고 서사시에서 중요한 사건까지 알려줄 수 있어요.
  • 숨겨진 연결을 찾아내기: Knowledge Graph 내의 연결을 분석해서, 챗봇은 겉으로는 관련이 없어 보이는 캐릭터, 이벤트, 또는 위치 사이의 놀라운 연결 고리를 찾아낼 수 있죠. 정말 흥미롭죠?
  • 전체적인 이해를 제공: 관계와 Knowledge Graph의 강력한 힘을 합쳐서, 사용자는 마하바라타의 복잡한 세계와 등장인물들의 동기를 더 포괄적으로 이해할 수 있게 될 거예요.

 

대화형 스토리텔링이 미래라는 거!

이런 기술들(챗봇, Gen-AI, 그리고 Graph Database)이 융합되면 우리가 마하바라타 같은 이야기를 접하는 방식에 혁명이 일어날 수 있다고 생각해요. 사용자가 관계를 탐색할 수 있을 뿐만 아니라, 대화형으로 개인화된 대화를 통해 이야기의 풍부한 태피스트리를 탐험할 수 있는 미래를 상상해보세요.

여기에서 3부를 읽어보세요:

고대 서사시에서 현대 마블까지: GraphRAG를 사용하여 마하바라타 챗봇의 신비를 밝히다(3부)


  • 쌍둥이자리

에이치시스템즈LogTree는 Neo4j 기반 GraphRAG 플랫폼으로, 데이터를 자동으로 지식그래프화하고 자연어 질의로 즉시 답을 제공합니다.

👉 에이치시스템즈 홈페이지

728x90
반응형

+ Recent posts