본문 바로가기
AI 도구

📝Kotaemon: 논문 파악 5분! GraphRAG도 쉽게 하는 문서 Q&A 인터페이스

by James AI Explorer 2024. 9. 6.
    728x90

    안녕하세요! 오늘은 Kotaemon이라는 문서와 대화할 수 있는 GraphRAG 인터페이스에 대해 알아보겠습니다. GraphRAG은 그래프 데이터 구조와 검색 기반 생성(RAG) 기술을 결합한 방식으로, 그래프 데이터에서 노드 간의 관계를 검색하고, 그 정보를 바탕으로 언어 모델이 정확한 답변을 생성하도록 하는 기술인데요, Kotaemon은 일반 사용자에게는 문서 기반 QA(질의응답)를 위한 간결하고 직관적인 UI 제공하고, 개발자에게는 RAG 파이프라인을 구축할 수 있는 프레임워크를 제공합니다. 이 블로그에서는 Kotaemon의 주요 기능, 설치방법에 대해 알아보고 RAG기능을 테스트해 보겠습니다. 

    📝Kotaemon: 논문 파악 5분! GraphRAG도 쉽게 하는 문서 Q&A 인터페이스

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    Kotaemon 주요 기능

    Kotaemon은 깃허브에서 10k 스타를 받고 있는 문서 기반 QA UI로, 개인 및 공용문서 컬렉션 관리, 로컬 및 인기 API LLM 모델 관리, Full 텍스트와 벡터 검색을 결합한 RAG 파이프라인을 제공합니다. 멀티모달 QA, 복잡한 질문 처리, 정교한 인용 기능을 지원하며, UI 설정이 확장 가능하고 Gradio 기반으로 커스터마이징이 용이합니다.

    https://github.com/Cinnamon/kotaemon?tab=readme-ov-file

     

    GitHub - Cinnamon/kotaemon: An open-source RAG-based tool for chatting with your documents.

    An open-source RAG-based tool for chatting with your documents. - Cinnamon/kotaemon

    github.com

    다음은 Kotaemon의 주요 기능입니다. 

    • 문서 QA 및 웹 UI: pdf, xls, doc 등 개인 및 공용문서 파일의 업로드와 인덱싱을 통한 컬렉션을 관리하고, 여러 사용자 로그인과 협업 기능을 지원합니다.

    문서 파일 업로드 및 인덱스 화면

    • LLM 및 임베딩 모델 관리: 로컬 LLM 및 OpenAI, Azure, Ollama 등과 같은 인기 API 제공업체 지원합니다.

    LLM 모델 관리 메뉴

    • 하이브리드 RAG 파이프라인: Full 텍스트 검색과 벡터 검색을 결합한 하이브리드 검색기능과 검색결과를 관련성이 높은 순서로  정렬하는 재랭킹 기능을 제공합니다. 

    검색모드 설정 및 재랭킹 옵션

    • 멀티모달 QA 지원: 여러 문서에 대해 질문을 하고, 그림과 표가 포함된 문서 지원
    • 정교한 인용 기능: PDF 뷰어에서 관련 답변과 인용을 확인할 수 있으며, 관련성이 낮은 자료가 검색되면 경고 제공
    • 복잡한 질문 처리: ReAct, ReWOO 같은 에이전트 기반의 복잡한 질문에 대한 추론 방식 지원
    • 확장 가능한 설정 UI: 검색 및 생성 과정의 주요 설정을 UI에서 쉽게 조정 가능
    • 확장성: Gradio 기반으로 구축되어 자유롭게 UI 요소를 커스터마이징 가능.
    728x90

    Kotaemon 설치방법

    다음은 설치방법을 알아보겠습니다. 일반사용자는 아래 링크에서 zip파일을 다운로드한 후, 설명에 따라 설치하면 되고, 개발자는 Docker를 사용하거나, Docker 없이 설치할 수 있습니다. 이 블로그의 설치 환경은 Windows 11 Pro(23H2), WSL2, 파이썬 버전 3.11, Cursor 0.40.4이며, "WSL 연결"을 통해 Linux 환경에서 실행하였습니다.

     

    1. 일반 사용자: 압축 파일을 다운로드해서 압축을 풀고, kotaemon-app\scripts 폴더로 이동한 후, 운영 체제에 맞는 설치 프로그램을 실행합니다. 실행되면 애플리케이션이 자동으로 브라우저에서 열립니다. 

    • Windows: `run_windows.bat` 파일을 실행합니다. 파일을 더블 클릭하면 됩니다.
    • macOS: `run_macos.sh` 파일을 오른쪽 클릭한 후, '다른 앱으로 열기'를 선택합니다. '모든 애플리케이션'을 활성화하고 '터미널'을 선택합니다. 
    • Linux: `run_linux.sh` 파일을 터미널에서 `bash run_linux.sh` 명령어로 실행합니다. 설치가 완료되면, 설치 프로그램이 ktem의 UI를 실행할 것인지 물어봅니다. 계속하려면 '예'를 선택하세요. 

    일반사용자 Kotaemon 설치

    2. 개발자: Docker로 설치하는 방법과 Docker 없이 설치하는 방법이 있습니다.

    • Docker로 설치하는 방법
    docker run ^
    -e GRADIO_SERVER_NAME=0.0.0.0 ^
    -e GRADIO_SERVER_PORT=7860 ^
    -p 7860:7860 -it --rm ^
    taprosoft/kotaemon:v1.0

     

    위 명령어로 서버를 실행하고, `http://localhost:7860/`로 이동하여 웹 UI에 접속하면 Kotaemon 웹 페이지가 열립니다. 

    • Docker 없이 설치하는 방법
    1) 가상환경 활성화
    python3.11 -m venv myenv
    source myenv/bin/activate
    
    2) 리포지토리 클론 및 필수 패키지 설치
    git clone https://github.com/Cinnamon/kotaemon
    cd kotaemon
    
    3) 필수 패키지 설치
    pip install -e "libs/kotaemon[all]"
    pip install -e "libs/ktem"
    pip install graphrag

    리포지토리 클론 및 패키지 설치
    필수 패키지 설치
    필수 패키지 설치
    GraphRAG 설치

    4) `.env` 파일 수정
    OpenAI, Azure, Ollama, GraphRAG API 키와 엔드포인트 설정을 편집할 수 있습니다. 
    GRAPHRAG_API_KEY는 OpenAI API와 같은 값을 입력하면 됩니다.

    .env 파일 수정

    5) 서버 실행
    python app.py

    서버 실행

    서버를 실행하면 http://127.0.0.1:7861/ 주소에서 Kotaemon 첫 페이지가 열립니다. Username과 Password에 모두 admin을 입력하고 로그인합니다. 

    Kotaemon 첫 페이지

    로그인 완료하면 다음과 같이 홈페이지가 나옵니다. 

    Kotaemon 홈페이지

    3. Ollama LLM 모델 및 임베딩 설정: 이 블로그에서는 함수 호출과 한국어가 가능한 HammerAI/hermes-3-llama-3.1 모델로 설정합니다. 상단 메뉴 Resources 클릭 후 LLMs에서 ollama를 선택하고, set as default를 체크합니다. 모델명을 아래 화면과 같이 입력합니다. hermes-3-llama-3.1 모델에 대한 설명은 아래 포스팅을 참고하세요

    2024.08.21 - [AI 언어 모델] - ⚡Hermes 3: Llama 3.1을 넘어선 최첨단 오픈 소스 언어 모델의 등장

     

    ⚡Hermes 3: Llama 3.1을 넘어선 최첨단 오픈 소스 언어 모델의 등장

    안녕하세요! 오늘은 Nous Research에서 개발한 최신 오픈 소스 대규모 언어 모델 Hermes 3에 대해 알아보겠습니다. Hermes 3는 AGIEval(일반 인공지능 평가 능력), ARC-C(상식적 추론 능력), ARC-E(과학적 추론

    fornewchallenge.tistory.com

    Ollama LLMs 설정

    4. Retrieval 설정: 상단 메뉴 Settings를 클릭 후 Retrieval settings/File Collection에서 'LLM for relevant scoring"을 ollama로 설정합니다. 관련성 점수 산정에 OpenAI 모델을 사용하려면, OpenAI API Key를 .env 파일에 입력합니다. 

    Retrieval File Collection 설정

    5. 임베딩 설정: Ollama 임베딩 모델이 없는 경우 아래 명령어로 nomic-embed-text 모델을 다운로드하고, Kotaemon 메뉴 Resources를 클릭하고, Embeddings에서 모델명을 확인하고 Set default를 체크합니다. 

    ollama pull nomic-embed-text

    Ollama 임베딩 설정

    6. 한국어 응답 프롬프트 설정: 메뉴 Settings를 선택한 후 Reasoniing settings에서 아래 프롬프트를 참조해서 언어 모델이 한국어로 응답하도록 수정합니다.

    시스템 프롬프트
    This is a KOREAN question answering system. Answer ONLY in KOREAN.
    
    QA 프롬프트
    Use the following pieces of context to answer the question at the end in detail with clear explanation. If you don't know the answer, just say that you don't know, don't try to make up an answer. Give answer in Korean even if the context is in {lang} 
    
    {context}
    Question: {question}
    Helpful Answer:

    Kotaemon 한국어 응답 프롬프트 설정

    이제 Kotaemon 설치 및 환경설정이 완료되었습니다. 

     

    인덱싱 및 RAG 테스트

    모든 설치와 환경설정이 완료되었으니, 실제 문서 파일을 인덱싱 하고 RAG 테스트를 해보겠습니다. 

    1. 문서파일 업로드 및 인덱싱: 상단 File 메뉴를 클릭하고, File Collection에서 문서 파일을 업로드하고 인덱싱 합니다. 

    File Collection 문서 업로드 및 인덱싱

    File Collection과 같은 방식으로 GraphRAG Collection에서 문서를 업로드하고 인덱싱 합니다. 

    GraphRAG Collection 문서 업로드 및 인덱싱

    2. 질문하기: 상단 메뉴에서 Chat을 클릭하고, File Collection에서 Search in File을 체크한 후, 바로 아래 박스에서 좀 전에 업로드한 파일을 선택해서, 채팅창에 질문을 입력하면 아래 화면과 같이 답변, 출처, 관련성 점수가 표시됩니다. 

    File Collection 질문에 대한 답변, 출처, 관련성 점수 표시

    질문) AI Scientist에 대해 설명해줘
    
    답변) AI Scientist는 완전 자동화된 과학 발견 프로세스를 위한 시스템으로, 주로 기계 학습 분야에서 활용됩니다. 이 시스템은 세 가지 주요 단계로 구성되어 있습니다: 아이디어 생성, 실험 반복, 그리고 논문 작성입니다.
    1. 아이디어 생성: AI Scientist는 초기 템플릿을 바탕으로 다양한 새로운 연구 방향을 "브레인스토밍"합니다. 이 과정에서 LLM(대형 언어 모델)을 사용하여 기존 아이디어 아카이브를 기반으로 새로운 아이디어를 생성하고, 각 아이디어는 설명, 실험 실행 계획, 그리고 흥미로움, 참신함, 실행 가능성에 대한 수치 점수를 포함합니다. 생성된 아이디어는 Semantic Scholar API와 웹 접근을 통해 기존 문헌과의 유사성을 평가하여 중복된 아이디어를 걸러냅니다.
    2. 실험 반복: 아이디어가 생성되면, AI Scientist는 제안된 실험을 실행하고 결과를 시각화하여 논문 작성에 활용합니다. 이 단계에서 Aider라는 코딩 보조 도구를 사용하여 실험 계획을 세우고, 실험을 순차적으로 실행합니다. 실험이 실패하거나 시간이 초과될 경우, Aider는 코드를 수정하고 최대 네 번까지 재시도합니다. 각 실험이 완료된 후, Aider는 결과를 기록합니다.
    3. 논문 작성: 실험 결과를 바탕으로 AI Scientist는 과학 논문을 작성합니다. 작성된 논문은 자동화된 리뷰 과정을 거쳐 품질이 평가됩니다. 이 리뷰는 표준 기계 학습 회의의 가이드라인을 따르며, AI Scientist는 이 피드백을 통해 아이디어를 개선하거나 다음 세대의 연구에 반영합니다.
    AI Scientist는 이러한 과정을 반복하여 과학적 발견의 아카이브를 확장해 나가며, 이는 인간 과학자들이 후속 연구에 활용할 수 있는 유용한 정보를 제공합니다. 이 시스템은 과학적 발견의 속도를 높이고, 비용을 절감하는 데 기여할 수 있는 잠재력을 가지고 있습니다.

    File Collection 질문에 대한 답변, 출처, 관련성 점수 표시

    이번에는 Chat을 클릭하고, GraphRAG Collection에서 Search in File을 체크한 후, 질문하고자 하는 문서 파일을 선택해서, 채팅창에 질문을 입력하면 아래 화면과 같이 답변, 관계 다이어그램 및 개체 설명이 표시됩니다. 

    GraphRAG Collection 질문에 대합 답변, 관계 다이어그램 표시
    GraphRAG Collection 질문에 대한 답변, 개체 설명
    GraphRAG 관계 다이어그램 예시

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    마치며

    Kotaemon은 문서 기반 QA(질의응답) 인터페이스로, 사용자들에게 문서 검색과 답변 생성 과정을 혁신적으로 제공하는 도구입니다. 이를 통해 개인과 기업은 문서 내에서 필요한 정보를 손쉽게 찾고, 복잡한 질문에 대한 명확한 답변을 받을 수 있습니다. Kotaemon의 RAG 파이프라인, 하이브리드 검색 기능, 그리고 Gradio 기반의 확장 가능한 UI는 다양한 요구를 충족하며, 효율적으로 지식을 탐구할 수 있도록 해줍니다. 

     

    Kotaemon을 사용해 본 후기는 다음과 같습니다.

    • 설치는 간단하지만 설정이 까다롭다.
    • PDF문서의 그림과 표 검색을 위한 Adobe API는 에러가 있다.
    • RAG 답변이 정확하고 관계 다이어그램을 쉽게 구현해 준다.

    오늘은 문서 검색과 질의응답을 위한 Q&A 인터페이스, Kotaemon에 대해 알아보았습니다. 여러분도 한번 Kotaemon을 활용해서 미뤄둔 논문의 내용을 손쉽게 파악해 보시는 건 어떨까요? 저는 다음 시간에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다!

     

    https://fornewchallenge.tistory.com/

     

     

    2024.07.12 - [AI 도구] - 🤖STORM: AI로 논문 작성하기,📈주제만 입력하면 고품질 리포트 3분 완성!

     

    🤖STORM: AI로 논문 작성하기,📈주제만 입력하면 고품질 리포트 3분 완성!

    안녕하세요! 오늘은 대형 언어 모델을 활용해서 제목만 입력하면 인터넷 검색부터 고품질 보고서까지 자동으로 작성해 주는 STORM이라는 AI 도구를 소개해드리겠습니다. STORM(Synthesis of Topic Outlines

    fornewchallenge.tistory.com

     

    728x90