Skip to content

Latest commit

Β 

History

History
712 lines (590 loc) Β· 23.9 KB

File metadata and controls

712 lines (590 loc) Β· 23.9 KB

PROJECT JAMES β€” μΈμˆ˜μΈκ³„μ„œ

μž‘μ„±μΌ: 2026λ…„ 5μ›” (초기) / 2026-06-12 header refresh (v0.4.4) μž‘μ„±μž: Hashevolution λŒ€μƒ: λ‹€μŒ μ„Έμ…˜μ˜ Claude (λ˜λŠ” 본인 참쑰용) ν˜„μž¬ μƒνƒœ: v0.4.4 (LRB v0.2.3 S3 publication-scale + cycle Ξ³ 4-bench 인프라 마감). DOI 10.5281/zenodo.20652679.

⚠️ 이 λ¬Έμ„œμ˜ λ³Έλ¬Έ (Β§1 μ΄ν•˜ ~700 쀄) 은 초기 v0.1.x μ‹œμ μ˜ μΈμˆ˜μΈκ³„ 기둝 보쑴본. v0.4 cycle 의 μ΅œμ‹  entry / 의무 reading λ¬ΆμŒμ€ 별도:

  • μ‹ κ·œ μ„Έμ…˜ μ§„μž… μ‹œ 첫 의무 reading: docs/handovers/v0.4-next-session-entry-2026-06-12-pm.md
  • CLAUDE.md "Where to look next" ν‘œ 첫 ν–‰ 도 동일 doc 으둜 pinned
  • μžμ„Έν•œ ν•œκ΅­μ–΄ narrative: README.ko.md Β§ "ν”„λ‘œμ νŠΈ μƒνƒœ: v0.4.4"
  • External evaluator first read: SUMMARY.md
  • Per-version release narrative: docs/release_notes_v0.4.4.md (이 cycle), docs/release_notes_v0.4.3.md (RAB μΆœμ‹œ), 그리고 κ·Έ 이전 chain

λ³Έλ¬Έ (Β§1 μ΄ν•˜) 은 ν”„λ‘œμ νŠΈ μΆœλ²” μ‹œμ μ˜ 정체성 / μΈμˆ˜μΈκ³„ λ§₯락 의 historical 기둝. λ³€κ²½ν•˜μ§€ μ•Šκ³  보쑴.


πŸ“Œ 1. ν”„λ‘œμ νŠΈ 정체성

1-1. ν•œ 쀄 μ •μ˜

PROJECT JAMES: λ³΄μ•ˆ μ€‘μ‹¬μœΌλ‘œ μ„€κ³„λœ, 둜컬 ν™˜κ²½μ—μ„œ λ™μž‘ν•˜λŠ” Graph-RAG 기반 지식 μΆ”λ‘  μ—”μ§„

1-2. 4κ°€μ§€ λ™μ‹œ μ—­ν•  (개발 μ² ν•™)

1. μ‹œμŠ€ν…œ μ•„ν‚€ν…νŠΈ
2. λ³΄μ•ˆ μ—”μ§€λ‹ˆμ–΄ (Red Team 포함)
3. Graph / Ontology μ—°κ΅¬μž
4. μ œν’ˆ μ±…μž„μž (Startup CTO)

1-3. 핡심 μ² ν•™

원칙 1: RAGλŠ” λΆˆμ™„μ „ν•˜λ‹€
  - λ‹¨μˆœ Vector 검색은 hallucination을 막지 λͺ»ν•¨
  - λ°˜λ“œμ‹œ Graph + Ontology 기반 μΆ”λ‘  ν•„μš”

원칙 2: λ³΄μ•ˆμ€ κΈ°λŠ₯이 μ•„λ‹ˆλΌ μ „μ œλ‹€
  - λͺ¨λ“  μ„€κ³„λŠ” 곡격을 μ „μ œλ‘œ μ‹œμž‘
  - "λ™μž‘ν•œλ‹€"보닀 "μœ μΆœλ˜μ§€ μ•ŠλŠ”λ‹€"κ°€ μš°μ„ 

원칙 3: Graph μ—†μœΌλ©΄ μ‹€νŒ¨
  - Graph μ•½ν•˜λ©΄ κ·Έλƒ₯ 느린 검색 μ—”μ§„
  - 관계 μΆ”λ‘  + 경둜 기반 reasoning + explainable output ν•„μˆ˜

원칙 4: 항상 μ‹€νŒ¨λ₯Ό κ°€μ •
  - LLM μ‹€νŒ¨, λ„€νŠΈμ›Œν¬ λŠκΉ€, 데이터 깨짐
  - λͺ¨λ“  λ‘œμ§μ€ fallback ν•„μˆ˜

1-4. μ˜μ‚¬κ²°μ • μš°μ„ μˆœμœ„

1. λ³΄μ•ˆ
2. 데이터 μ •ν•©μ„±
3. Graph μ •ν™•μ„±
4. μ•ˆμ •μ„±
5. μ„±λŠ₯
6. κΈ°λŠ₯ ν™•μž₯

1-5. μ΅œμ’… ν•œ 쀄 λͺ©ν‘œ

"이 μ‹œμŠ€ν…œμ€ λ‹¨μˆœν•œ AIκ°€ μ•„λ‹ˆλΌ λ³΄μ•ˆμ΄ 보μž₯된 지식 μΆ”λ‘  엔진이어야 ν•œλ‹€."


πŸ—οΈ 2. 기술 μŠ€νƒ

λ°±μ—”λ“œ:        Python 3.11+ / FastAPI / Uvicorn
LLM:           Ollama (Gemma2:2b κΈ°λ³Έ, DeepSeek-Coder, LLaVA)
Vector DB:     ChromaDB
μž„λ² λ”©:         Sentence-Transformers (MiniLM-L12)
검색:          BM25 + Vector ν•˜μ΄λΈŒλ¦¬λ“œ + keyword
μ›Ή 검색:        Tavily (1μˆœμœ„) + DuckDuckGo (fallback)
인증:          JWT (HS256) + Rate Limiting
μ €μž₯μ†Œ:        SQLite + λ§ˆν¬λ‹€μš΄ μœ„ν‚€
ν™˜κ²½:          Windows / macOS / Linux 크둜슀 ν”Œλž«νΌ

핡심 LLM μ„€μ •

MAX_DEPTH=4 (Graph DFS)
DFS_SCORE_THRESHOLD=0.05
DEPTH_DECAY=0.7
num_predict=동적
num_ctx=2048
temperature=0

πŸ“¦ 3. GitHub 곡개 정보

μ €μž₯μ†Œ:        https://github.com/Hashevolution/James-RAG-Evol
μ‚¬μš©μžλͺ…:       Hashevolution
λΌμ΄μ„ μŠ€:       MIT
곡개일:        2026λ…„ 5μ›”
ν˜„μž¬ 버전:      v0.1.1 (Path Auto-Detection Patch)
이전 버전:      v0.1.0-alpha (Initial Public Release)

릴리즈:
  v0.1.0-alpha  졜초 곡개 (Pre-release, λ³΄μ•ˆ κ²½κ³  좔가됨)
  v0.1.1        λ³΄μ•ˆ/이식성 패치 (Pre-release, μ΅œμ‹ )

μ €μž₯μ†Œ μ„€μ •

Topics:        rag, graph-rag, knowledge-graph, ollama, local-llm,
               local-ai, fastapi, python, security, ai-agent, self-evolution

Features:
  βœ… Issues ν™œμ„±
  βœ… Dependabot alerts ν™œμ„±
  βœ… Dependabot security updates ν™œμ„±
  ☐ Wiki, Discussions, Projects, Sponsorships λΉ„ν™œμ„±

Pull Requests:
  βœ… Automatically delete head branches

πŸ—‚οΈ 4. ν”„λ‘œμ νŠΈ ꡬ쑰

4-1. 둜컬 개발 ν™˜κ²½

경둜:          C:\Project\James-RAG-Evol-v010\ (μ‚¬μš©μž PC)
GitHub 폴더λͺ…:  James-RAG-Evol (μ €μž₯μ†Œ 이름)

4-2. 폴더 ꡬ쑰

James-RAG-Evol/
β”œβ”€β”€ core/                       μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ + LLM ν΄λΌμ΄μ–ΈνŠΈ
β”‚   β”œβ”€β”€ auth.py                JWT 인증
β”‚   β”œβ”€β”€ cache_manager.py
β”‚   β”œβ”€β”€ character_profile.py   11 νŠΈλ ˆμž‡ μ •μ˜ (μ˜μ–΄ν™” μ™„λ£Œ)
β”‚   β”œβ”€β”€ feedback_engine.py     ν”Όλ“œλ°± β†’ μ œμ•ˆ 생성
β”‚   β”œβ”€β”€ gemma_client.py
β”‚   β”œβ”€β”€ graph_engine.py        Graph DFS 핡심
β”‚   β”œβ”€β”€ graph_rag_engine.py    backward-compat wrapper
β”‚   β”œβ”€β”€ intent_classifier.py
β”‚   β”œβ”€β”€ jepa_adapter.py
β”‚   β”œβ”€β”€ knowledge_tracker.py   8 λŠ₯λ ₯ + 6 도메인 (μ˜μ–΄ν™” μ™„λ£Œ)
β”‚   β”œβ”€β”€ memory_extractor.py
β”‚   β”œβ”€β”€ memory_loom.py
β”‚   β”œβ”€β”€ memory_store.py
β”‚   β”œβ”€β”€ memory_trust.py
β”‚   β”œβ”€β”€ ontology.py            12 relation types
β”‚   β”œβ”€β”€ orchestrator.py
β”‚   β”œβ”€β”€ query_router.py
β”‚   β”œβ”€β”€ rag_engine.py
β”‚   β”œβ”€β”€ reasoning_engine.py    μΆ”λ‘  루프 (μ–Έμ–΄ μžλ™ 감지 포함)
β”‚   β”œβ”€β”€ retrieval_engine.py
β”‚   β”œβ”€β”€ security_layer.py      31+ injection patterns
β”‚   β”œβ”€β”€ vector_store.py        ChromaDB + μž„λ² λ”© (BASE_DIR μžλ™ 감지)
β”‚   └── wiki_generator.py
β”‚
β”œβ”€β”€ llm/                        LLM 좔상화
β”‚   β”œβ”€β”€ base.py
β”‚   β”œβ”€β”€ router.py
β”‚   └── providers/
β”‚       β”œβ”€β”€ deepseek_client.py
β”‚       β”œβ”€β”€ llava_client.py
β”‚       └── ollama_client.py
β”‚
β”œβ”€β”€ tools/                      κΈ°λŠ₯ λͺ¨λ“ˆ
β”‚   β”œβ”€β”€ admin/                 (seed_data, upload_simulator, wiki_reset)
β”‚   β”œβ”€β”€ code/                  (analyzer, editor, reader, sandbox)
β”‚   β”œβ”€β”€ multimodal/            (image, media, video)
β”‚   β”œβ”€β”€ patch/                 (4-Gate Patch Pipeline)
β”‚   β”œβ”€β”€ screen/                (screen_agent)
β”‚   β”œβ”€β”€ self/                  (evo_analyzer, performance, self_learner)
β”‚   β”œβ”€β”€ system/                (hardware_inspector β€” μ˜μ–΄ν™” μ™„λ£Œ)
β”‚   β”œβ”€β”€ web/                   (web_searcher β€” Tavily/DDG)
β”‚   └── wiki/                  (wiki_editor)
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ admin.html             156 data-i18n 적용
β”‚   β”œβ”€β”€ index.html             28 data-i18n 적용
β”‚   └── static/
β”‚       β”œβ”€β”€ admin.js           동적 ν…μŠ€νŠΈ t() 적용 μ™„λ£Œ
β”‚       β”œβ”€β”€ chat.js            UI ν† κΈ€ + session_lang 동기화
β”‚       β”œβ”€β”€ i18n.js            286 ν‚€ (영/ν•œ)
β”‚       └── upload.js
β”‚
β”œβ”€β”€ processors/
β”‚   └── file_processor.py
β”‚
β”œβ”€β”€ utils/
β”‚   β”œβ”€β”€ metadata.py
β”‚   └── tokenizer.py
β”‚
β”œβ”€β”€ wiki/                       지식 κ·Έλž˜ν”„ (λ§ˆν¬λ‹€μš΄)
β”‚   β”œβ”€β”€ entity/
β”‚   β”‚   β”œβ”€β”€ prod/              운영 데이터
β”‚   β”‚   β”‚   β”œβ”€β”€ concept/       (Graph-RAG, λ³΄μ•ˆμΆ”λ‘ , ollama_en λ“±)
β”‚   β”‚   β”‚   β”œβ”€β”€ person/        (κΉ€λ―Όμ€€, λ°•μ§€ν›ˆ, μ΄μ„œμ—°, john_smith_en)
β”‚   β”‚   β”‚   └── org/           (μžλ©”μŠ€μ—°κ΅¬μ†Œ, james_research_lab_en λ“±)
β”‚   β”‚   └── test/              ν…ŒμŠ€νŠΈ 데이터
β”‚   └── index.md
β”‚
β”œβ”€β”€ memory/                     μž₯κΈ° κΈ°μ–΅ DB (.gitignore μ œμ™Έ)
β”œβ”€β”€ chroma_db/                  ChromaDB (.gitignore μ œμ™Έ)
β”œβ”€β”€ workspace/                  λŸ°νƒ€μž„ 데이터 (.gitignore μ œμ™Έ)
β”œβ”€β”€ uploads/                    μ—…λ‘œλ“œ (.gitignore μ œμ™Έ)
β”œβ”€β”€ models/miniLM/              μž„λ² λ”© λͺ¨λΈ (.gitignore μ œμ™Έ)
β”‚
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ create_james_self_wiki.py
β”‚   β”œβ”€β”€ reset_for_production.py
β”‚   β”œβ”€β”€ test_ollama_speed.py
β”‚   └── legacy/                μ˜› 패치 슀크립트
β”‚
β”œβ”€β”€ reports/                    ν…ŒμŠ€νŠΈ κ²°κ³Ό (.gitignore μ œμ™Έ)
β”‚
β”œβ”€β”€ ν…ŒμŠ€νŠΈ νŒŒμΌλ“€ (루트):
β”‚   β”œβ”€β”€ james_diagnostic.py    65 ν•­λͺ©, 8 μ„Ήμ…˜
β”‚   β”œβ”€β”€ james_security_test.py 83 ν•­λͺ©
β”‚   β”œβ”€β”€ james_e2e_test.py
β”‚   β”œβ”€β”€ james_phase5_test.py
β”‚   β”œβ”€β”€ james_phase55_test.py
β”‚   β”œβ”€β”€ james_phase6_test.py
β”‚   β”œβ”€β”€ james_phase6_gate.py
β”‚   └── james_phase7_test.py
β”‚
β”œβ”€β”€ μ„€μ • 파일:
β”‚   β”œβ”€β”€ config.py              μžλ™ 감지 + 크둜슀 ν”Œλž«νΌ
β”‚   β”œβ”€β”€ .env                   (.gitignore, 둜컬 μ „μš©)
β”‚   β”œβ”€β”€ .env.example
β”‚   β”œβ”€β”€ .gitignore
β”‚   └── requirements.txt       26개 νŒ¨ν‚€μ§€
β”‚
β”œβ”€β”€ λ¬Έμ„œ (루트):
β”‚   β”œβ”€β”€ README.md              μ˜μ–΄ (Hashevolution 적용)
β”‚   β”œβ”€β”€ README.ko.md           ν•œκ΅­μ–΄
β”‚   β”œβ”€β”€ SECURITY.md
β”‚   β”œβ”€β”€ ROADMAP.md
β”‚   β”œβ”€β”€ CONTRIBUTING.md
β”‚   β”œβ”€β”€ CHANGELOG.md
β”‚   └── LICENSE                MIT
β”‚
└── server_llmwiki.py           메인 μ„œλ²„ μ§„μž…μ 

πŸ›‘οΈ 5. λ³΄μ•ˆ λͺ¨λΈ (3-stage Access Control)

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  [User Query]                                         β”‚
β”‚       ↓                                               β”‚
β”‚  β‘  μž…λ ₯ ν•„ν„°  ← 31+ injection patterns               β”‚
β”‚       ↓                                               β”‚
β”‚  β‘‘ 쿼리 λΌμš°ν„° ← chat / coding / retrieval / web    β”‚
β”‚       ↓                                               β”‚
β”‚  β‘’ ν•˜μ΄λΈŒλ¦¬λ“œ 검색  ← Vector(60%) + BM25(20%) + kw  β”‚
β”‚       ↓                                               β”‚
β”‚  β‘£ Graph μ—”μ§„  ← DFS + confidence + sensitivity     β”‚
β”‚       ↓                                               β”‚
β”‚  β‘€ μΆ”λ‘  루프  ← retrieve β†’ expand β†’ verify          β”‚
β”‚       ↓                                               β”‚
β”‚  β‘₯ 좜λ ₯ ν•„ν„°  ← PII λ§ˆμŠ€ν‚Ή + role-based ν•„ν„°        β”‚
β”‚       ↓                                               β”‚
β”‚  [λ‹΅λ³€ + μΆ”λ‘  경둜]                                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

RBAC (4 roles):
  admin     λͺ¨λ“  sensitivity μ ‘κ·Ό, λͺ¨λ“  μ‘°μž‘
  manager   publicβ†’confidential, λŒ€λΆ€λΆ„
  employee  publicβ†’internal, 읽기+ν‘œμ€€
  external  public μ „μš©

ABAC (4 sensitivity):
  public          λͺ¨λ‘ μ ‘κ·Ό
  internal        employee+
  confidential    manager+
  secret          admin μ „μš©

Instruction Isolation:
  λͺ…λ Ήκ³Ό 데이터 뢄리
  31+ injection νŒ¨ν„΄ 감지 (.{0,15} flexible matching)

JWT 인증:
  HS256 μ„œλͺ…, 24μ‹œκ°„ 만료
  Rate Limiting: 30 req / 60s

Audit Log:
  SQLite, λͺ¨λ“  μš”μ²­/κ²°μ •/κ±°λΆ€ 기둝

βœ… 6. μ™„λ£Œλœ μž‘μ—… (Timeline)

Phase 1~7 (이전 μ™„λ£Œ)

βœ… 핡심 μ—”μ§„
   - Hybrid Search (Vector 60% + BM25 20% + keyword 20%)
   - Graph-RAG with Ontology (12 relation types)
   - DFS 탐색 (depth ≀ 4, confidence threshold)

βœ… λ³΄μ•ˆ λ ˆμ΄μ–΄
   - RBAC (4 roles)
   - ABAC 3-stage (4 sensitivity levels)
   - Instruction Isolation (31+ patterns)
   - JWT + Rate Limiting
   - SQLite audit log

βœ… μžκΈ°μ§„ν™” (Scaffold)
   - Patch Pipeline 4-Gate
   - 11-trait Character
   - Knowledge Tracker (8 λŠ₯λ ₯ + 6 도메인)
   - Feedback Engine (πŸ‘/πŸ‘Ž β†’ μ œμ•ˆ μžλ™ 생성)

βœ… λ©€ν‹°λͺ¨λ‹¬ + Web Search
   - LLaVA (이미지/μ˜μƒ)
   - Whisper (μ˜€λ””μ˜€)
   - Tavily + DuckDuckGo

STEP 4 β€” μžκΈ°μ§„ν™” κ°•ν™” (μ™„λ£Œ)

βœ… 4-A 사고과정 UI 3단계 (2.5초 간격) + jamesNotify ν† μŠ€νŠΈ
βœ… 4-B hardware_inspector.py LLM_CATALOG (10개)
       β†’ /admin/llm/{installed,recommend,pull,delete} API
       β†’ μ–΄λ“œλ―Ό LLM μΆ”μ²œ μΉ΄λ“œ + μžλ™ μ„€μΉ˜
βœ… 4-C feedback_engine.py λΆ€μ •ν”Όλ“œλ°± β†’ web_learn proposal
       β†’ κ±°λΆ€μ‚¬μœ  β†’ memory_store μž₯κΈ°κΈ°μ–΅ μ €μž₯
       β†’ executeWebLearnProposal()

단계 A β€” 정리 (μ™„λ£Œ)

βœ… A-1 루트 μ²­μ†Œ
       reports/, scripts/, scripts/legacy/ 폴더 생성
       ν…ŒμŠ€νŠΈκ²°κ³Ό .json 6개 격리
       patch_*.py 격리
       운영슀크립트 이동

βœ… A-2 λ³΄μ•ˆ/λ¬Έμ„œ
       .gitignore (260 bytes)
       .env.example (170 bytes)
       LICENSE MIT (673 bytes)
       tokenizer.py 쀑볡 제거 (utils/ 정식)
       security.py β†’ security_layer.py 톡합

βœ… A-3 5개 λ¬Έμ„œ μž‘μ„±
       README.md / SECURITY.md / ROADMAP.md
       CONTRIBUTING.md / CHANGELOG.md

STEP 5 β€” κΈ€λ‘œλ²Œν™” (μ™„λ£Œ)

βœ… 5-A UI μ™„μ „ μ˜μ–΄ν™”
       i18n.js: 286개 ν‚€ Γ— 2μ–Έμ–΄ (en/ko)
       κΈ°λ³Έ μ–Έμ–΄: μ˜μ–΄ (κΈ€λ‘œλ²Œ ν˜Έν™˜)
       μ–‘ μ–Έμ–΄ ν† κΈ€ (KO | EN λ™μ‹œ ν‘œμ‹œ)
       index.html: 28 data-i18n
       admin.html: 156 data-i18n
       chat.js / admin.js: t() 동적 λ²ˆμ—­
       
       Python 데이터 μ˜μ–΄ν™”:
       - character_profile.py (11 νŠΈλ ˆμž‡)
         Curiosity / Focus / Caution / Boldness / Analytical /
         Intuitive / Independent / Collaborative / Security /
         Creativity / Empathy
       - knowledge_tracker.py (8 λŠ₯λ ₯ + 6 도메인)
         Knowledge Retrieval / Relation Reasoning /
         Security Judgment / Conversation Understanding /
         Answer Accuracy / Image-Video Analysis /
         Self-Evolution / Agent Capability
         Security / Coding / Business / Science-AI / General / Personal
       - hardware_inspector.py (무기/μ—­ν• /랭크)
         Wooden Sword~Legendary Holy Sword
         Leather Shield~Immortal Shield
         Apprentice Staff~Divine Wand
         Small Pouch~Infinite Warehouse
         Trainee~Legendary Wizard

βœ… 5-B μ˜μ–΄ μ‹œλ“œ 데이터 5개
       wiki/entity/test/concept/graph_rag_en.md
       wiki/entity/test/concept/security_reasoning_en.md
       wiki/entity/test/concept/ollama_en.md
       wiki/entity/test/person/john_smith_en.md
       wiki/entity/test/org/james_research_lab_en.md

βœ… 5-C μ‹œμŠ€ν…œ ν”„λ‘¬ν”„νŠΈ 동적 μ–Έμ–΄ μ „ν™˜
       reasoning_engine.py:
         쿼리 μžλ™ 감지 (ν•œκ΅­μ–΄ β‰₯ 20% β†’ Korean)
         페λ₯΄μ†Œλ‚˜ μš°μ„ , μ—†μœΌλ©΄ μžλ™ 감지
         Korean / English / Bilingual μ§€μ‹œμ–΄
       chat.js:
         UI ν† κΈ€ β†’ session_language μžλ™ 동기화
         μ΄ˆκΈ°κ°’: English

βœ… 5-D README.ko.md μž‘μ„± (5,508 bytes)

βœ… 5-E 버그 μˆ˜μ •
       LLM μ»¨ν…μŠ€νŠΈ 초과 (ν•œκ΅­μ–΄ 1500자 = 4000토큰 초과) ν•΄κ²°
       β†’ snippet[:150] Γ— 3 + 짧은 μ§€μ‹œλ¬Έ = μ•½ 650자
       save_as_longterm μ˜ˆμ™Έ 격리 (try-except)
       웹검색 μΉ΄λ“œ 제거 (ν˜Όλž€ λ°©μ§€)
       requirements.txt 정리 (6개 νŒ¨ν‚€μ§€ μΆ”κ°€)

STEP 6 β€” GitHub 곡개 (μ™„λ£Œ)

βœ… v0.1.0-alpha 첫 곡개
       125 files / 32,257 lines
       9개 핡심 λ¬Έμ„œ
       μ˜μ–΄/ν•œκ΅­μ–΄ i18n
       μ‹œλ“œ 데이터 (μ˜μ–΄ 5 + ν•œκ΅­μ–΄ 7)

βœ… v0.1.1 패치 (λ³΄μ•ˆ/이식성)
       config.py: BASE_DIR μžλ™ 감지
       config.py: μ‚¬μš©μžλͺ… λ…ΈμΆœ 제거 (hyunn)
       config.py: 크둜슀 ν”Œλž«νΌ (Win/macOS/Linux)
       vector_store.py: LOCAL_MODEL_PATH μžλ™ 감지
       patch_abac_fields.py: fallback μ•ˆμ „ν™”
       seed_data.py / wiki_reset.py: fallback μ•ˆμ „ν™”
       v0.1.0-alpha νŽ˜μ΄μ§€μ— λ³΄μ•ˆ κ²½κ³  μΆ”κ°€

ν™˜κ²½λ³€μˆ˜ (μš”μ•½)

JAMES_API_KEY              API 인증 ν‚€ (ν•„μˆ˜)
JAMES_JWT_SECRET           JWT μ‹œκ·Έλ‹ˆμ²˜ (ν•„μˆ˜, 32자+)
TAVILY_API_KEY             μ›Ή 검색 (선택, 무료 1k/μ›”)
TESSERACT_PATH             Tesseract OCR (선택, μžλ™ 감지)
JAMES_POPPLER_PATH         Poppler (선택, μžλ™ 감지)
OLLAMA_PATH                Ollama (선택, PATH μ‚¬μš©)
JAMES_MODEL_PATH           μž„λ² λ”© λͺ¨λΈ (선택)
JAMES_LLM_MODEL            κΈ°λ³Έ LLM (default: gemma2:2b)
OLLAMA_API_URL             Ollama API endpoint
JAMES_MAX_UPLOAD_MB        μ—…λ‘œλ“œ ν•œκ³„ (default: 100)
JAMES_PROTECTED_FILES      보호 파일 λͺ©λ‘ (μ‰Όν‘œ ꡬ뢄)

πŸ› 7. 발견된 μ£Όμš” 버그 + ν•΄κ²° (μ°Έκ³ )

1. 민감 κ°’ λ§ˆμŠ€ν‚Ή λˆ„λ½
   β†’ ν‚€μ›Œλ“œ 라벨만 μΉ˜ν™˜, μˆ«μžκ°’ λ…ΈμΆœ
   β†’ κ°’ νŒ¨ν„΄ μ •κ·œμ‹ μΆ”κ°€

2. Instruction Isolation 경직성
   β†’ μ˜μ—­λœ μΈμ μ…˜ 감지 μ‹€νŒ¨ (μ—„κ²©ν•œ 인접성)
   β†’ .{0,15} flexible matching

3. RBAC 벑터 λˆ„μΆœ
   β†’ Vector 검색이 graph λ§ˆμŠ€ν‚Ή 우회
   β†’ wiki_person_names νŒŒλΌλ―Έν„°λ‘œ ν•΄κ²°

4. Windows 인코딩 좩돌
   β†’ CP949/UTF-8 좩돌 (config.py에 ν•œκ΅­μ–΄ μ‹œ λ°œμƒ)
   β†’ ν•œκ΅­μ–΄ 제거 + λͺ…μ‹œ 인코딩 fallback

5. LLM 0자 응닡 + 500 μ—λŸ¬ (μžκΈ°ν•™μŠ΅)
   β†’ ν•œκ΅­μ–΄ 1500자 = 4000토큰 β†’ num_ctx=2048 초과
   β†’ snippet μΆ•μ†Œ + body μ œμ™Έ + LLM 응닡 fallback
   β†’ save_as_longterm μ˜ˆμ™Έ 격리

6. 웹검색 "λ―Έμ„€μΉ˜" ν‘œμ‹œ
   β†’ tavily_key만 μ²΄ν¬ν•˜λ˜ 버그
   β†’ tavily_installed + tavily_key + !exhausted λͺ¨λ‘ 체크
   β†’ API에 _require_admin 제거 (api_key만으둜 μΆ©λΆ„)
   β†’ κ²°κ΅­ μΉ΄λ“œ 자체 제거 (ν˜Όλž€ λ°©μ§€)

7. 폴더 이름 λ³€κ²½ μ‹œ μ™ΈλΆ€ λͺ¨λΈ λ‹€μš΄λ‘œλ“œ
   β†’ vector_store.py LOCAL_MODEL_PATH μ ˆλŒ€κ²½λ‘œ
   β†’ BASE_DIR κΈ°μ€€ μžλ™ κ°μ§€λ‘œ μˆ˜μ •

πŸ›£οΈ 8. λ‹€μŒ μž‘μ—… + λ‘œλ“œλ§΅

STEP 7 β€” 싀데이터 검증 (λ‹€μŒ μ¦‰μ‹œ μž‘μ—…)

λͺ©ν‘œ: 30개 이상 μ‹€ entity둜 v0.2.0 μ€€λΉ„

μ„ΈλΆ€ μž‘μ—…:
  β–‘ μ‚¬μš©μž 본인 λ„λ©”μΈμ˜ μ‹€ λ¬Έμ„œ 30개+ μ—…λ‘œλ“œ
  β–‘ λ‹€μ–‘ν•œ entity νƒ€μž… (concept, person, org)
  β–‘ ν•œκ΅­μ–΄ + μ˜μ–΄ 데이터 ν˜Όν•©
  β–‘ μ‹€ μ‚¬μš© μ‹œλ‚˜λ¦¬μ˜€λ‘œ 쿼리 100회+ ν…ŒμŠ€νŠΈ
  β–‘ 발견된 ν•œκ³„μ /버그λ₯Ό GitHub Issues둜 등둝
  β–‘ Patch Pipeline μžκΈ°μ§„ν™” end-to-end 검증
  β–‘ μ„±λŠ₯ ν”„λ‘œνŒŒμΌλ§ (응닡 μ‹œκ°„, 정확도)

κΈ°κ°„: 1~2μ£Ό
μ‚°μΆœλ¬Ό:
  - v0.2.0 release notes 데이터
  - μ‹€ μ‚¬μš© 사둀 README μΆ”κ°€
  - μ„±λŠ₯ 벀치마크 수치

v0.2.0 β€” 싀데이터 검증 + 완성도 ν–₯상 (23κ°œμ›”)

ν…Œλ§ˆ: ν•©μ„± 데이터 β†’ μ‹€ 데이터, 약점 κ°•ν™”

μš°μ„ μˆœμœ„:
  - 30+ μ‹€ entity 검증
  - λ©€ν‹°λͺ¨λ‹¬ νŒŒμ΄ν”„λΌμΈ μ™„μ„±
    (LLaVA full integration, Whisper, PDF ν‘œ μΆ”μΆœ)
  - μžκΈ°μ§„ν™” end-to-end 증λͺ…
    (ν”Όλ“œλ°± β†’ μ œμ•ˆ β†’ 패치 β†’ 배포)
  - μ„±λŠ₯ μ΅œμ ν™” (p50/p99 응닡 μ‹œκ°„)
  - μž„λ² λ”© μΊμ‹œ κ°œμ„ 
  - νŠœν† λ¦¬μ–Ό λ¬Έμ„œ (3μ’…)
    1. μ»€μŠ€ν…€ 도메인 λ§Œλ“€κΈ°
    2. μ˜¨ν†¨λ‘œμ§€ ν™•μž₯
    3. μ•„ν‚€ν…μ²˜ 심측
  - λ™μ˜μƒ μ›Œν¬μŠ€λ£¨ (선택)

v0.3.0 β€” Multi-Agent + Graph DB (~6κ°œμ›”)

ν…Œλ§ˆ: 단일 μ‚¬μš©μž λ„˜μ–΄μ„œκΈ°, μ˜΅μ…˜ κ·Έλž˜ν”„ DB

μš°μ„ μˆœμœ„:
  - Optional Neo4j λ°±μ—”λ“œ
    (λ§ˆν¬λ‹€μš΄ wiki ↔ κ·Έλž˜ν”„ DB λ§ˆμ΄κ·Έλ ˆμ΄μ…˜, Cypher)
  - Multi-agent system
    (researcher, coder, security μ „λ¬Έ μ—μ΄μ „νŠΈ)
    (μ—μ΄μ „νŠΈ κ°„ 톡신, μž‘μ—… λΆ„ν•΄)
  - μžλ™ λ²€μΉ˜λ§ˆν‚Ή
  - API κ°œμ„ 
    (OpenAI ν˜Έν™˜ API, 슀트리밍, Webhook)

v1.0.0 β€” Production Hardening (~12κ°œμ›”)

ν…Œλ§ˆ: μ—”ν„°ν”„λΌμ΄μ¦ˆ μ€€λΉ„

μš°μ„ μˆœμœ„:
  - Multi-tenancy
    (ν…Œλ„ŒνŠΈλ³„ 데이터 격리, λͺ¨λΈ 선택, μΏΌν„°)
  - HTTPS κΈ°λ³Έ + Docker 배포 κ°€μ΄λ“œ + Helm Charts
  - μ»΄ν”ŒλΌμ΄μ–ΈμŠ€ μ€€λΉ„
    (GDPR 데이터 μ‚­μ œ, SOC 2 audit log, 데이터 residency)
  - κ³ κΈ‰ λ³΄μ•ˆ
    (μ—­ν• /μ—”λ“œν¬μΈνŠΈλ³„ rate limit, 이상 탐지, μ˜΅μ…˜ 2FA)
  - 운영 도ꡬ
    (λ°±μ—…/볡원 CLI, λ§ˆμ΄κ·Έλ ˆμ΄μ…˜, health check, Prometheus)

v1.0+ Speculative

- Federation (닀쀑 JAMES μΈμŠ€ν„΄μŠ€ μ—°κ²°)
- On-device fine-tuning (μ‚¬μš©μžλ³„ LoRA)
- Edge deployment (μ†Œν˜• λͺ¨λΈ)
- Plugin marketplace
- Visual graph editor (web UI)
- Voice interface (ASR + TTS)

🎯 9. λ‹€μŒ μ„Έμ…˜ μ‹œμž‘ μ‹œ ν•΄μ•Ό ν•  일

9-1. μ»¨ν…μŠ€νŠΈ 볡원

1. 이 μΈμˆ˜μΈκ³„μ„œ 읽기
2. README.md ν•œ 번 ν›‘κΈ°
3. CHANGELOG.md둜 v0.1.1 변경사항 확인
4. ROADMAP.md둜 v0.2.0 λͺ©ν‘œ 확인

9-2. μ¦‰μ‹œ μ‹œμž‘ν•  수 μžˆλŠ” μž‘μ—…

[Option A] STEP 7 싀데이터 검증 (κ°€μž₯ 큰 λ‹€μŒ 단계)
  β†’ μ‚¬μš©μžκ°€ μ‹€μ œ λ¬Έμ„œ 30개+ μ€€λΉ„ν•˜λ©΄ μ‹œμž‘
  β†’ μ—…λ‘œλ“œ β†’ 검색 β†’ μΆ”λ‘  정확도 검증
  β†’ 버그 발견 β†’ Issues 등둝 β†’ μ¦‰μ‹œ 패치

[Option B] STEP 8 μ‚¬μš©μž ν”Όλ“œλ°± 채널 보강
  β†’ Issue ν…œν”Œλ¦Ώ μΆ”κ°€
  β†’ 짧은 데λͺ¨ GIF λ§Œλ“€κΈ°
  β†’ FAQ λ¬Έμ„œ μž‘μ„±
  β†’ README 상단에 데λͺ¨ μ˜μƒ μž„λ² λ“œ

[Option C] μž‘μ€ κ°œμ„  μž‘μ—…
  β†’ 발견된 버그 μˆ˜μ •
  β†’ νŠΉμ • λͺ¨λ“ˆ λ¦¬νŒ©ν† λ§
  β†’ μƒˆ LLM provider μΆ”κ°€
  β†’ i18n μƒˆ μ–Έμ–΄ μΆ”κ°€ (일본어, 쀑ꡭ어 λ“±)

[Option D] λ§ˆμΌ€νŒ…/ν™•μ‚° (선택)
  β†’ Hacker News / Reddit r/LocalLLaMA 곡유
  β†’ Twitter/X κ²Œμ‹œ
  β†’ Dev.to λ˜λŠ” Medium λΈ”λ‘œκ·Έ κΈ€

9-3. μ£Όμ˜μ‚¬ν•­

⚠️ μ ˆλŒ€ μžŠμ§€ 말 것:
  - JWT_SECRET을 .env에 μ„€μ •ν•΄μ•Ό 함 (μ—†μœΌλ©΄ dev μ‹œν¬λ¦Ώ κ²½κ³ )
  - 폴더 이름은 자유둭게 λ³€κ²½ κ°€λŠ₯ (v0.1.1 패치 ν›„)
  - λͺ¨λ“  μ ˆλŒ€κ²½λ‘œ/μ‚¬μš©μžλͺ… λ…ΈμΆœ 검증 ν•„μˆ˜ (컀밋 μ „)
  - ν•œκ΅­μ–΄ μ»¨ν…μŠ€νŠΈλŠ” 토큰 2~3λ°° β†’ num_ctx 주의

⚠️ μ½”λ“œ μˆ˜μ • μ‹œ:
  - 항상 λ³΄μ•ˆ 영ν–₯ κ²€ν† 
  - fallback 항상 κ΅¬ν˜„
  - λͺ…μ‹œμ  νƒ€μž…/이름
  - 변경사항 CHANGELOG.md에 기둝

9-4. μž‘μ—… μŠ€νƒ€μΌ (μ‚¬μš©μž μ„ ν˜Έ)

- λͺ…ν™•ν•œ 단계별 μ§„ν–‰ (ν•œ λ²ˆμ— ν•˜λ‚˜μ”©)
- 각 단계 κ²°κ³Ό 확인 ν›„ λ‹€μŒ μ§„ν–‰
- 문제 λ°œμƒ μ‹œ μ¦‰μ‹œ 진단 λͺ…λ Ή 제곡
- PowerShell λͺ…λ Ήμ–΄ 직접 제곡 (μ‚¬μš©μž ν™˜κ²½)
- ν•œκ΅­μ–΄λ‘œ μ†Œν†΅ (μ½”λ“œ 주석은 μ˜μ–΄ OK)
- λ³΄μ•ˆ/이식성 μš°μ„ 

πŸ“ 10. 핡심 정보 μš”μ•½ μΉ΄λ“œ

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  PROJECT JAMES β€” Quick Reference                     β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                      β”‚
β”‚  GitHub:    Hashevolution/James-RAG-Evol            β”‚
β”‚  Version:   v0.1.1 (Pre-release)                    β”‚
β”‚  License:   MIT                                      β”‚
β”‚                                                      β”‚
β”‚  Local:     C:\Project\James-RAG-Evol-v010\         β”‚
β”‚  Server:    python server_llmwiki.py β†’ :8000        β”‚
β”‚  Admin:     http://localhost:8000/admin             β”‚
β”‚                                                      β”‚
β”‚  ν˜„μž¬ μƒνƒœ:                                          β”‚
β”‚    곡개됨, λ³΄μ•ˆ 깨끗함, μž‘λ™ν•¨                       β”‚
β”‚    싀데이터 검증 λŒ€κΈ° 쀑                             β”‚
β”‚                                                      β”‚
β”‚  λ‹€μŒ 단계:                                          β”‚
β”‚    STEP 7 β€” 싀데이터 30개+ νˆ¬μž…                      β”‚
β”‚                                                      β”‚
β”‚  핡심 μ² ν•™:                                          β”‚
β”‚    λ³΄μ•ˆμ΄ 보μž₯된 지식 μΆ”λ‘  μ—”μ§„                      β”‚
β”‚                                                      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🀝 11. λ‹€μŒ Claudeμ—κ²Œ

이 ν”„λ‘œμ νŠΈλŠ” λ‹¨μˆœν•œ RAG μ‹œμŠ€ν…œμ΄ μ•„λ‹™λ‹ˆλ‹€.
λ³΄μ•ˆμ„ κ°€μž₯ μ€‘μš”ν•œ 섀계 μ›μΉ™μœΌλ‘œ μ‚Όκ³ ,
Graph-RAG둜 hallucination을 쀄이며,
explainable output을 μΆ”κ΅¬ν•©λ‹ˆλ‹€.

μ‚¬μš©μžλŠ”:
  - λ³΄μ•ˆκ³Ό 정확성을 맀우 μ€‘μš”ν•˜κ²Œ λ΄…λ‹ˆλ‹€
  - λͺ…ν™•ν•œ 단계별 진행을 μ„ ν˜Έν•©λ‹ˆλ‹€
  - μ‹€νŒ¨ν•  κ°€λŠ₯성을 항상 κ³ λ €ν•©λ‹ˆλ‹€
  - ν•œκ΅­μ–΄λ‘œ μ†Œν†΅ν•˜μ§€λ§Œ, μ½”λ“œλŠ” μ˜μ–΄/κΈ€λ‘œλ²Œ κΈ°μ€€μž…λ‹ˆλ‹€

μž‘μ—… μ‹œ 항상:
  1. λ³΄μ•ˆ 영ν–₯ λ¨Όμ € κ²€ν† 
  2. fallback κ΅¬ν˜„
  3. μ ˆλŒ€κ²½λ‘œ/ν•˜λ“œμ½”λ”© νšŒν”Ό
  4. 변경사항 λ¬Έμ„œν™”
  5. μ‚¬μš©μž ν™˜κ²½ (Windows + PowerShell) κ³ λ €
  6. λ‹¨κ³„λ³„λ‘œ μ§„ν–‰, 각 단계 확인 ν›„ λ‹€μŒ

μˆ˜κ³ ν•˜μ„Έμš”. 쒋은 ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.

λ¬Έμ„œ 끝

μž‘μ„±: v0.1.1 릴리즈 직후 λ‹€μŒ μ„Έμ…˜μ—μ„œ 이 λ¬Έμ„œλ₯Ό 첫 λ©”μ‹œμ§€μ— μ²¨λΆ€ν•˜λ©΄ μ¦‰μ‹œ μ»¨ν…μŠ€νŠΈ 볡원 κ°€λŠ₯ν•©λ‹ˆλ‹€.