안녕하세요! 오늘은 Gemini 2.0 Flash Exp 모델을 기반으로 구글의 NotebookLM과 비슷한 멀티모달 노트북 챗봇을 만들어 보겠습니다. 이 챗봇은 텍스트, PDF, 이미지와 같은 다양한 데이터 형식을 한 번에 처리하며, 데이터에 기반하여 사용자의 질문에 답변할 수 있는 기능을 제공합니다. 특히 자료 정리와 정보 검색을 더욱 효율적으로 만들어주는 노트북 관리 기능까지 갖추고 있어, 학습과 업무 생산성을 향상시킬 수 있습니다. 이 블로그에서는 Gemini 2.0 Flash Exp 모델 기반 멀티모달 노트북 챗봇의 주요 특징과 기능, 설치 및 활용방법에 대해 살펴보겠습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
1. 멀티모달 노트북 챗봇 개요
이 블로그에서는 Gemini 2.0 Flash Exp 모델을 기반으로 간단하게 만들어 볼 수 있는 멀티모달 노트북 챗봇 시스템을 소개합니다. 이 시스템은 텍스트, PDF, 이미지 등 다양한 형태의 데이터를 처리하고, 이를 바탕으로 사용자의 질문에 응답할 수 있는 챗봇 기능과 노트북 관리 기능을 제공합니다. 사용자는 이 시스템을 활용하여 자료를 효율적으로 정리하고, 이 자료를 기반으로 챗봇을 통해 필요한 정보를 빠르고 정확하게 얻을 수 있습니다.

2. 멀티모달 노트북 챗봇 특징 및 주요 기능
이 챗봇의 주요 기능과 구성요소는 다음과 같습니다.
1) 주요 기능
- 텍스트, PDF, 이미지 파일 등 멀티모달 데이터로 구성된 노트북 생성/관리/채팅 시스템
- 사용자 입력 텍스트, PDF, 이미지를 하나의 노트북으로 통합, 벡터 데이터베이스에 저장
- 저장된 노트북 내용을 컨텍스트로 하여 Gemini 2.0 Flash Exp 챗봇과 대화
2) 핵심 구성요소
- OpenAI: 노트북의 텍스트 데이터를 1536차원의 벡터로 변환하여 의미적 검색이 가능하도록 만들어주는 임베딩 엔진으로, text-embedding-ada-002 모델을 통해 텍스트의 의미를 수치화합니다.
- google.generativeai & gemini-2.0-flash-exp: 텍스트와 이미지를 동시에 이해하고 처리할 수 있는 멀티모달 AI 모델로, 노트북에 저장된 다양한 형태의 컨텐츠를 맥락적으로 이해하여 자연스러운 대화형 응답을 생성합니다.
https://ai.google.dev/gemini-api/docs/models/gemini-v2?hl=ko
Gemini 2.0 Flash (실험용) | Gemini API | Google AI for Developers
이제 Gemini 2.0 Flash 실험 버전을 사용할 수 있습니다. 자세히 알아보기 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Gemini 2.0 Flash (실험용) 이제 Gemini 2.0 Flash를 Gemini Developer AP
ai.google.dev
- Qdrant: 벡터화된 노트북 데이터를 효율적으로 저장하고 검색할 수 있는 벡터 데이터베이스 시스템으로, 코사인 유사도 기반의 고성능 검색 기능을 제공합니다.
Vector Search Database · Qdrant Cloud
cloud.qdrant.io
- Streamlit: 파이썬 기반의 웹 애플리케이션 프레임워크로, 노트북 생성/관리/채팅 기능을 직관적인 UI로 구현하고 실시간 상태 관리를 가능하게 합니다.
Streamlit • A faster way to build and share data apps
Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.
streamlit.io
- pdfplumber: PDF 파일에서 텍스트와 표 데이터를 정확하게 추출하여 구조화된 형태로 변환해 주는 라이브러리로, PDF 문서의 내용을 노트북에 통합하는 역할을 수행합니다.
https://github.com/jsvine/pdfplumber
GitHub - jsvine/pdfplumber: Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily ext
Plumb a PDF for detailed information about each char, rectangle, line, et cetera — and easily extract text and tables. - jsvine/pdfplumber
github.com
3) 동작 순서
- 노트북 생성: 사용자 입력 → 컨텐츠 추가 → 벡터화 → Qdrant 저장
- 채팅: 질문 입력 → 노트북 검색 → Gemini 모델 처리 → 응답 생성
이 시스템은 다양한 형태의 데이터를 통합 관리하고, 이를 기반으로 지능형 대화 서비스를 제공하는 애플리케이션으로 다음과 같은 주요 특징과 기능을 제공합니다:
- 다양한 데이터 형식 처리: 텍스트, PDF, 이미지 등 다양한 형식의 데이터를 처리할 수 있습니다. PDF 파일에서 텍스트와 표 데이터를 추출하고, 이미지 파일은 base64 인코딩을 통해 저장 및 활용합니다.
- 노트북 생성 및 관리: 사용자는 노트북을 생성하고, 이름을 지정할 수 있습니다. 노트북에 텍스트, PDF, 이미지 콘텐츠를 추가하고, 필요에 따라 수정하거나 삭제할 수 있습니다.

- 챗봇 기능: Gemini 2.0 Flash Exp 모델을 활용하여 노트북에 저장된 내용을 기반으로 사용자의 질문에 답변합니다. 챗봇은 노트북의 텍스트, PDF, 이미지 내용 전체를 참조하여 답변을 생성합니다.
- 데이터 저장 및 검색: Qdrant 벡터 데이터베이스를 사용하여 노트북 데이터를 저장하고, 유사도 검색을 통해 필요한 정보를 빠르게 찾을 수 있습니다. Qdrant는 각 노트북과 내용을 벡터화하여 저장하며, 이를 통해 검색 효율성을 높입니다.
- 실시간 업데이트: 노트북 목록 및 내용은 실시간으로 업데이트되어 최신 정보를 항상 반영합니다.
- 사용자 친화적 인터페이스: Streamlit을 사용하여 사용자 친화적인 웹 인터페이스를 제공합니다. 이를 통해 사용자는 쉽게 시스템을 이용할 수 있습니다.

- 컨텐츠 요약 및 메시지 구성: 챗봇은 노트북의 컨텐츠 요약 정보를 제공하고, 사용자의 질문과 함께 메시지를 구성하여 Gemini 모델에 전달합니다. 요약 정보는 텍스트, PDF, 이미지 컨텐츠의 개수를 포함하며, 노트북의 제목과 생성일을 포함합니다.
3. 멀티모달 노트북 챗봇 설치 방법
시스템을 사용하기 위한 이 블로그의 설치 환경은 Windows 11 Pro, 파이썬 버전 3.11, VSCode, WSL(Ubuntu)입니다.
1) 가상환경 생성 및 활성화: VSCode에서 WSL 연결 후 작업디렉토리를 만들고, 터미널에서 가상환경을 생성/활성화 한 다음, 해당 디렉토리로 이동합니다.
python3.11 -m venv myenv
source myenv/bin/activate
2) 필요 라이브러리 설치: 아래 내용을 복사해서 requirements.txt로 저장합니다.
streamlit # 웹 인터페이스 구축
google-generativeai # Gemini API 활용
qdrant-client # 벡터 데이터베이스 활용
pdfplumber # PDF 파일 처리
pandas # 데이터 처리
uuid # 고유 ID 생성
openai # OpenAI API 활용 (임베딩 생성)
python-dotenv # 환경 변수 관리
Pillow # 이미지 처리
이러한 라이브러리들은 pip install 명령어를 통해 설치할 수 있습니다.
pip install -r requirements.txt
3) 환경 변수 설정: .env 파일을 생성하고, 다음 환경 변수를 설정합니다. 각 API 키와 값은 아래 주소를 참조하시면 쉽게 생성하실 수 있습니다.
- OPENAI_API_KEY: https://platform.openai.com/api-keys
- QDRANT_URL: https://qdrant.tech/documentation/quickstart-cloud/
- QDRANT_API_KEY: https://qdrant.to/cloud
- GEMINI_API_KEY: https://aistudio.google.com/app/apikey
OPENAI_API_KEY: OpenAI API 키
QDRANT_URL: Qdrant 데이터베이스 URL
QDRANT_API_KEY: Qdrant 데이터베이스 API 키
GEMINI_API_KEY: Gemini API 키
4) qdrantchatbot.py 저장: 아래 파일을 다운로드해서 작업 디렉토리에 저장합니다. 주요 동작은 다음과 같습니다.
- Qdrant 데이터베이스 설정: Qdrant 데이터베이스를 설정하고, 위에서 설정한 QDRANT_URL과 QDRANT_API_KEY를 사용하여 클라이언트를 설정합니다.
- Gemini API 설정: Gemini API 키를 설정하고, genai.configure 함수를 사용하여 API 키를 설정합니다.
- 컬렉션 초기화: init_collections() 함수를 호출하여 notebooks, statements, schedules, documents 컬렉션을 초기화합니다. 만약 컬렉션이 이미 존재한다면, 경고 메시지를 표시합니다.
- 메인 함수 실행: main() 함수를 실행하여 Streamlit 웹 애플리케이션을 실행합니다.
- 웹 인터페이스 사용: 웹 브라우저를 통해 Streamlit 애플리케이션에 접속하여 시스템을 사용할 수 있습니다.
5) qdrantchatbot.py 실행: "streamlit run qdrantchatbot.py" 명령어로 애플리케이션을 실행합니다.


4. 멀티모달 노트북 챗봇 활용 사례
멀티모달 노트북 챗봇 시스템은 다음과 같은 다양한 활용 사례를 제공합니다:
- 개인 학습 자료 정리: 학습 자료를 텍스트, PDF, 이미지 형태로 정리하고, 필요한 내용을 챗봇을 통해 빠르게 검색하고 학습할 수 있습니다.
- 연구 자료 관리: 연구 논문, 이미지, 관련 텍스트 자료를 하나의 노트북에 저장하고, 챗봇을 통해 필요한 정보를 빠르게 찾을 수 있습니다.
- 회의록 정리 및 활용: 회의록을 텍스트나 PDF 형태로 저장하고, 챗봇을 통해 회의 내용 요약이나 특정 주제에 대한 질문을 할 수 있습니다.
- 업무 자료 관리: 업무 관련 문서, 이미지, 텍스트 자료를 정리하고, 챗봇을 통해 필요한 정보를 빠르게 검색하여 업무 효율성을 높일 수 있습니다.
- 다양한 형식의 정보를 이용한 챗봇: 텍스트, 이미지, 표 데이터 등이 혼합된 정보에서 원하는 정보를 얻기 위해 챗봇을 활용할 수 있습니다. 이미지에 대한 정보도 텍스트로 요약해서 얻을 수 있습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
5. 맺음말
본 멀티모달 노트북 챗봇은 Gemini 2.0 Flash Exp 모델을 활용하여 다양한 형태의 데이터를 처리하고, 사용자의 질문에 정확하게 답변할 수 있는 유용한 도구입니다. 이 시스템을 통해 사용자는 자료를 효율적으로 관리하고, 필요한 정보를 빠르게 얻을 수 있으며, 학습 및 업무 효율성을 향상시킬 수 있습니다.
여러분도 코드를 다운로드하셔서 실행해 보시면 다양한 파일을 묶어서 질문하고 답변할 수 있는 멀티모달 챗봇의 편리함을 체험하실 수 있을 것 같습니다. 그럼 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다.

2024.12.14 - [AI 언어 모델] - 👀🔊🤖 Gemini 2.0 출시: 보고 듣고 말하는 멀티모달 라이브 챗봇을 지금 만나보세요.
👀🔊🤖 Gemini 2.0 출시: 보고 듣고 말하는 멀티모달 라이브 챗봇을 지금 만나보세요.
안녕하세요! 오늘은 구글이 최근에 발표한 멀티모달 AI 모델 Gemini 2.0에 대해 알아보겠습니다. Gemini 2.0은 2023년에 발표된 Gemini 1.0을 기반으로 한 후속 모델로, 더욱 향상된 성능과 다양한 기능을
fornewchallenge.tistory.com
'AI 도구' 카테고리의 다른 글
[무료!]🔍🤖📚DeepSeek/Gemini로 Open Deep Research 만들기 (4) | 2025.02.15 |
---|---|
🌐🤖✨OpenAI Operator: 웹 작업을 자동화하는 AI 에이전트의 등장 (4) | 2025.01.26 |
🌐🤖 Browser-Use WebUI: AI로 웹 브라우저를 제어하세요 (4) | 2025.01.12 |
🔥누구나 무료 AI 코딩! 라마코더 V2와 DeepSeek-V3의 혁신적인 만남 (2) | 2025.01.10 |
🚀 MCP: 웹 검색부터 파일 관리까지, AI의 한계를 확장하는 표준 기술 (107) | 2024.12.19 |