# PaperReader **Repository Path**: os-hubu/PaperReader ## Basic Information - **Project Name**: PaperReader - **Description**: No description available - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-10 - **Last Updated**: 2026-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ๐Ÿ“š ่ฎบๆ–‡้˜…่ฏปๅคšๆ™บ่ƒฝไฝ“็ณป็ปŸ ๅŸบไบŽ LangChain + LangGraph ๆž„ๅปบ็š„ๆ™บ่ƒฝ่ฎบๆ–‡ๅˆ†ๆžไธŽ้—ฎ็ญ”็ณป็ปŸ๏ผŒ้…ๅค‡็ŽฐไปฃๅŒ– Vue 3 ๅ‰็ซฏ็•Œ้ขใ€‚ ## โœจ ๅŠŸ่ƒฝ็‰น็‚น - ๐Ÿ” **ๆ–‡ๆกฃ่งฃๆž**: ๆ”ฏๆŒ PDF ๅ’Œ Word (docx/doc) ๆ ผๅผ็š„่ฎบๆ–‡ไธŠไผ  - ๐Ÿ“Š **ๆ™บ่ƒฝๅˆ†ๆž**: ่‡ชๅŠจ็”Ÿๆˆ็ป“ๆž„ๅŒ–็š„่ฎบๆ–‡ๅˆ†ๆžๆŠฅๅ‘Š - ๐Ÿ’ฌ **ๆ™บ่ƒฝ้—ฎ็ญ”**: ๅŸบไบŽ RAG ็š„่ฎบๆ–‡ๅฏน่ฏ้—ฎ็ญ”็ณป็ปŸ - ๐Ÿค– **ๅคšๆ™บ่ƒฝไฝ“ๆžถๆž„**: ไฝฟ็”จ LangGraph ๅ่ฐƒๅคšไธชไธ“ไธš Agent - ๐ŸŽจ **็ŽฐไปฃๅŒ–็•Œ้ข**: Vue 3 + Vite ๆž„ๅปบ็š„็ฒพ็พŽๅ‰็ซฏ ## ๐Ÿ—๏ธ ็ณป็ปŸๆžถๆž„ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Vue 3 ๅ‰็ซฏ็•Œ้ข โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ FastAPI ๅŽ็ซฏ API โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ๅ่ฐƒ Agent (Coordinator) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ่งฃๆžAgent โ”‚ ๆ‘˜่ฆAgent โ”‚ ้—ฎ็ญ”Agent โ”‚ ... โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ ๆœๅŠกๅฑ‚ (LLM / ๅ‘้‡ๅญ˜ๅ‚จ / ๆ–‡ๆกฃ่งฃๆž) โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ DeepSeek API โ”‚ ChromaDB โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๐Ÿ“ฆ ๅฎ‰่ฃ… ### 1. ๅฎ‰่ฃ…ๅŽ็ซฏไพ่ต– ```bash cd paper_reader # ๅˆ›ๅปบ่™šๆ‹Ÿ็Žฏๅขƒ๏ผˆๆŽจ่๏ผ‰ python -m venv venv # ๆฟ€ๆดป่™šๆ‹Ÿ็Žฏๅขƒ # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate # ๅฎ‰่ฃ…ไพ่ต– pip install -r requirements.txt ``` ### 2. ๅฎ‰่ฃ…ๅ‰็ซฏไพ่ต– ```bash cd frontend npm install ``` ### 3. ้…็ฝฎ API Key ๅˆ›ๅปบ `.env` ๆ–‡ไปถๅนถๅกซๅ…ฅๆ‚จ็š„ DeepSeek API Key๏ผˆๆŽจ่ไปŽ็คบไพ‹ๆ–‡ไปถๅคๅˆถ๏ผ‰: ```bash copy env.example .env ``` ```env DEEPSEEK_API_KEY=your-deepseek-api-key-here ``` ## ๐Ÿš€ ๅฏๅŠจๅบ”็”จ ### ๆ–นๅผไธ€๏ผšไธ€้”ฎๅฏๅŠจ๏ผˆๆŽจ่๏ผ‰ ๅŒๅ‡ป่ฟ่กŒ `start.bat`๏ผŒๅฐ†่‡ชๅŠจๅฏๅŠจๅŽ็ซฏๅ’Œๅ‰็ซฏๆœๅŠกๅ™จใ€‚ ### ๆ–นๅผไบŒ๏ผšๅˆ†ๅˆซๅฏๅŠจ **ๅฏๅŠจๅŽ็ซฏ API๏ผš** ```bash python -m uvicorn api:app --host 0.0.0.0 --port 8001 --reload ``` **ๅฏๅŠจๅ‰็ซฏๅผ€ๅ‘ๆœๅŠกๅ™จ๏ผš** ```bash cd frontend npm run dev ``` ### ๆ–นๅผไธ‰๏ผšไฝฟ็”จๅŽŸ Gradio ็•Œ้ข ```bash python app.py ``` ## ๐ŸŒ ่ฎฟ้—ฎๅœฐๅ€ | ๆœๅŠก | ๅœฐๅ€ | |------|------| | ๅ‰็ซฏ็•Œ้ข | http://localhost:3000 | | API ๆœๅŠก | http://localhost:8001 | | API ๆ–‡ๆกฃ | http://localhost:8001/docs | | Gradio ็•Œ้ข | http://localhost:7860 | ## ๐Ÿ“– ไฝฟ็”จ่ฏดๆ˜Ž ### 1๏ธโƒฃ ไธŠไผ ่ฎบๆ–‡ - ๅœจ"ๅˆ†ๆž"้กต้ขไธŠไผ  PDF ๆˆ– Word ๆ ผๅผ็š„่ฎบๆ–‡ - ๆ”ฏๆŒๆ‹–ๆ‹ฝไธŠไผ  - ็‚นๅ‡ป"ๅผ€ๅง‹ๅˆ†ๆž"ๆŒ‰้’ฎ ### 2๏ธโƒฃ ๆŸฅ็œ‹ๅˆ†ๆž็ป“ๆžœ - **็ป“ๆž„ๅˆ†ๆž**: ่ฎบๆ–‡็š„ๅŸบๆœฌ็ป“ๆž„ไฟกๆฏ - **่ฏฆ็ป†ๆ‘˜่ฆ**: ๅŒ…ๅซไปฅไธ‹ๅ†…ๅฎน็š„ๅฎŒๆ•ดๅˆ†ๆžๆŠฅๅ‘Š: - ่ฎบๆ–‡ๆฆ‚่ฟฐ - ็ ”็ฉถ่ƒŒๆ™ฏไธŽๅŠจๆœบ - ็ ”็ฉถๆ–นๆณ• - ๅฎž้ชŒไธŽ็ป“ๆžœ - ๅˆ›ๆ–ฐ็‚นไธŽ่ดก็Œฎ - ๅฑ€้™ๆ€งไธŽไธ่ถณ - ๆœชๆฅๅทฅไฝœๅฑ•ๆœ› ### 3๏ธโƒฃ ๆ™บ่ƒฝ้—ฎ็ญ” - ๅˆ‡ๆขๅˆฐ"้—ฎ็ญ”"้กต้ข - ่พ“ๅ…ฅไปปไฝ•ๅ…ณไบŽ่ฎบๆ–‡็š„้—ฎ้ข˜ - ็ณป็ปŸๅฐ†ๅŸบไบŽ่ฎบๆ–‡ๅ†…ๅฎน็ป™ๅ‡บ็ฒพๅ‡†ๅ›ž็ญ” - ๆ”ฏๆŒๆตๅผๅ“ๅบ” ## ๐Ÿ”ง ้…็ฝฎ่ฏดๆ˜Ž ไธป่ฆ้…็ฝฎ้กนๅœจ `config.py` ๆ–‡ไปถไธญ: | ้…็ฝฎ้กน | ่ฏดๆ˜Ž | ้ป˜่ฎคๅ€ผ | |--------|------|--------| | `DEEPSEEK_MODEL` | ไฝฟ็”จ็š„ๆจกๅž‹ | deepseek-chat | | `LLM_TEMPERATURE` | ็”Ÿๆˆๆธฉๅบฆ | 0.7 | | `CHUNK_SIZE` | ๆ–‡ๆœฌๅˆ†ๅ—ๅคงๅฐ | 500 | | `TOP_K_RESULTS` | ๆฃ€็ดข่ฟ”ๅ›žๆ•ฐ้‡ | 5 | | `MAX_FILE_SIZE_MB` | ๆœ€ๅคงๆ–‡ไปถๅคงๅฐ | 50MB | ## ๐Ÿ“ ้กน็›ฎ็ป“ๆž„ ``` paper_reader/ โ”œโ”€โ”€ api.py # FastAPI ๅŽ็ซฏ API โ”œโ”€โ”€ app.py # Gradio ไธปๅบ”็”จๅ…ฅๅฃ๏ผˆๅค‡็”จ๏ผ‰ โ”œโ”€โ”€ config.py # ้…็ฝฎๆ–‡ไปถ โ”œโ”€โ”€ requirements.txt # Python ไพ่ต–ๅŒ… โ”œโ”€โ”€ start.bat # ไธ€้”ฎๅฏๅŠจ่„šๆœฌ๏ผˆWindows๏ผ‰ โ”‚ โ”œโ”€โ”€ frontend/ # Vue 3 ๅ‰็ซฏ โ”‚ โ”œโ”€โ”€ package.json โ”‚ โ”œโ”€โ”€ vite.config.js โ”‚ โ”œโ”€โ”€ tailwind.config.js โ”‚ โ”œโ”€โ”€ index.html โ”‚ โ””โ”€โ”€ src/ โ”‚ โ”œโ”€โ”€ main.js โ”‚ โ”œโ”€โ”€ App.vue โ”‚ โ”œโ”€โ”€ style.css โ”‚ โ”œโ”€โ”€ api/ โ”‚ โ”‚ โ””โ”€โ”€ index.js โ”‚ โ””โ”€โ”€ views/ โ”‚ โ”œโ”€โ”€ Home.vue โ”‚ โ”œโ”€โ”€ Analyze.vue โ”‚ โ””โ”€โ”€ Chat.vue โ”‚ โ”œโ”€โ”€ agents/ โ”‚ โ”œโ”€โ”€ coordinator.py # ๅ่ฐƒ Agent (LangGraph) โ”‚ โ”œโ”€โ”€ parser_agent.py # ๆ–‡ๆกฃ่งฃๆž Agent โ”‚ โ”œโ”€โ”€ summarizer_agent.py # ๆ‘˜่ฆๅˆ†ๆž Agent โ”‚ โ””โ”€โ”€ qa_agent.py # RAG ้—ฎ็ญ” Agent โ”‚ โ”œโ”€โ”€ services/ โ”‚ โ”œโ”€โ”€ document_parser.py # ๆ–‡ๆกฃ่งฃๆžๆœๅŠก โ”‚ โ”œโ”€โ”€ vector_store.py # ChromaDB ๅ‘้‡ๅญ˜ๅ‚จ โ”‚ โ””โ”€โ”€ llm_service.py # DeepSeek LLM ๆœๅŠก โ”‚ โ””โ”€โ”€ prompts/ โ””โ”€โ”€ templates.py # Prompt ๆจกๆฟ ``` ## ๐Ÿ› ๏ธ ๆŠ€ๆœฏๆ ˆ **ๅŽ็ซฏ:** - FastAPI - ้ซ˜ๆ€ง่ƒฝ Web ๆก†ๆžถ - LangChain + LangGraph - ๅคšๆ™บ่ƒฝไฝ“ๆก†ๆžถ - DeepSeek API - LLM ๆœๅŠก - ChromaDB - ๅ‘้‡ๆ•ฐๆฎๅบ“ - PyMuPDF + python-docx - ๆ–‡ๆกฃ่งฃๆž **ๅ‰็ซฏ:** - Vue 3 - ๆธ่ฟ›ๅผ JavaScript ๆก†ๆžถ - Vite - ไธ‹ไธ€ไปฃๅ‰็ซฏๆž„ๅปบๅทฅๅ…ท - Tailwind CSS - ๅŽŸๅญๅŒ– CSS ๆก†ๆžถ - Axios - HTTP ๅฎขๆˆท็ซฏ ## ๐ŸŽจ ็•Œ้ข้ข„่งˆ ๅ‰็ซฏ้‡‡็”จๆทฑ่‰ฒไธป้ข˜่ฎพ่ฎก๏ผŒๅ…ทๆœ‰ไปฅไธ‹็‰น็‚น๏ผš - ็Žป็’ƒๆ€ (Glassmorphism) ่ฎพ่ฎก้ฃŽๆ ผ - ๆต็•…็š„ๅŠจ็”ปๆ•ˆๆžœ - ๅ“ๅบ”ๅผๅธƒๅฑ€ - ไผ˜้›…็š„ Markdown ๆธฒๆŸ“ - ๅฎžๆ—ถๆตๅผๅ“ๅบ” ## โš ๏ธ ๆณจๆ„ไบ‹้กน 1. ้ฆ–ๆฌก่ฟ่กŒๆ—ถไผšไธ‹่ฝฝ Embedding ๆจกๅž‹๏ผŒๅฏ่ƒฝ้œ€่ฆไธ€ไบ›ๆ—ถ้—ด 2. ็กฎไฟ็ฝ‘็ปœๅฏไปฅ่ฎฟ้—ฎ DeepSeek API 3. ๅคงๅž‹่ฎบๆ–‡็š„ๅˆ†ๆžๅฏ่ƒฝ้œ€่ฆ่พƒ้•ฟๆ—ถ้—ด 4. ๅปบ่ฎฎไธŠไผ ๅญฆๆœฏ่ฎบๆ–‡ๆ ผๅผ็š„ๆ–‡ๆกฃไปฅ่Žทๅพ—ๆœ€ไฝณๆ•ˆๆžœ 5. ้œ€่ฆ Node.js 18+ ๆฅ่ฟ่กŒๅ‰็ซฏๅผ€ๅ‘ๆœๅŠกๅ™จ ## ๐Ÿ“ License MIT License