본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 16:24

Xthebuilder/JRVS

요약

JRVS는 데이터 보안과 컴플라이언스가 중요한 규제 산업을 위해 설계된 셀프 호스팅 AI 운영 어시스턴트입니다. Google Workspace와 연동하여 이메일 요약, 문서 초안 작성 등의 업무를 자동화하며, Ollama나 LM Studio를 통한 로컬 추론을 지원하여 데이터가 외부로 유출되지 않도록 보장합니다.

핵심 포인트

  • 데이터 보안을 위해 Ollama 및 LM Studio를 활용한 로컬 추론(Local Inference) 방식 채택
  • Google Workspace(Gmail, Drive, Docs, Sheets)와의 연동을 통한 업무 자동화 지원
  • 모든 쓰기 작업에 대해 의도와 결과를 기록하는 전체 감사 추적(Audit Trail) 기능 제공
  • 작업 위험도에 따라 auto, notify, confirm의 3단계 신뢰 계층(Trust Tier) 설정 가능
  • 헬스케어, 법률, 금융 등 데이터 외부 유출이 엄격히 제한된 규제 산업에 최적화

귀하의 팀은 받은 편지함 분류(inbox triage), 조사 요약(research digests), 문서 초안 작성(document drafting), 일정 요약(calendar summaries)과 같은 일상적인 업무를 위해 AI가 필요합니다. 하지만 ChatGPT와 Claude.ai는 고려 대상이 아닙니다. 법무팀(Legal)에서 안 된다고 합니다. 컴플라이언스(Compliance) 팀에서도 안 된다고 합니다. 귀하의 데이터 정책도 안 된다고 합니다.

JRVS는 전체 감사 추적(audit trail)이 가능한 Google Workspace 자동화가 필요하면서도, 해당 데이터를 OpenAI로 보낼 수 없는 팀을 위한 셀프 호스팅(self-hosted) AI 운영 어시스턴트입니다.

이 시스템은 귀하의 서버에서 실행됩니다. 추론(Inference)은 귀하의 하드웨어에서 이루어집니다. 그 어떤 것도 귀하의 건물 밖으로 나가지 않습니다.

헬스케어, 법률, 금융 서비스, 정부 계약 등 규제 산업(regulated industries)에 종사하며, 컴플라이언스 사고를 일으키지 않으면서 AI를 유용하게 유지할 책임(귀하)이 있는 10~100명 규모의 팀을 대상으로 합니다.

귀하는 이미 Google Workspace를 사용하고 있습니다. IT 담당자 한 명과 Docker가 있습니다. 귀하에게는 6자릿수 비용이 드는 Microsoft Copilot 계약이 필요하지 않습니다. 귀하에게 필요한 것은 지루하지만 민감한 반복 업무를 자동으로 처리하고, 수행한 작업에 대한 기록을 유지하며, 외부 API를 절대 건드리지 않는 AI입니다.

JRVS는 로컬 모델 백엔드(local model backends)인 Ollama 또는 LM Studio에 연결되므로, 추론(inference)이 귀하의 하드웨어에서 실행됩니다. OpenAI API 키도 필요 없습니다. 텔레메트리(telemetry)도 없습니다. 컴플라이언스(compliance)에 대한 설명은 단 한 문장입니다: 데이터가 절대 외부로 나가지 않았다는 것입니다.

JRVS는 귀하가 키보드 앞에 있지 않아도 백그라운드에서 예약된 작업(scheduled tasks)—아침 편지함 요약, 긴급 이메일 모니터링, 주간 조사 브리핑 등—을 실행합니다. 각 작업에는 귀하가 구성할 수 있는 신뢰 계층(trust tier)이 있습니다:

auto— 조용히 실행 (저위험 읽기 및 요약)
notify— 실행 후 Slack 또는 터미널(terminal)을 통해 보고
confirm— 결과물을 초안으로 작성한 후, 실행 전 귀하의 승인을 대기

귀하가 설정한 계층(tier)에서 허용하지 않는 한, 그 무엇도 이메일을 보내거나 문서를 수정하지 않습니다.

JRVS가 수행하는 모든 쓰기 작업(write action)—이메일 전송, Doc 생성, Sheet 업데이트 등—은 두 번 기록됩니다: 실행 전(의도, intent)과 실행 후(결과, result) 각각 한 번씩, 타임스탬프(timestamp) 및 세션 ID(session ID)와 함께 귀하의 서버에 있는 순환 JSON 로그(rotating JSON log)에 저장됩니다. 귀하의 컴플라이언스 팀은 이를 읽고 내보낼(export) 수 있습니다.

카테고리기능
Scheduled Agents (예약된 에이전트)모닝 다이제스트, 긴급 이메일 모니터링, 주간 리서치 브리핑, 일일 요약 — 귀하의 일정에 따라 실행
Google WorkspaceGmail, Drive, Docs, Sheets 읽기/쓰기 — 모든 쓰기 작업에 대한 전체 감사 추적 (audit trail) 제공
Audit Logging (감사 로깅)모든 쓰기 작업에 대한 JSON 의도+결과 로그, 순환 파일 (rotating file), 내보내기 가능
Local Inference (로컬 추론)Ollama, LM Studio — 런타임 시 전환 가능, 클라우드 의존성 없음
RAG PipelineFAISS + BGE 임베딩 (embeddings) + 교차 인코더 재순위화 (cross-encoder reranking) + MMR 다양성 (diversity)
Memory (메모리)SQLite 지속성 메모리 (persistent memory), 세션 간 검색 (cross-session retrieval)
Web Search (웹 검색)Brave Search API를 통한 지식 베이스 자동 수집 (auto-ingest)
File Uploads (파일 업로드)uploads/ 디렉토리에 파일을 드롭하여 지식 베이스로 수집
MCP완전한 MCP 클라이언트 + 서버 (17개 이상의 도구)
API Server프로그래밍 방식의 접근을 위한 Bearer 토큰 인증 기능이 포함된 FastAPI 서버
Vision Extension (비전 확장)카메라 캡처, LLaVA/Moondream 추론, 이상 탐지 (anomaly detection)
Audio Extension (오디오 확장)웨이크 워드 (Wake word) → Whisper STT → JRVS → Piper/Kokoro TTS
Community (커뮤니티)Professional (프로페셔널)Team (팀)
Self-hosted (자체 호스팅)
...가격무료$149 (1회성)

SSO/SAML 및 다중 사용자 팀 관리는 로드맵에 포함되어 있습니다. 자세한 내용은 ENTERPRISE.md를 참조하세요.

커뮤니티 사용은 CC BY-NC 4.0에 따라 무료입니다. 상업적 이용을 위해서는 Professional 또는 Team 라이선스가 필요합니다.

도구필수 여부용도
Python 3.8+런타임 (Runtime)
Ollama 또는 LM StudioLLM 백엔드 (backend)
Node.js선택 사항MCP 서버, 웹 UI
# 1. 저장소 복제 (Clone the repo)
git clone https://github.com/Xthebuilder/JRVS_Private.git
cd JRVS_Private
...

macOS:chmod +x setup_mac.sh && ./setup_mac.sh

Windows:setup_windows.bat

Windows

  • Python 3.8+ 설치 — "Add Python to PATH" 확인
  • Ollama 또는 LM Studio 설치
  • Node.js LTS 설치 (선택 사항, MCP 및 웹 UI용)
pip install -r requirements.txt
ollama serve
ollama pull gemma3:12b
...

팁 (Tips):

  • 의존성 충돌을 방지하기 위해 가상 환경 (virtual environment)을 사용하세요:
    python -m venv venv
    venv\Scripts\activate
    pip install -r requirements.txt

  • 만약 torch 설치에 실패한다면: Visual C++ Build Tools를 설치하세요.

  • 만약 FAISS 설치에 실패한다면:
    pip install faiss-cpu --no-cache-dir

macOS

# 필요한 경우 Homebrew 설치
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install python@3.11 ollama node
...

팁 (Tips):

  • Apple Silicon (M1/M2/M3): 모든 의존성이 ARM을 네이티브로 지원합니다.

  • 만약 python을 찾을 수 없다면, python3를 사용하세요.

  • SSL 에러 발생 시:
    /Applications/Python\ 3.11/Install\ Certificates.command

  • PATH에 Homebrew 추가 (Apple Silicon):
    eval "$(/opt/homebrew/bin/brew shellenv)"

Linux

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
...
python main.py # 기본값 (Ollama)
python main.py --use-lmstudio # LM Studio 사용
python main.py --theme cyberpunk # 테마 설정
...

모든 옵션: python main.py --help

명령 (Command)설명 (Description)
/help모든 명령 표시
/models사용 가능한 모델 목록 표시
/switch <model>활성 모델 전환
지식 베이스 (Knowledge Base)
/scrape <url>URL을 지식 베이스로 스크래핑
/search <query>저장된 문서 검색
/websearch <query>Brave API를 통해 검색하고 결과를 자동 수집
/upload listuploads/ 폴더의 파일 목록 표시
/upload ingest <file>특정 파일을 지식 베이스로 수집
/upload ingest-alluploads/ 내의 모든 파일 수집
/upload read <file>uploads/에서 파일 읽기
Brave Search
/brave-key <key>실행 시 Brave API 키 설정
/brave-statusBrave 설정 및 요청 사용량 표시
캘린더 (Calendar)
/calendar향후 일정 표시 (7일간)
/today오늘의 일정 표시
/month [month] [year]ASCII 달력 표시
MCP
/mcp-servers연결된 MCP 서버 목록 표시
/mcp-tools [server]사용 가능한 MCP 도구 목록 표시
Google Workspace
/google-auth

Google로 인증 (OAuth2 flow) |
/google-status | 연결 상태 및 동기화 통계 표시 |
/google-sync | Gmail + Drive 동기화 수동 실행 |
/gmail search <query> | Gmail 검색 및 결과 수집 |
/gmail send <to> <subj> <body> | 이메일 전송 (감사 로그 기록) |
/gdocs read <title|id> | Google Doc 수집 |
/gdocs create <title> <content> | Google Doc 생성 |
/gsheets read <id> [range] | Google Sheet 읽기 |
/gsheets update <id> <range> <val> | Sheet 셀 업데이트 |
자율 목표 (Autonomous Goals) |
| /agent goals | goals.yaml에서 목표 목록 표시 |
/agent run <id> | 특정 목표를 즉시 실행 |
/agent run --schedule <s> | 일정에 따른 모든 목표 실행 |
/agent start | 백그라운드 목표 스케줄러 시작 |
/agent status | 스케줄러 상태 및 마지막 실행 시간 표시 |
시스템 (System) |
| /stats | 시스템 통계 표시 |
/history | 대화 기록 표시 |
/theme <name> | 테마 변경 (matrix, cyberpunk, minimal) |
/clear | 화면 지우기 |
/exit | JRVS 종료 |

JRVS는 Gmail, Google Drive, Google Docs, Google Sheets를 읽을 수 있으며, 전체 감사 로그 (audit log)와 함께 Docs/Sheets/이메일을 작성할 수 있습니다.

1. OAuth2 자격 증명(credentials) 생성

  • console.cloud.google.com 접속
  • 프로젝트 생성 → Gmail API, Drive API, Docs API, Sheets API 활성화
  • OAuth 2.0 자격 증명 (credentials) → 데스크톱 앱 (Desktop app) → JSON으로 다운로드
  • client_idclient_secret 값을 복사

2. .env 파일에 추가

GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your-client-secret

3. JRVS 내부에서 인증

/google-auth

출력된 URL을 방문하여 액세스 권한을 허용하고, 코드를 다시 붙여넣으세요. 그러면 JRVS가 백그라운드 동기화를 시작하여 15분마다 (GOOGLE_SYNC_INTERVAL_MINUTES로 설정 가능) 새로운 이메일과 Drive 파일을 지식 베이스 (knowledge base)로 수집합니다.

4. 사용하기

/google-status 연결 상태 및 동기화 통계 확인
/gmail search invoice Gmail에서 검색하여 일치하는 항목 수집
/gdocs create "Notes" "First draft"
...

JRVS는 extensions/ 디렉토리 아래에 두 개의 독립적인 확장 모듈 (extension modules)을 포함하여 배포됩니다.

이 모듈들은 코어 파일 (core files)을 수정하지 않고 JRVS의 메모리 (memory) 및 이벤트 (events)에 후킹 (hook)됩니다. 두 모듈 모두 완전히 로컬 (locally)에서 실행됩니다.

내장 웹캠 (webcam), USB 카메라, WiFi를 통한 DroidCam, 또는 모든 RTSP/HTTP 스트림 (stream) 등 어떤 카메라와도 연결할 수 있습니다. 프레임을 지능적으로 캡처하며 (움직임이 감지되거나 주기적인 간격에서만 프레임을 처리), 로컬 시각적 추론 (visual inference)을 수행하고, 관찰 내용을 JRVS 메모리에 기록하며, 특이 사항이 감지되면 이상 징후 알림 (anomaly alerts)을 표시합니다.

빠른 시작 (Quick start):

# 시각 관련 의존성 설치
pip install -r extensions/vision/requirements.txt
# LLaVA 추론을 위해: 모델을 Ollama로 가져오기 (JRVS를 위해 이미 실행 중)
...

소스 옵션 (Source options):

소스설정 값 (Config value)
USB / 내장 웹캠0 , 1 , 2
...
extensions/vision/config.yaml에서 설정합니다.

:

camera:
  source: "screen" # 또는 DroidCam의 경우 "http://192.168.1.X:4747/video"

JRVS 오케스트레이션 (orchestration) 코드에서 사용하기:

from extensions.vision import VisionModule
vision = VisionModule()
await vision.initialize()
...

실행이 시작되면, JRVS에게 자연스럽게 물어보세요:

jarvis❯ 지난 한 시간 동안 무엇을 보았니?
jarvis❯ 새벽 2시에 특이한 활동이 있었니?

시각적 관찰 내용 (Vision observations)은 임베딩 (embedded)되어 JRVS의 FAISS 인덱스 (index)에 저장되므로, 일반적인 RAG 검색 (retrieval) 결과에 나타납니다.

설정 (Config): extensions/vision/config.yaml

키 (Key)기본값 (Default)설명 (Description)
camera.source00 = 웹캠, URL = DroidCam/RTSP
inference.backend"llava""llava" 또는 "moondream"
inference.llava.model"llava:7b"Ollama 모델 이름
camera.motion_threshold0.05추론을 트리거하기 위해 변경된 픽셀의 비율
camera.periodic_interval30최소 N초마다 항상 추론 수행
anomaly.alert_threshold0.85알림이 발생하는 임계 점수
memory.log_level"scene""all" / "scene" / "anomaly"

전체 대화형 음성 입출력(Full conversational voice I/O)을 지원합니다. 웨이크 워드("hey jarvis")를 듣고, 사용자의 음성을 녹음한 후, Whisper로 전사(transcribe)하고, 텍스트를 JRVS로 보내며, Piper 또는 Kokoro TTS를 사용하여 응답을 음성으로 출력합니다. 모든 과정은 로컬에서 실행됩니다.

의존성 설치:

pip install -r extensions/audio/requirements.txt
# Piper 바이너리 (Linux x86_64 예시)
wget https://github.com/rhasspy/piper/releases/download/2023.11.14-2/piper_linux_x86_64.tar.gz
...

스모크 테스트:

# TTS 테스트 — JRVS가 말하는 것을 듣기
python -m extensions.audio.audio_module --say "Hello, I am JRVS."
# STT 테스트 — 말하고 전사된 내용을 보기
...

JRVS 오케스트레이션 코드에서 사용:

from extensions.audio import AudioModule
import aiohttp
audio = AudioModule()
...

설정 (Config): extensions/audio/config.yaml

KeyDefaultDescription
input.devicenullnull = 시스템 기본값 또는 장치 이름/인덱스
stt.model`
jarvis❯ /upload ingest-all

30개 이상의 확장자를 지원합니다: .txt, .md, .py, .js, .json, .csv, .yaml, .pdf 및 기타.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0