Skip to content

Color2333/PaperMind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

201 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

PaperMind

AI ้ฉฑๅŠจ็š„ๅญฆๆœฏ่ฎบๆ–‡็ ”็ฉถๅทฅไฝœๆตๅนณๅฐ

ไปŽใ€Œๆœ็ดข่ฎบๆ–‡ใ€่ฟ›ๅŒ–ไธบใ€Œ็†่งฃ้ข†ๅŸŸใ€

Python FastAPI React TypeScript Tailwind SQLite License LLM

่ฎฉ AI ๆˆไธบไฝ ็š„็ ”็ฉถๅŠฉ็† โ€”โ€” ่‡ชๅŠจ่ฟฝ่ธชใ€ๆ™บ่ƒฝๅˆ†ๆžใ€็Ÿฅ่ฏ†ๅ›พ่ฐฑใ€ๅญฆๆœฏๅ†™ไฝœ๏ผŒไธ€็ซ™ๅผๆžๅฎš๏ผ


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

Docker ้ƒจ็ฝฒ๏ผˆ็”ŸไบงๆŽจ่๏ผ‰

# 1๏ธโƒฃ ๅ…‹้š†้กน็›ฎ
git clone https://github.com/Color2333/PaperMind.git && cd PaperMind

# 2๏ธโƒฃ ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cp .env.example .env
vim .env  # ่‡ณๅฐ‘ๅกซๅ†™ LLM API Key

# 3๏ธโƒฃ ไธ€้”ฎ้ƒจ็ฝฒ
docker compose up -d --build

# 4๏ธโƒฃ ่ฎฟ้—ฎๆœๅŠก
# ๐ŸŒ ๅ‰็ซฏ๏ผšhttp://localhost:3002
# ๐Ÿ“ก ๅŽ็ซฏ API: http://localhost:8002
# ๐Ÿ“š API ๆ–‡ๆกฃ๏ผšhttp://localhost:8002/docs

ๆœฌๅœฐๅผ€ๅ‘

# 1๏ธโƒฃ ๅ…‹้š†้กน็›ฎ
git clone https://github.com/Color2333/PaperMind.git && cd PaperMind

# 2๏ธโƒฃ ไธ€้”ฎๅˆๅง‹ๅŒ–๏ผˆๆŽจ่๏ผ‰
python scripts/dev_setup.py

# ๆˆ–ๆ‰‹ๅŠจๅˆๅง‹ๅŒ–๏ผš
python -m venv .venv && source .venv/bin/activate
pip install -e ".[llm,pdf]"
cp .env.example .env
vim .env  # ๅกซๅ…ฅ LLM API Key
python scripts/local_bootstrap.py

# 3๏ธโƒฃ ๅฏๅŠจๅŽ็ซฏ
uvicorn apps.api.main:app --reload --port 8000

# 4๏ธโƒฃ ๅฏๅŠจๅ‰็ซฏ
cd frontend && npm install && npm run dev
# ๐ŸŒ ๆ‰“ๅผ€ http://localhost:5173

็ซ™็‚น่ฎค่ฏ๏ผˆๅฏ้€‰๏ผ‰

# ๅœจ .env ไธญ่ฎพ็ฝฎๅฏ†็ ๅณๅฏๅฏ็”จๅ…จ็ซ™่ฎค่ฏ
AUTH_PASSWORD=your_password_here
AUTH_SECRET_KEY=your_random_secret_key

๐ŸŽฏ ่ฟ™ๆ˜ฏไป€ไนˆ๏ผŸ

PaperMind ๆ˜ฏไธ€ไธช้ขๅ‘็ง‘็ ”ๅทฅไฝœ่€…็š„ AI ๅขžๅผบๅนณๅฐ๏ผŒๅธฎไฝ ไปŽใ€Œๆœ็ดข่ฎบๆ–‡ใ€่ฟ›ๅŒ–ไธบใ€Œ็†่งฃ้ข†ๅŸŸใ€ใ€‚

๐Ÿ˜ซ ไปฅๅ‰ ๐Ÿ˜Ž ็Žฐๅœจ
ๆฏๅคฉๆ‰‹ๅŠจๅˆท arXiv๏ผŒๆ€•้”™่ฟ‡้‡่ฆ่ฎบๆ–‡ ่‡ชๅŠจ่ฎข้˜…ไธป้ข˜๏ผŒๆ–ฐ่ฎบๆ–‡ๆŽจ้€ๅˆฐ้‚ฎ็ฎฑ
่ฏป่ฎบๆ–‡ไปŽๆ‘˜่ฆๅผ€ๅง‹๏ผŒไธ็Ÿฅ้“ๅ€ผไธๅ€ผๅพ—็ฒพ่ฏป AI ็ฒ—่ฏปๆ‰“ๅˆ†๏ผŒๅฟซ้€Ÿ็ญ›้€‰้ซ˜ไปทๅ€ผ่ฎบๆ–‡
ๆƒณไบ†่งฃ้ข†ๅŸŸๅ‘ๅฑ•๏ผŒไธ็Ÿฅ้“ไปŽๅ“ช็ฏ‡่ฏป่ตท ็Ÿฅ่ฏ†ๅ›พ่ฐฑๅฏ่ง†ๅŒ–๏ผŒไธ€็œผ็œ‹ๆธ…ๅผ•็”จ่„‰็ปœ
ๅ†™่ฎบๆ–‡ๅกๅฃณ๏ผŒไธ็Ÿฅ้“ๆ€Žไนˆ่กจ่พพ ๅญฆๆœฏๅ†™ไฝœๅŠฉๆ‰‹๏ผŒๆถฆ่‰ฒ/็ฟป่ฏ‘/ๅŽป AI ๅ‘ณ
ๆ–‡็Œฎ็ปผ่ฟฐ่€—ๆ—ถ่€—ๅŠ›๏ผŒๆ•ด็†ๅ‡ ็™พ็ฏ‡ๅคดๅคง Wiki ่‡ชๅŠจ็”Ÿๆˆ๏ผŒไธ€้”ฎไบงๅ‡บ้ข†ๅŸŸ็ปผ่ฟฐ

โœจ ๆ ธๅฟƒ่ƒฝๅŠ›

๐Ÿง  ่ฎค็Ÿฅ้‡ๆž„ๅทฅไฝœๆต (PaperSenseMaking)

ใ€Œ้˜…่ฏปโ†’็†่งฃโ†’้‡ๆž„ใ€็š„ๅฎŒๆ•ด่ฎบๆ–‡ๅทฅไฝœๆต๏ผš

  • ๐Ÿ“ Act 1 ็†่งฃ โ€”โ€” ๆ‘˜่ฆ + ๅ…ณ้”ฎๅ‘็Žฐ๏ผŒๅŽ˜ๆธ…่ฎบๆ–‡ๆ ธๅฟƒ
  • โšก Act 2 ็ขฐๆ’ž โ€”โ€” ๅ†ฒ็ช + ็–‘้—ฎ๏ผŒไธŽๅทฒๆœ‰็Ÿฅ่ฏ†ๅฏน่ฏ
  • ๐Ÿ”„ Act 3 ้‡ๆž„ โ€”โ€” ๅ‰ๅŽๅฏนๆฏ” + ่ฎค็Ÿฅๅ˜ๅŒ–๏ผŒๅฝขๆˆๆ–ฐ่ฎค็Ÿฅ
  • ๐Ÿ“– ๅ…จๆ–‡ๅฏน็…ง็ฟป่ฏ‘ โ€”โ€” ๆฎต่ฝ็บงไธญ่‹ฑๅฏน็…ง๏ผŒๆ”ฏๆŒไธค็งๆจกๅผ
    • โšก ๅฟซ้€Ÿ็ฟป่ฏ‘๏ผš1-2 ๅˆ†้’Ÿ๏ผŒPyMuPDF ๅˆ†ๆฎต + ๅนถๅ‘็ฟป่ฏ‘
    • ๐Ÿ“ ๅธƒๅฑ€ไฟ็•™๏ผš3-5 ๅˆ†้’Ÿ๏ผŒPDFMathTranslate ๅฎŒๆ•ดๆŽ’็‰ˆ๏ผˆๅ…ฌๅผ/ๅ›พ่กจไฟ็•™๏ผ‰

๐Ÿค– AI Agent ๅฏน่ฏ

ไฝ ็š„ๆ™บ่ƒฝ็ ”็ฉถๅŠฉ็†๏ผŒ่‡ช็„ถ่ฏญ่จ€ไบคไบ’ๆžๅฎšไธ€ๅˆ‡๏ผš

  • ๐Ÿ’ฌ SSE ๆตๅผๅฏน่ฏ โ€”โ€” Claude ้ฃŽๆ ผ๏ผŒๅฎžๆ—ถๅ“ๅบ”
  • ๐Ÿ”ง ๅทฅๅ…ท้“พ โ€”โ€” ๆœ็ดข/ๅ…ฅๅบ“/ๅˆ†ๆž/็”Ÿๆˆ/ๅ†™ไฝœ่‡ชๅŠจ่ฐƒๅบฆ
  • โœ… ็”จๆˆท็กฎ่ฎคๆœบๅˆถ โ€”โ€” ้‡่ฆๆ“ไฝœ็ญ‰ไฝ ็‚นๅคดๅ†ๆ‰ง่กŒ
  • ๐Ÿ“œ ๅฏน่ฏๅކๅฒๆŒไน…ๅŒ– โ€”โ€” ๅˆ‡้กต้ขไธไธขไธŠไธ‹ๆ–‡
  • ๐ŸŽฏ AI ๅ…ณ้”ฎ่ฏๅปบ่ฎฎ โ€”โ€” ๆ่ฟฐ็ ”็ฉถๆ–นๅ‘ โ†’ ่‡ชๅŠจ็”Ÿๆˆๆœ็ดข่ฏ

๐Ÿ“„ ๆ™บ่ƒฝ่ฎบๆ–‡็ฎก็†

ไปŽๆ”ถๅฝ•ๅˆฐ็ฒพ่ฏป๏ผŒๅ…จๆต็จ‹่‡ชๅŠจๅŒ–๏ผš

  • ๐Ÿ”„ ๅคšๆบ่ฎข้˜… โ€”โ€” ArXiv ๅ…ณ้”ฎ่ฏ + CSFeeds ่ฎบๆ–‡ๆบๅŒ้‡ๆŠ“ๅ–
  • ๐Ÿšซ ่ฎบๆ–‡ๅŽป้‡ๆฃ€ๆต‹ โ€”โ€” ้ฟๅ…้‡ๅคๅค„็†ๆตช่ดน token
  • ๐Ÿ“ฆ ้€’ๅฝ’ๆŠ“ๅ– โ€”โ€” ่‡ชๅŠจๅปถไผธๆ›ดๆ—ฉๆœŸ่ฎบๆ–‡
  • โšก ๅนถ่กŒๅค„็† โ€”โ€” ็ฒ—่ฏป/็ฒพ่ฏป/ๅตŒๅ…ฅไธ‰็ฎก้ฝไธ‹
  • ๐Ÿ’พ ๆŒ‰้œ€ไธ‹่ฝฝ PDF โ€”โ€” ๅ…ฅๅบ“ไธไธ‹่ฝฝ๏ผŒ็ฒพ่ฏปๆ‰ๆ‹‰ๅ–

๐Ÿ•ธ๏ธ ๅผ•็”จๅ›พ่ฐฑ

ๅฏ่ง†ๅŒ–ไฝ ็š„็ ”็ฉถ้ข†ๅŸŸ๏ผš

  • ๐ŸŒณ ๅผ•็”จๆ ‘ โ€”โ€” ๅ•็ฏ‡่ฎบๆ–‡ๅผ•็”จ็ฝ‘็ปœ
  • ๐ŸŒ ไธป้ข˜ๅ›พ่ฐฑ โ€”โ€” ่ทจไธป้ข˜ๅผ•็”จๅ…ณ็ณป
  • ๐ŸŒ‰ ๆกฅๆŽฅ่ฎบๆ–‡ โ€”โ€” ๅ‘็Žฐ่ทจ้ข†ๅŸŸ็š„ๆ ธๅฟƒๅทฅไฝœ
  • ๐Ÿ”ฌ ็ ”็ฉถๅ‰ๆฒฟ โ€”โ€” ้ซ˜่ขซๅผ• + ้ซ˜ๅผ•็”จ็š„็ƒญ็‚น
  • ๐Ÿ“Š ๅ…ฑๅผ•่š็ฑป โ€”โ€” ็›ธๅ…ณ็ ”็ฉถ่‡ชๅŠจๅˆ†็ป„

๐Ÿ“š Wiki ่‡ชๅŠจ็”Ÿๆˆ

ไธ€้”ฎ็”Ÿๆˆ้ข†ๅŸŸ็ปผ่ฟฐ๏ผš

  • ๐Ÿ“– ไธป้ข˜ Wiki โ€”โ€” ่พ“ๅ…ฅๅ…ณ้”ฎ่ฏ๏ผŒ่พ“ๅ‡บๅฎŒๆ•ด็ปผ่ฟฐ
  • ๐Ÿ“„ ่ฎบๆ–‡ Wiki โ€”โ€” ๅ•็ฏ‡่ฎบๆ–‡ๆทฑๅบฆ่งฃ่ฏป
  • ๐Ÿ“Š ๅฎžๆ—ถ่ฟ›ๅบฆๆก โ€”โ€” ๅผ‚ๆญฅ็”Ÿๆˆ๏ผŒ่‡ชๅŠจๅˆทๆ–ฐ
  • ๐Ÿ“œ ๅކๅฒ็‰ˆๆœฌ โ€”โ€” ๆ‰€ๆœ‰็”Ÿๆˆๅ†…ๅฎนๅฏ่ฟฝๆบฏ

๐Ÿ” ่ฎบๆ–‡่ฎข้˜…ๆบ๏ผˆCSFeeds๏ผ‰

ๅ‘็Žฐไฝ ็ ”็ฉถ้ข†ๅŸŸๆœ€้‡่ฆ็š„่ฎบๆ–‡ๆฅๆบ๏ผš

  • ๐ŸŽฏ ๅ…ณ้”ฎ่ฏ่ฎข้˜… โ€”โ€” arXiv ๅ…ณ้”ฎ่ฏ่‡ชๅŠจ่ฟฝ่ธช
  • ๐Ÿ“ก ่ฎบๆ–‡ๆบ่ฎข้˜… โ€”โ€” ็›ดๆŽฅ่ฎข้˜… CSFeeds ็ƒญ้—จ่ฎบๆ–‡
  • ๐Ÿ“ฌ ้‚ฎไปถๆŽจ้€ โ€”โ€” ๆ–ฐ่ฎบๆ–‡่‡ชๅŠจๅ‘้€ๅˆฐ้‚ฎ็ฎฑ
  • โฐ ๆŒ‰ไธป้ข˜็‹ฌ็ซ‹่ฐƒๅบฆ โ€”โ€” ๆฏไธชไธป้ข˜็‹ฌ็ซ‹ๆŠ“ๅ–้ข‘็އ

โœ๏ธ ๅญฆๆœฏๅ†™ไฝœๅŠฉๆ‰‹

ๆฅ่‡ช้กถๅฐ–็ ”็ฉถๆœบๆž„็š„ๅ†™ไฝœๅทฅๅ…ท๏ผš

  • ๐ŸŒ ไธญ่ฝฌ่‹ฑ / ่‹ฑ่ฝฌไธญ โ€”โ€” ๅญฆๆœฏ็บง็ฟป่ฏ‘
  • โœจ ๆถฆ่‰ฒ๏ผˆไธญ/่‹ฑ๏ผ‰ โ€”โ€” ๆ›ดๅœฐ้“็š„ๅญฆๆœฏ่กจ่พพ
  • ๐Ÿค– ๅŽป AI ๅ‘ณ โ€”โ€” ้™ไฝŽ AI ๆฃ€ๆต‹็އ
  • ๐Ÿ“Š ๅ›พ่กจๆŽจ่ / ๆ ‡้ข˜็”Ÿๆˆ โ€”โ€” ๅฎž้ชŒๆ•ฐๆฎๅฏ่ง†ๅŒ–ๅปบ่ฎฎ

๐Ÿ“– ๆฒ‰ๆตธๅผ PDF ้˜…่ฏปๅ™จ

ไธ“ๆณจ้˜…่ฏป๏ผŒAI ้šๅซ้šๅˆฐ๏ผš

  • ๐Ÿ“œ ่ฟž็ปญๆปšๅŠจ โ€”โ€” IntersectionObserver ้กต็ ่ฟฝ่ธช
  • ๐Ÿ” ็ผฉๆ”พ/ๅ…จๅฑ/่ทณ่ฝฌ โ€”โ€” ้”ฎ็›˜ๅฟซๆท้”ฎๆ”ฏๆŒ
  • ๐ŸŒ arXiv ๅœจ็บฟไปฃ็† โ€”โ€” ๆ— ๆœฌๅœฐ PDF ไนŸ่ƒฝ่ฏป
  • โœจ ้€‰ไธญๅณ้—ฎ โ€”โ€” AI ่งฃ้‡Š/็ฟป่ฏ‘/ๆ€ป็ป“

๐Ÿ” ็ซ™็‚นๅฎ‰ๅ…จ่ฎค่ฏ

ไฟๆŠคไฝ ็š„็ ”็ฉถ่ต„ไบง๏ผš

  • ๐Ÿ”‘ ็ซ™็‚นๅฏ†็  โ€”โ€” ็ฎ€ๅ•ๅฏ้ ๏ผŒ้€‚ๅˆไธชไบบ/ๅฐๅ›ข้˜Ÿ
  • ๐ŸŽซ JWT Token โ€”โ€” 7 ๅคฉๆœ‰ๆ•ˆๆœŸ๏ผŒ่‡ชๅŠจ็ปญๆœŸ
  • ๐Ÿ›ก๏ธ ๅ…จ็ซ™ไฟๆŠค โ€”โ€” ๆ‰€ๆœ‰ API ้ƒฝ้œ€่ฆ่ฎค่ฏ

โš™๏ธ LLM ๆจกๅž‹็ฎก็†

็ตๆดปๆŽงๅˆถๆˆๆœฌ๏ผŒๆŒ‰ๅœบๆ™ฏๅˆ†้…ๆจกๅž‹๏ผš

  • ๐Ÿ“Š ็ปŸไธ€้…็ฝฎ โ€”โ€” ้ป˜่ฎคไฝฟ็”จ GLM-4.7๏ผˆๆ–‡ๆœฌ๏ผ‰+ GLM-4.6V๏ผˆ่ง†่ง‰๏ผ‰
  • ๐Ÿ”„ ไธ€้”ฎๅˆ‡ๆข โ€”โ€” ๅœจ่ฎพ็ฝฎ้กต้ข้šๆ—ถๅˆ‡ๆข้…็ฝฎ
  • ๐ŸŽฏ ๅœบๆ™ฏๆ˜ ๅฐ„ โ€”โ€” ๆ‰€ๆœ‰ๆ–‡ๆœฌไปปๅŠก่‡ชๅŠจไฝฟ็”จ GLM-4.7
  • ๐Ÿ’ฐ ๆˆๆœฌไผ˜ๅŒ– โ€”โ€” ๅ•ไธ€ๆจกๅž‹้…็ฝฎ๏ผŒ้ฟๅ…็ฎก็†ๅคๆ‚ๅบฆ
  • ๐Ÿ“ˆ Token ่ฟฝ่ธช โ€”โ€” ๆ‰€ๆœ‰ API ่ฐƒ็”จ่‡ชๅŠจ่ฎฐๅฝ•ๆˆๆœฌๅ’Œ็”จ้‡

้ป˜่ฎคๆจกๅž‹้…็ฝฎ๏ผš

  • ๆ–‡ๆœฌไปปๅŠก๏ผˆ็ฒ—่ฏป/็ฒพ่ฏป/็ฟป่ฏ‘/ๅ†™ไฝœ๏ผ‰๏ผšGLM-4.7
  • ่ง†่ง‰ไปปๅŠก๏ผˆๅ›พ่กจๅˆ†ๆž/OCR๏ผ‰๏ผšGLM-4.6V
  • ้™็บงๅค‡็”จ๏ผšGLM-4.7

๐Ÿ—๏ธ ๆžถๆž„ๆ€ป่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     Frontend (React 18)                      โ”‚
โ”‚  Agent โ”‚ Papers โ”‚ Wiki โ”‚ Graph โ”‚ Brief โ”‚ Collect โ”‚ Writing  โ”‚
โ”‚         ่ทฏ็”ฑๆ‡’ๅŠ ่ฝฝ ยท Vite ไปฃ็ ๅˆ†ๅ‰ฒ ยท SSE ่ทจ้กตไฟๆดป            โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                          โ”‚ REST + SSE (JWT Auth)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      FastAPI Backend                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   Agent     โ”‚   Pipeline  โ”‚    RAG      โ”‚  Graph / Wiki /   โ”‚
โ”‚   Service   โ”‚   Engine    โ”‚   Service   โ”‚  Brief / Write    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚         Global TaskTracker (ๅผ‚ๆญฅไปปๅŠก + ๅฎžๆ—ถ่ฟ›ๅบฆ)             โ”‚
โ”‚         ๅณไธ‹่ง’ๆ‚ฌๆตฎ้ขๆฟ ยท ๅˆ†็ฑปๅ›พๆ ‡ ยท ๅฎŒๆˆๅކๅฒ                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚           Unified LLM Client (่ฟžๆŽฅๅค็”จ + TTL ็ผ“ๅญ˜)           โ”‚
โ”‚            OpenAI  โ”‚  Anthropic  โ”‚  ZhipuAI                 โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   SQLite (WAL)  โ”‚  ArXiv API  โ”‚  Semantic Scholar API       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                            โ”‚
              โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
              โ”‚   APScheduler Worker    โ”‚
              โ”‚   ๆŒ‰ไธป้ข˜็‹ฌ็ซ‹่ฐƒๅบฆ         โ”‚
              โ”‚   ๆฏๆ—ฅ็ฎ€ๆŠฅ / ๆฏๅ‘จๅ›พ่ฐฑ    โ”‚
              โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

โš™๏ธ ็Žฏๅขƒๅ˜้‡

ๅ˜้‡ ่ฏดๆ˜Ž ้ป˜่ฎคๅ€ผ
LLM_PROVIDER LLM ๆไพ›ๅ•† (openai/anthropic/zhipu) zhipu
ZHIPU_API_KEY ๆ™บ่ฐฑ API Key โ€”
OPENAI_API_KEY OpenAI API Key โ€”
ANTHROPIC_API_KEY Anthropic API Key โ€”
LLM_MODEL_SKIM ็ฒ—่ฏปๆจกๅž‹ glm-4.7
LLM_MODEL_DEEP ็ฒพ่ฏปๆจกๅž‹ glm-4.7
LLM_MODEL_VISION ่ง†่ง‰ๆจกๅž‹ glm-4.6v
EMBEDDING_MODEL Embedding ๆจกๅž‹ embedding-3
SITE_URL ็”ŸไบงๅŸŸๅ http://localhost:3002
AUTH_PASSWORD ็ซ™็‚นๅฏ†็ ๏ผˆ็•™็ฉบ็ฆ็”จ่ฎค่ฏ๏ผ‰ โ€”
AUTH_SECRET_KEY JWT ๅฏ†้’ฅ โ€”
COST_GUARD_ENABLED ๆˆๆœฌๅฎˆๅซ true
DAILY_BUDGET_USD ๆฏๆ—ฅ้ข„็ฎ— 2.0
OPENALEX_EMAIL OpenAlex ้‚ฎ็ฎฑ๏ผˆ็”จไบŽ API๏ผ‰ โ€”
IEEE_API_ENABLED ๅฏ็”จ IEEE ๆœ็ดข false
IEEE_API_KEY IEEE API Key โ€”
SEMANTIC_SCHOLAR_API_KEY Semantic Scholar API Key โ€”

ๅฎŒๆ•ด้…็ฝฎ่ง .env.example


๐Ÿ“ก API ้€Ÿ่งˆ

๐Ÿ” ่ฎค่ฏ
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
POST /auth/login ็™ปๅฝ•่Žทๅ– JWT Token
GET /auth/status ๆŸฅ่ฏข่ฎค่ฏ็Šถๆ€
๐Ÿค– AI Agent
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
POST /agent/chat Agent ๅฏน่ฏ๏ผˆSSE ๆตๅผ๏ผ‰
POST /agent/confirm/{id} ็กฎ่ฎคๅทฅๅ…ทๆ‰ง่กŒ
POST /agent/reject/{id} ๆ‹’็ปๅทฅๅ…ทๆ‰ง่กŒ
๐Ÿ“„ ่ฎบๆ–‡็ฎก็†
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
GET /papers/latest ่ฎบๆ–‡ๅˆ—่กจ๏ผˆๅˆ†้กต๏ผ‰
GET /papers/{id} ่ฎบๆ–‡่ฏฆๆƒ…
POST /pipelines/skim/{id} ็ฒ—่ฏป
POST /pipelines/deep/{id} ็ฒพ่ฏป
POST /pipelines/embed/{id} ็”ŸๆˆๅตŒๅ…ฅๅ‘้‡
๐Ÿ•ธ๏ธ ็Ÿฅ่ฏ†ๅ›พ่ฐฑ
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
GET /graph/citation-tree/{id} ๅผ•ๆ–‡ๆ ‘
GET /graph/overview ๅ…จๅฑ€ๆฆ‚่งˆ
GET /graph/bridges ๆกฅๆŽฅ่ฎบๆ–‡
GET /graph/frontier ็ ”็ฉถๅ‰ๆฒฟ
GET /graph/cocitation ๅ…ฑๅผ•่š็ฑป
๐Ÿ“š Wiki
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
POST /wiki/topic ็”Ÿๆˆไธป้ข˜็ปผ่ฟฐ
GET /wiki/topic/{id} ่Žทๅ–ไธป้ข˜ Wiki
POST /wiki/paper/{id} ็”Ÿๆˆ่ฎบๆ–‡่งฃ่ฏป
GET /wiki/history Wiki ็”Ÿๆˆๅކๅฒ
๐Ÿ“ก ่ฎข้˜…ๆบ
ๆ–นๆณ• ่ทฏๅพ„ ่ฏดๆ˜Ž
GET /cs-feeds/ ๅˆ—่กจ่ฎข้˜…ๆบ
POST /cs-feeds/subscribe ่ฎข้˜…่ฎบๆ–‡ๆบ
POST /cs-feeds/fetch ๆ‰‹ๅŠจ่งฆๅ‘ๆŠ“ๅ–

โšก ๆ€ง่ƒฝไผ˜ๅŒ–

็ฑปๅˆซ ไผ˜ๅŒ–็ญ–็•ฅ
้ฆ–ๅฑ KaTeX ๅญ—ไฝ“ CDN + PDF Worker CDN + ้‡ๅž‹ๅบ“ๆ‡’ๅŠ ่ฝฝ๏ผˆ-2.7MB๏ผ‰
ๅ‰็ซฏ ่ทฏ็”ฑๆ‡’ๅŠ ่ฝฝ ยท useMemo/useCallback ยท React.memo ยท RAF batching
ๆ•ฐๆฎๅบ“ SQLite WAL ยท ๆ‰น้‡่šๅˆๆŸฅ่ฏข ยท Citation ็ดขๅผ•
ๅ›พ่ฐฑ list_lightweight ่ฝป้‡ๅŠ ่ฝฝ ยท 90% ๅ†…ๅญ˜ๅ‰Šๅ‡
LLM ่ฟžๆŽฅๅค็”จ ยท 30s TTL ็ผ“ๅญ˜ ยท ๆŒ‡ๆ•ฐ้€€้ฟ้‡่ฏ•
ไปปๅŠก ็ปŸไธ€่ฟ›ๅบฆๅ›ž่ฐƒ ยท ็ฒ’ๅบฆๅŒ–่ฟ›ๅบฆๆŠฅๅ‘Š ยท ๅˆ†็ฑปๅ›พๆ ‡

๐Ÿ“‹ ๆ›ดๆ–ฐๆ—ฅๅฟ—

v3.2 (2026-03-19) โ€” ๆ€ง่ƒฝไผ˜ๅŒ– + ๅ…จๅฑ€ไปปๅŠก็ณป็ปŸ้‡ๆž„

ๆ€ง่ƒฝไผ˜ๅŒ–

  • KaTeX ๅญ—ไฝ“ + PDF Worker ๆ”นไธบ CDN๏ผŒ้ฆ–ๅฑ -2.7MB
  • ForceGraph2D / react-pdf / react-markdown ๆ‡’ๅŠ ่ฝฝ
  • topic_stats N+1 ๆŸฅ่ฏขๆ”นไธบๆ‰น้‡่šๅˆ๏ผˆ401ๆฌกโ†’4ๆฌก๏ผ‰
  • Citation ๅญ—ๆฎตๅŠ ็ดขๅผ•๏ผŒๅ›พ่ฐฑๆŸฅ่ฏขๅŠ ้€Ÿ
  • graph_service ๅ…จ้‡ๅŠ ่ฝฝๆ”นไธบ่ฝป้‡ๆจกๅผ๏ผŒๅ†…ๅญ˜ -90%
  • HTTP ๅฎขๆˆท็ซฏๅค็”จ + LLM ๆŒ‡ๆ•ฐ้€€้ฟ้‡่ฏ•
  • 50+ ๅค„ index-as-key ไฟฎๅค

ไปปๅŠก็ณป็ปŸ้‡ๆž„

  • ็ปŸไธ€่ฟ›ๅบฆๅ›ž่ฐƒ็ญพๅ๏ผˆmessage, current, total๏ผ‰
  • TaskManager ๅˆๅนถๅˆฐ global_tracker
  • fetch / cs_feed / weekly / figure_analysis ่ฟ›ๅบฆ็ฒ’ๅบฆๅขžๅผบ
  • GlobalTaskBar ๆ”นไธบๅณไธ‹่ง’ๆ‚ฌๆตฎ้ขๆฟ๏ผˆๅˆ†็ฑปๅ›พๆ ‡/้ขœ่‰ฒ/ๅކๅฒ๏ผ‰
  • ActiveTask ๅขžๅŠ  category ๅญ—ๆฎต

ๅ…ถไป–

  • CSFeeds ่ฎบๆ–‡่ฎข้˜…ๆบๅŠŸ่ƒฝๅฎŒๅ–„
  • Agent ๅฏน่ฏไฝ“้ชŒไผ˜ๅŒ–
  • ๅ‰็ซฏ็Šถๆ€็ฎก็†ไผ˜ๅŒ–๏ผŒๅ‡ๅฐ‘ๆ— ๆ•ˆ้‡ๆธฒๆŸ“

v3.1 (2026-03-01) โ€” ๅฎ‰ๅ…จ่ฎค่ฏ + ็จณๅฎšๆ€งๅขžๅผบ

ๆ–ฐๅŠŸ่ƒฝ

  • ๐Ÿ” ็ซ™็‚นๅฏ†็ ่ฎค่ฏ โ€”โ€” JWT Token ไฟๆŠคๆ‰€ๆœ‰ API
  • ๐Ÿ“„ PDF Token ่ฎค่ฏ โ€”โ€” ๆ–‡ไปถ่ฎฟ้—ฎไนŸๅฎ‰ๅ…จ
  • ๐Ÿ”„ SSE ่ฎค่ฏ โ€”โ€” Agent ๅฏน่ฏ็ญ‰ SSE ่ฏทๆฑ‚ๆบๅธฆ่ฎค่ฏ

Bug ไฟฎๅค

  • ไฟฎๅค TypeScript ็ผ–่ฏ‘ๅคฑ่ดฅ
  • ๆขๅค GZipMiddleware ๅ“ๅบ”ๅŽ‹็ผฉ
  • ๆขๅค logging_setup ็ปŸไธ€ๆ—ฅๅฟ—ๆ ผๅผ
ๆŸฅ็œ‹ๅކๅฒ็‰ˆๆœฌ

v3.0 (2026-02-28) โ€” ็จณๅฎšๆ€งๅ…จ้ขๅ‡็บง

v2.8 โ€” ๅŽ็ซฏ้‡ๆž„ + Agent ๆ™บ่ƒฝๅŒ–

v2.7 โ€” ๅคšๆบๅผ•็”จ + ็›ธไผผๅบฆๅœฐๅ›พ

v2.5 โ€” ็Ÿฅ่ฏ†ๅ›พ่ฐฑๅฏ่ง†ๅŒ–

v2.0 โ€” Agent ๅฏน่ฏ็ณป็ปŸ

v1.0 โ€” ๅŸบ็ก€่ฎบๆ–‡็ฎก็†


๐Ÿ”ง ๅผ€ๅ‘

# ๅŽ็ซฏ lint
python -m ruff check .

# ๅ‰็ซฏ็ฑปๅž‹ๆฃ€ๆŸฅ
cd frontend && npx tsc --noEmit

# ๆ•ฐๆฎๅบ“่ฟ็งป
cd infra && alembic revision --autogenerate -m "ๆ่ฟฐ"
alembic upgrade head

๐Ÿ™ ่‡ด่ฐข

  • awesome-ai-research-writing โ€” ๅ†™ไฝœๅŠฉๆ‰‹ Prompt ๆจกๆฟๆฅๆบ
  • ArXiv โ€” ๅผ€ๆ”พ่ฎบๆ–‡ๅนณๅฐ
  • Semantic Scholar โ€” ๅผ•็”จๆ•ฐๆฎๆฅๆบ
  • CSFeeds โ€” ่ฎบๆ–‡ๆบ่ฎข้˜…ๆœๅŠก
  • learn-claude-code โ€” Agent Harness ๅทฅ็จ‹ไฝ“็ณปๅฏๅ‘๏ผŒs01-s12 ๆธ่ฟ›ๅผ่งฃๆž„๏ผšLoop โ†’ Tools โ†’ Planning โ†’ Subagents โ†’ Skills โ†’ Context โ†’ Tasks โ†’ Background โ†’ Teams โ†’ Protocols โ†’ Autonomous
  • PaperSenseMaking โ€” ่ฎบๆ–‡้˜…่ฏปใ€Œ้˜…่ฏปโ†’็†่งฃโ†’้‡ๆž„ใ€ๅทฅไฝœๆต่ฎพ่ฎก็ตๆ„Ÿ

Built with โค๏ธ by Color2333

PaperMind โ€” ่ฎฉ AI ๅธฎไฝ ่ฏป่ฎบๆ–‡๏ผŒ่ฎฉ็Ÿฅ่ฏ†่งฆๆ‰‹ๅฏๅŠใ€‚

Star

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors