veyliss/ai-localbase

一个本地优先的AI知识库系统(RAG),用于把本地文档接入辅导搜索与大模型对话流程。目前支持md、txt、pdf(文本)、xlsx、cvs类型。支持mcp服务

AI LocalBase – 로컬 우선의 RAG 지식 기반 시스템

한 줄 요약

Go, React, Qdrant를 사용해 구축한 자체 호스팅 벡터 검색 + 대규모 모델 대화 플랫폼으로, 개인 또는 소규모 팀이 로컬 문서(TXT, Markdown, PDF, Excel, CSV 등)를 검색 증강 질문 응답(RAG)에 연결하고, Ollama 또는 OpenAI 호환 모델을 통해 대화를 수행할 수 있도록 지원합니다.


핵심 기술 스택

계층 기술 설명
백엔드 Go + Gin 고성능 HTTP API로 문서 해석, 벡터화, 검색, 세션 관리 등의 비즈니스 로직을 담당
프론트엔드 React + Vite + TypeScript 단일 페이지 웹 UI로 지식 기반 관리, 파일 업로드, 채팅 인터페이스 등을 제공
벡터 데이터베이스 Qdrant 오픈소스 벡터 데이터베이스로 문서 벡터를 저장하고, 하이브리드 검색, MMR 중복 제거 등의 고급 검색 기능을 지원
모델 연동 Ollama / OpenAI‑호환 API 통일된 Provider 설정을 통해 로컬 Ollama 모델 또는 OpenAI 호환 채팅/임베딩 모델을 사용 가능
지속성 저장 SQLite (채팅 기록) + JSON 파일 (설정) 외부 데이터베이스 없이도 가벼운 로컬 저장을 제공
배포 Docker‑Compose (권장) 프론트엔드, 백엔드, Qdrant 세 개의 컨테이너를 한 번에 시작 가능하며, 단일 프로세스 디버깅 방식도 제공
확장성 MCP Server (내장) 외부 Agent, 스크립트 또는 도구 시스템이 로컬 지식 기반, 검색, 평가 기능을 호출할 수 있는 HTTP/JSON‑RPC 인터페이스

주요 기능

  1. 지식 기반 관리 – 여러 지식 기반을 생성, 삭제, 탐색 가능하며, 각각 Qdrant collection과 대응됨.
  2. 문서 업로드 및 자동 인덱싱 – TXT, Markdown, PDF, xlsx, csv 지원; 자동 분할, 대량 임베딩 후 벡터 데이터베이스에 기록.
  3. 검색 증강 질문 응답 (RAG) – 검색 결과를 대화 컨텍스트에 삽입하며, 다음과 같은 기능 지원:
    • 동적 재검색, 키워드 커버리지, MMR 중복 제거
    • 낮은 신뢰도 시 재검색, 의미적 캐시, 하이브리드 검색, 의미 재정렬, 쿼리 재작성, 컨텍스트 압축
  4. 채팅 기록 지속성 – 모든 대화는 로컬 SQLite에 저장되며, 프론트엔드에서 이전 대화를 확인 가능.
  5. 설정 지속성 – 모델, 벡터 데이터베이스, 인증 설정 등은 로컬 JSON 파일에 저장되어 컨테이너 재시작 시 자동 복원.
  6. MCP (모듈형 기능 제공자) – 외부 Agent에게 도구 목록, 호출 인터페이스, 권한 계층, 제한, 감사 로그 등을 제공하며, 비동기 임포트, 인덱스 재구성, 평가 데이터셋 생성 등의 워크플로우를 지원.
  7. 보안 및 인증 – 환경 변수로 웹 로그인, API‑Key 인증을 활성화 가능; 프로덕션 배포 시 기본적으로 활성화됨.

대표적인 사용 사례

  • 개인 지식 기반: 노트, 기술 문서, PDF 매뉴얼 등을 로컬화하여 언제든지 채팅 방식으로 검색 가능.
  • 소규모 팀 내부 문서 질문 응답: 회사 내부 네트워크에서 자체 호스팅하여 데이터가 외부로 유출되지 않도록 보장.
  • RAG 프로토타입 검증: 다양한 검색 전략, 하이브리드 검색 또는 재정렬 모델을 빠르게 구축하고 실험 가능.
  • 모델 연동 테스트: Ollama 로컬 모델과 클라우드 OpenAI‑호환 모델의 성능 및 비용을 비교 가능.
  • Agent 백엔드: MCP를 통해 사용자 정의 AI Agent에게 '문서 읽기 → 검색 → 답변 생성' 기능 제공.
  • 대량 문서 처리: 비동기 방식으로 대량 파일을 임포트하며, 진행 상황 조회 및 작업 취소 가능.

빠른 시작 (최소 단계)

# 환경 변수 템플릿 복사 후 모든 컨테이너 시작
cp .env.example .env
docker compose up --build
  • http://localhost:4173 접속 → Settings → Chat 및 Embedding 모델 설정 (예: Ollama qwen2.5:7b + bge-m3)
  • 문서 업로드 → 대화 시작, 시스템이 자동으로 관련 조각을 검색하여 컨텍스트에 삽입합니다.

완전한 시작, 디버깅, 프로덕션 배포 세부 사항은 docs/getting-started.md, DOCKER_DEPLOY.md 등의 문서를 참조하세요.


배포 옵션

시나리오 추천 방식
로컬 체험 docker compose up --build (단일 머신)
프로덕션 자체 호스팅 docker-compose.prod.yml 사용, ENABLE_AUTH=true 활성화, 강력한 비밀번호 또는 AUTH_SETUP_TOKEN 설정, 필요 시 Qdrant를 0.0.0.0에 바인딩하고 API‑Key 구성
백엔드/프론트엔드만 실행 docker-compose.dev.yml 내 해당 서비스를 별도로 시작하여 코드 마운트로 디버깅 용이
사용자 정의 이미지 AI_LOCALBASE_IMAGE_TAG=v1.4.6 docker compose -f docker-compose.prod.yml up -d

오픈소스 라이선스 & 커뮤니티


적합한 독자

  • 클라우드 서비스에 의존하지 않고 로컬에서 RAG 프로세스를 빠르게 실험하고 싶은 개발자.
  • 자체 호스팅이 가능하고 확장성이 있는 문서 질문 응답 플랫폼이 필요한 소규모 팀.
  • 검색 전략, 하이브리드 검색, 사용자 정의 도구 체인(MCP를 통해)을 평가하고 싶은 AI 연구자.

프로젝트에 도움이 되었다면 저장소에 ⭐를 눌러주세요

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트