Skip to content

SpanManX/private-RAG

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

77 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PrivRAG - ็งไบบๆ–‡ๆกฃๅ‘้‡็Ÿฅ่ฏ†ๅบ“

License Platform Electron

๐Ÿ”’ ็บฏๆœฌๅœฐ่ฟ่กŒ็š„็งไบบ็Ÿฅ่ฏ†ๅบ“ | ๐Ÿ“„ ๆ”ฏๆŒ PDF/Word/Excel/Markdown/TXT | ๐Ÿ’ฌ ไธŽๆ–‡ๆกฃๅฏน่ฏ

ไธไธŠไผ ใ€ไธๅค–ไผ  โ€” ไฝ ็š„ๆ•ฐๆฎ๏ผŒๅชๅœจไฝ ็š„็”ต่„‘ไธŠใ€‚


ๅŠŸ่ƒฝ็‰นๆ€ง

ๆ ธๅฟƒ่ƒฝๅŠ›

  • ๐Ÿ“„ ๅคšๆ ผๅผๆ”ฏๆŒ โ€” PDFใ€Wordใ€Excelใ€Markdownใ€TXT ๆ–‡ๆกฃๅฏผๅ…ฅ๏ผˆExcel ไฟ็•™่กจๅคด-่กŒๅ…ณ่”๏ผ‰
  • ๐Ÿ’ฌ ๆ™บ่ƒฝ้—ฎ็ญ” โ€” ๅŸบไบŽๅ‘้‡ๆฃ€็ดข็š„ RAG ๅฏน่ฏ๏ผŒ้™„ๅธฆๅ‚่€ƒๆฅๆบ
  • ๐Ÿ”’ ๅฎŒๅ…จๆœฌๅœฐ โ€” ๆ‰€ๆœ‰ๅค„็†ๅœจๆœฌๅœฐๅฎŒๆˆ๏ผŒๆ— ้œ€่”็ฝ‘
  • โšก ไธ€้”ฎๅฏๅŠจ โ€” ๆ— ้œ€ๅคๆ‚้…็ฝฎ๏ผŒ่‡ชๅธฆๆจกๅž‹็ฎก็†
  • ๐ŸŽจ ไผ˜้›…็•Œ้ข โ€” Electron + Vue 3 ๆ‰“้€ ็š„ๅŽŸ็”ŸๆกŒ้ขไฝ“้ชŒ
  • ๐Ÿ–ฅ๏ธ ๆตๅผ่พ“ๅ‡บ โ€” ๆ‰“ๅญ—ๆœบๆ•ˆๆžœ๏ผŒๅณๆ—ถๅ“ๅบ”
  • ๐Ÿ“Š ๅผ•็”จๆบฏๆบ โ€” ๅ›ž็ญ”้™„ๅธฆๆ–‡ๆกฃๅ‡บๅค„๏ผŒๆ–นไพฟๆ ธๅฎž

ๅŒๆจกๅผๆ”ฏๆŒ

ๆจกๅผ ไผ˜ๅŠฟ ้€‚็”จๅœบๆ™ฏ
ๆœฌๅœฐๆจกๅผ ๅฎŒๅ…จ็ฆป็บฟ๏ผŒไฟๆŠค้š็ง๏ผŒ่Š‚็œ API ่ดน็”จ ๅค„็†ๆ•ๆ„Ÿๆ–‡ๆกฃใ€้ข‘็น้—ฎ็ญ”ใ€ๆ— ็ฝ‘็ปœ็Žฏๅขƒ
ๅœจ็บฟๆจกๅผ ็ญ”ๆกˆ่ดจ้‡ๆ›ด้ซ˜๏ผŒๅ“ๅบ”ๆ›ดๅฟซ๏ผŒๆ— ้œ€ๆœฌๅœฐ็ฎ—ๅŠ› ่ฟฝๆฑ‚ๆœ€ไฝณๆ•ˆๆžœใ€ๆœ‰็จณๅฎš็ฝ‘็ปœใ€ๅถๅ‘ไฝฟ็”จ

ๆœฌๅœฐๆจกๅผไฝฟ็”จ Qwen3-4B GGUF ้‡ๅŒ–ๆจกๅž‹๏ผˆ2.5GB๏ผ‰๏ผŒ4GB ๆ˜พๅญ˜ๅณๅฏ่ฟ่กŒใ€‚ ๅœจ็บฟๆจกๅผๆ”ฏๆŒ OpenAI-compatible API๏ผŒๅฏๆŽฅๅ…ฅ GPT-4oใ€Claude ็ญ‰ๆจกๅž‹ใ€‚

ๆŠ€ๆœฏไบฎ็‚น

  • RAG ๆฃ€็ดขๅขžๅผบ็”Ÿๆˆ โ€” ๅฌๅ›ž + ็”ŸๆˆๅŒ้˜ถๆฎต
  • ๅ‘้‡ๆ•ฐๆฎๅบ“ LanceDB โ€” ่ฝป้‡ใ€ๅ•ๆ–‡ไปถใ€ๆ— ไพ่ต–
  • LLM llama.cpp โ€” Qwen3-4B GGUF ้‡ๅŒ–ๆจกๅž‹
  • Embedding ๅ‘้‡ๅŒ– โ€” bge-small-zh-v1.5 ไธญๆ–‡ๆœฌๅœฐๆจกๅž‹
  • GPU ๅŠ ้€Ÿ โ€” ่‡ชๅŠจๆฃ€ๆต‹ NVIDIA CUDA๏ผŒๆ”ฏๆŒ GPU ๆŽจ็†๏ผˆๅฆ‚ๆ—  GPU ๅˆ™ไฝฟ็”จ CPU๏ผ‰

็•Œ้ข้ข„่งˆ

1.png 2.png


ๅฟซ้€Ÿๅผ€ๅง‹

ไธ‹่ฝฝๅฎ‰่ฃ…ๅŒ…๏ผˆๆŽจ่๏ผ‰

ๅ‰ๅพ€ Releases ไธ‹่ฝฝๆœ€ๆ–ฐ็‰ˆๆœฌใ€‚

ไปŽๆบ็ ่ฟ่กŒ

# ๅ…‹้š†้กน็›ฎ
git clone https://github.com/SpanManX/private-RAG.git
cd private-RAG

# ๅฎ‰่ฃ…ไพ่ต–
npm install

# ๆž„ๅปบ้กน็›ฎ๏ผˆๅˆๆฌกๅฟ…้กปๅ…ˆ่ฟ่กŒ๏ผ‰
npm run build

# ๅผ€ๅ‘ๆจกๅผ
npm run dev

# ๆž„ๅปบ Windows ๅฎ‰่ฃ…ๅŒ…
npm run build:win

็Žฏๅขƒ่ฆๆฑ‚

้กน็›ฎ ๆœ€ไฝŽ่ฆๆฑ‚ ๆŽจ่้…็ฝฎ
ๆ“ไฝœ็ณป็ปŸ Windows 10 (64ไฝ) Windows 11
ๅ†…ๅญ˜ 4 GB 8 GB+
ๆ˜พๅญ˜ - 4 GB+ (GPU ๆŽจ็†)
็ฃ็›˜ 5 GB ๅฏ็”จ็ฉบ้—ด 10 GB+

ๅทฅไฝœๅŽŸ็†

ๆ–‡ๆกฃๅฏผๅ…ฅๆต็จ‹

๐Ÿ“„ PDF/DOCX/XLSX/MD/TXT
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๆ–‡ๆกฃ่งฃๆž          โ”‚  ๆๅ–็บฏๆ–‡ๆœฌๅ†…ๅฎน
โ”‚  DocumentProcessorโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๆ–‡ๆœฌๅˆ†ๅ—          โ”‚  512 ๅญ—็ฌฆ/chunk
โ”‚  Chunking        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Embedding ๅ‘้‡ๅŒ–  โ”‚  bge-small-zh-v1.5 (384็ปด)
โ”‚  ๆœฌๅœฐ llama-serverโ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  LanceDB ๅญ˜ๅ‚จ     โ”‚  ๅ‘้‡ๆ•ฐๆฎๅบ“
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆŸฅ่ฏขๆต็จ‹๏ผˆๆœฌๅœฐๆจกๅผ๏ผ‰

็”จๆˆทๆ้—ฎ๏ผš"่ฟ™ไปฝๅˆๅŒ็š„ๅ…ณ้”ฎๆกๆฌพๆœ‰ๅ“ชไบ›๏ผŸ"
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ้—ฎ้ข˜ๅ‘้‡ๅŒ–        โ”‚  bge-small-zh-v1.5
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๅ‘้‡็›ธไผผๅบฆๆฃ€็ดข    โ”‚  Top-K ๆœ€็›ธๅ…ณ chunk
โ”‚  LanceDB        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  LLM ็”Ÿๆˆๅ›ž็ญ”     โ”‚  Qwen3-4B GGUF
โ”‚  ๆ‹ผๆŽฅไธŠไธ‹ๆ–‡       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
    ๐Ÿ’ฌ ๅ›ž็ญ” + ๐Ÿ“„ ๅผ•็”จๆฅๆบ

ๆŸฅ่ฏขๆต็จ‹๏ผˆๅœจ็บฟๆจกๅผ๏ผ‰

็”จๆˆทๆ้—ฎ๏ผš"่ฟ™ไปฝๅˆๅŒ็š„ๅ…ณ้”ฎๆกๆฌพๆœ‰ๅ“ชไบ›๏ผŸ"
        โ”‚
        โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ้—ฎ้ข˜ๅ‘้‡ๅŒ–        โ”‚  bge-small-zh-v1.5
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๅ‘้‡็›ธไผผๅบฆๆฃ€็ดข    โ”‚  Top-K ๆœ€็›ธๅ…ณ chunk
โ”‚  LanceDB        โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๆž„ๅปบ RAG Prompt  โ”‚  ๆ‹ผๆŽฅไธŠไธ‹ๆ–‡
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  ๅœจ็บฟ API ็”Ÿๆˆ    โ”‚  GPT-4o / Claude ็ญ‰
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚
         โ–ผ
    ๐Ÿ’ฌ ๅ›ž็ญ” + ๐Ÿ“„ ๅผ•็”จๆฅๆบ

ๆŠ€ๆœฏๆ ˆ

ๅฑ‚็บง ๆŠ€ๆœฏ ่ฏดๆ˜Ž
ๆกŒ้ขๆก†ๆžถ Electron 33 ่ทจๅนณๅฐๆกŒ้ขๅบ”็”จ
ๅ‰็ซฏๆก†ๆžถ Vue 3 + TypeScript ็ป„ๅˆๅผ API
ๆž„ๅปบๅทฅๅ…ท electron-vite ้ซ˜้€Ÿๅผ€ๅ‘ไฝ“้ชŒ
็Šถๆ€็ฎก็† Pinia ่ฝป้‡ๅ“ๅบ”ๅผ
ๆœฌๅœฐ LLM llama.cpp (llama-server) Qwen3-4B-Q5_K_M GGUF
Embedding bge-small-zh-v1.5-gguf 384 ็ปดๅ‘้‡
ๅ‘้‡ๆ•ฐๆฎๅบ“ LanceDB ๅ•ๆ–‡ไปถใ€ๅตŒๅ…ฅๅž‹
ๆ–‡ๆกฃ่งฃๆž pdf-parse / mammoth / xlsx PDF/Word/Excel ๆ”ฏๆŒ

้กน็›ฎ็ป“ๆž„

โ”œโ”€โ”€ resources/                      # ๆ‰“ๅŒ…่ต„ๆบ๏ผˆdev ๆจกๅผไธ‹ๅœจ้กน็›ฎๆ น็›ฎๅฝ•๏ผ‰
โ”‚   โ”œโ”€โ”€ llama-server/               # llama-server ๅฏๆ‰ง่กŒๆ–‡ไปถ
โ”‚   โ””โ”€โ”€ bge-small-zh-v1.5-gguf/     # Embedding ๆจกๅž‹็›ฎๅฝ•
โ”‚
src/
โ”œโ”€โ”€ main/                           # Electron ไธป่ฟ›็จ‹
โ”‚   โ”œโ”€โ”€ index.ts                    # ๅ…ฅๅฃใ€็ช—ๅฃๅˆ›ๅปบใ€IPC ๆณจๅ†Œ
โ”‚   โ”œโ”€โ”€ serverManager.ts            # ๅฏน่ฏๆœๅŠก็ฎก็†ๅ™จ (llama-server 8080)
โ”‚   โ”œโ”€โ”€ embeddingServerManager.ts   # ๅ‘้‡ๆœๅŠก็ฎก็†ๅ™จ (llama-server 8081)
โ”‚   โ”œโ”€โ”€ documentProcessor.ts         # ๆ–‡ๆกฃ่งฃๆž (PDF/DOCX/MD/TXT)
โ”‚   โ”œโ”€โ”€ excelProcessor.ts            # Excel ่งฃๆž (xlsx/xls)
โ”‚   โ”œโ”€โ”€ indexManager.ts             # LanceDB ็ดขๅผ•็ฎก็†
โ”‚   โ”œโ”€โ”€ ragEngine.ts                # RAG ็ผ–ๆŽ’ๅผ•ๆ“Ž
โ”‚   โ”œโ”€โ”€ logger.ts                   # ๆ—ฅๅฟ—ๅทฅๅ…ท
โ”‚   โ”œโ”€โ”€ store.ts                    # electron-store ๆŒไน…ๅŒ–้…็ฝฎ
โ”‚   โ”œโ”€โ”€ langchain/
โ”‚   โ”‚   โ””โ”€โ”€ embeddings.ts           # LangChain Embeddings ๅฐ่ฃ…
โ”‚   โ””โ”€โ”€ utils/
โ”‚       โ”œโ”€โ”€ llamaServerUtils.ts     # llama-server ่ทฏๅพ„ๆŸฅๆ‰พ
โ”‚       โ”œโ”€โ”€ nvidiaUtil.ts           # CUDA/GPU ๆฃ€ๆต‹
โ”‚       โ””โ”€โ”€ serverUtils.ts         # ๆœๅŠกๅทฅๅ…ท (waitForServer)
โ”œโ”€โ”€ preload/
โ”‚   โ””โ”€โ”€ index.ts                    # ไธŠไธ‹ๆ–‡ๆกฅๆŽฅ (contextBridge)
โ””โ”€โ”€ renderer/                       # Vue 3 ๅ‰็ซฏ
    โ””โ”€โ”€ src/
        โ”œโ”€โ”€ main.ts                 # ๅ‰็ซฏๅ…ฅๅฃ
        โ”œโ”€โ”€ App.vue                 # ๆ น็ป„ไปถ
        โ”œโ”€โ”€ router.ts               # Vue Router ่ทฏ็”ฑ
        โ”œโ”€โ”€ components/
        โ”‚   โ”œโ”€โ”€ Sidebar.vue         # ไพง่พนๆ  (ๆœๅŠก็Šถๆ€ๅก็‰‡)
        โ”‚   โ”œโ”€โ”€ ChatArea.vue         # ่ŠๅคฉๅŒบๅŸŸ
        โ”‚   โ”œโ”€โ”€ MessageBubble.vue    # ๆถˆๆฏๆฐ”ๆณก
        โ”‚   โ”œโ”€โ”€ DocList.vue          # ๆ–‡ๆกฃๅˆ—่กจ
        โ”‚   โ”œโ”€โ”€ FileUploader.vue     # ๆ–‡ไปถไธŠไผ 
        โ”‚   โ””โ”€โ”€ GlobalError.vue      # ๅ…จๅฑ€้”™่ฏฏๆ็คบ
        โ”œโ”€โ”€ views/
        โ”‚   โ”œโ”€โ”€ ChatView.vue         # ๅฏน่ฏ้กต้ข
        โ”‚   โ””โ”€โ”€ SettingsView.vue     # ่ฎพ็ฝฎ้กต้ข
        โ””โ”€โ”€ stores/
            โ”œโ”€โ”€ chatStore.ts        # ่Šๅคฉ็Šถๆ€ (SSE ๆตๅผ่ฏทๆฑ‚)
            โ”œโ”€โ”€ documentStore.ts    # ๆ–‡ๆกฃ็Šถๆ€
            โ””โ”€โ”€ globalErrorStore.ts # ๅ…จๅฑ€้”™่ฏฏๆ็คบ

้…็ฝฎ่ฏดๆ˜Ž

ๆจกๅž‹ๆ–‡ไปถ้ป˜่ฎคๅญ˜ๆ”พๅœจ %USERPROFILE%\Documents\rag-models ็›ฎๅฝ•๏ผŒ้ฆ–ๆฌกๅฏๅŠจไผš่‡ชๅŠจๆ็คบไธ‹่ฝฝ๏ผˆไธๅฏไฝฟ็”จไธญๆ–‡็›ฎๅฝ•๏ผ‰ใ€‚

ๅฆ‚้œ€ๆ‰‹ๅŠจ้…็ฝฎๆจกๅž‹่ทฏๅพ„ๆˆ–ๅœจๆœฌๅœฐ/ๅœจ็บฟๆจกๅผ้—ดๅˆ‡ๆข๏ผŒๅฏๅœจ่ฎพ็ฝฎ้กต้ขไฟฎๆ”นใ€‚


ๆ—ฅๅฟ—ๆ–‡ไปถ

ๆ—ฅๅฟ—ๆ–‡ไปถไฝไบŽ็”จๆˆทๆ•ฐๆฎ็›ฎๅฝ•ไธ‹๏ผš

็Žฏๅขƒ ๆ—ฅๅฟ—่ทฏๅพ„
Windows %APPDATA%\PrivRAG\logs\main.log

License

MIT License - ๆฐธไน…ๅ…่ดน๏ผŒๅฏ่‡ช็”ฑไฝฟ็”จใ€ไฟฎๆ”นใ€ๅˆ†ๅ‘ใ€‚


ๅฆ‚ๆžœๅฏนไฝ ๆœ‰ๅธฎๅŠฉ๏ผŒๆฌข่ฟŽ โญ Star

About

๐Ÿ”’ ็บฏๆœฌๅœฐ็งไบบ็Ÿฅ่ฏ†ๅบ“ | ๐Ÿ“„ PDF/Word/Excel/Markdown/TXT | ๐Ÿ’ฌ RAG ๅฏน่ฏ | ๆ•ฐๆฎๆฐธไธๅค–ไผ  | Electron + Vue 3 + LanceDB

Resources

Stars

19 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages