| # ScholarMind ๆฐๆฎๆต่ฏฆ็ป่ฎพ่ฎก |
|
|
| ## 1. ็ซฏๅฐ็ซฏๆฐๆฎๆต |
|
|
| ``` |
| ScholarMind ๆฐๆฎๆตๅ
จๆฏๅพ |
| |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ Phase 1: ๆฐๆฎๆๅ
ฅ (Ingestion) โ |
| โ โ |
| โ PDFๆไปถ โโโถ MinIOๅญๅจ โโโถ Redis้ๅ โโโถ PDF่ทฏ็ฑๅจ โ |
| โ โ โ |
| โ โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโ โ |
| โ โผ โผ โผ โ |
| โ PyMuPDF MinerU Pipeline MinerU 2.5 VLM โ |
| โ (ๆฐๅญPDF) (ๆฐๅญ+ๅพ่กจ) (ๆซๆไปถ/ๅคๆ) โ |
| โ โ โ โ โ |
| โ โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโ โ |
| โ โผ โ |
| โ ParsedPaper JSON โ |
| โ (็ปๆๅๅ
ๅฎนๅ) โ |
| โ โ โ |
| โ โโโโโโโโโโโโโโผโโโโโโโโโโโโโ โ |
| โ โผ โผ โผ โ |
| โ PostgreSQL MinIO(ๅๅง) Redis(็ถๆ) โ |
| โ (ๅ
ๆฐๆฎ) (PDF+JSON) (่ฟๅบฆ) โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ Phase 2: ็ฅ่ฏๆฝๅ (Extraction) โ |
| โ โ |
| โ ParsedPaper โโโถ ๅญฆๆฏๅๅๅจ(256 tokens) โ |
| โ โ โ |
| โ โโโโถ GLiNER NER (ๅฎไฝๆฝๅ, ๆฌๅฐGPU) โ |
| โ โ โ โ |
| โ โ โผ โ |
| โ โ ๅฎไฝๅ่กจ: [(text, type, score), ...] โ |
| โ โ โ โ |
| โ โ โผ โ |
| โ โโโโถ LLMGraphTransformer (ๅ
ณ็ณปๆฝๅ) โ |
| โ โ โ ่พๅ
ฅ: ๆๆฌๅ + ๅฎไฝๆ็คบ โ |
| โ โ โ LLM: local(Qwen2.5-14B) ๆ API(GPT-4o-mini) โ |
| โ โ โผ โ |
| โ โ ไธๅ
็ปๅ่กจ: [(head, rel, tail, props), ...] โ |
| โ โ โ โ |
| โ โ โผ โ |
| โ โโโโถ Graphusion ่ๅๅผๆ โ |
| โ โ - ๅตๅ
ฅ็ธไผผๅบฆๅฎไฝๅๅนถ (>0.92) โ |
| โ โ - LLMๅฒ็ชๆถ่งฃ โ |
| โ โ - ็ผบๅคฑๅ
ณ็ณปๆจๆญ โ |
| โ โผ โ |
| โ ่ง่ๅไธๅ
็ป โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ Phase 3: ็ดขๅผๆๅปบ (Indexing) โ |
| โ โ |
| โ ๅนถ่กไธ่ทฏ็ดขๅผๆๅปบ: โ |
| โ โ |
| โ ่ทฏๅพA: ๅ้็ดขๅผ โ |
| โ ๆๆฌๅ โโโถ Embedding Model โโโถ Dense Vector โโโ โ |
| โ ๆๆฌๅ โโโถ BM42/SPLADE โโโถ Sparse Vector โโโโโโผโโโถ Qdrant Collection โ |
| โ ๅ
ๆฐๆฎ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ (papers, 1M+ vectors) โ |
| โ โ |
| โ ่ทฏๅพB: ็ฅ่ฏๅพ่ฐฑ โ |
| โ ่ง่ๅไธๅ
็ป โโโถ Neo4j Batch Import โโโถ Neo4j Graph โ |
| โ ๅฎไฝๅตๅ
ฅ โโโถ Neo4j Vector Index โโโถ ๅพๅ
ๅ้ๆ็ดข โ |
| โ ๅ
จๆ็ดขๅผ โโโถ Neo4j Fulltext Index โโโถ ๅพๅ
ๆๆฌๆ็ดข โ |
| โ โ |
| โ ่ทฏๅพC: RAPTORๅฑๆฌกๆ โ |
| โ ๆๆฌๅ โโโถ SBERTๅตๅ
ฅ โโโถ GMM่็ฑป โโโถ LLMๆ่ฆ โโโถ ้ๆฐๅตๅ
ฅ โโโถ ้ๅฝ โ |
| โ Level 0 (ๅๅง) โ Level 1 (ๆฎต่ฝ) โ Level 2 (ไธป้ข) โ Level 3 (้ขๅ) โ |
| โ ๆๆๅฑ็บง่็น โโโถ Qdrant Collection (raptor_tree) โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ Phase 4: ๆฃ็ดขไธ้ฎ็ญ (Query) โ |
| โ โ |
| โ ็จๆทๆฅ่ฏข โ |
| โ โ โ |
| โ โโโโถ ๆๅพๅ็ฑป (Router LLM) โ |
| โ โ โ โ |
| โ โ โโโ factual โ ๅ้+BM25ๆฃ็ดข (Qdrant) โ |
| โ โ โโโ reasoning โ ๅพ่ฐฑ้ๅ (Neo4j) + ๅ้ๆฃ็ดข โ |
| โ โ โโโ global โ RAPTOR้ซๅฑๆ่ฆ + ็คพๅบๆฃ็ดข โ |
| โ โ โ |
| โ โโโโถ HyDEๆฅ่ฏขๅขๅผบ โ |
| โ โ LLM็ๆๅ่ฎพ็ญๆก โ ๅตๅ
ฅ โ ๅจๆๆกฃ็ฉบ้ดๆ็ดข โ |
| โ โ โ |
| โ โโโโถ ๅค่ทฏ็ปๆ โโโถ RRF่ๅ โโโถ bge-reranker-large้ๆ โโโถ Top-5 โ |
| โ โ |
| โ Top-5 + ๆฅ่ฏข โโโถ Generator LLM โโโถ ็ญๆก + ๅผ็จ โ |
| โ โ โ |
| โ โผ โ |
| โ ็ญๆก โโโถ Validator LLM (่ชๆฃ) โโโฌโโ ็ฝฎไฟกๅบฆ>0.8 โ ่ฟๅ โ |
| โ โโโ ็ฝฎไฟกๅบฆ<0.8 โ ่กฅๅ
ๆฃ็ดข (max 3่ฝฎ) โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| ``` |
|
|
| ## 2. ็ฅ่ฏๅพ่ฐฑๆฅ่ฏขๆต็คบไพ |
|
|
| ### ็คบไพ1: "BERTๆจกๅๅจๅชไบๆฐๆฎ้ไธ่ถ
่ฟไบGPT-2?" |
|
|
| ``` |
| ๆฅ่ฏข โ ๆๅพๅ็ฑป: reasoning |
| โ ๅพ่ฐฑๆฅ่ฏข: |
| |
| MATCH (bert:Method {name: "BERT"})-[r1:EVALUATED_ON]->(d:Dataset) |
| <-[r2:EVALUATED_ON]-(gpt2:Method {name: "GPT-2"}) |
| WHERE r1.score > r2.score AND r1.metric = r2.metric |
| RETURN d.name as dataset, |
| r1.metric as metric, |
| r1.score as bert_score, |
| r2.score as gpt2_score |
| ORDER BY (r1.score - r2.score) DESC |
| |
| โ ็ปๆ: |
| โโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโโโโโ |
| โ dataset โ metric โ bert_score โ gpt2_score โ |
| โโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโค |
| โ GLUE โ accuracy โ 82.1 โ 75.4 โ |
| โ SQuAD โ F1 โ 93.2 โ 89.1 โ |
| โ ... โ ... โ ... โ ... โ |
| โโโโโโโโโโโโดโโโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโโโโโ |
| |
| + ๅ้ๆฃ็ดข่กฅๅ
: ็ธๅ
ณ่ฎบๆๆฎต่ฝไฝไธบsupporting evidence |
| โ LLM็ปผๅ็ๆ็ญๆก |
| ``` |
|
|
| ### ็คบไพ2: "Transformerๆถๆ่ฟ3ๅนด็ไธป่ฆๆน่ฟๆนๅๆๅชไบ?" |
|
|
| ``` |
| ๆฅ่ฏข โ ๆๅพๅ็ฑป: global |
| โ RAPTOR Level 2-3 ๆฃ็ดข: |
| "Transformerๆน่ฟ" ็ธๅ
ณ็้ซๅฑๆ่ฆ่็น |
| โ ๅพ่ฐฑๆฅ่ฏข: |
| |
| MATCH (t:Concept {name: "Transformer"})<-[:IMPROVES_ON]-(m:Method) |
| WHERE m.year >= 2022 |
| RETURN m.name, m.description, m.year |
| ORDER BY m.year DESC |
| |
| โ LLM็ปผๅ: ไปๆ่ฆ+ๅพ่ฐฑ็ปๆ็ๆ่ถๅฟๅๆ |
| ``` |
|
|
| ## 3. ๅนถๅๅค็ๆจกๅ |
|
|
| ``` |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ ๅนถๅๅค็ๆถๆ โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค |
| โ โ |
| โ FastAPI (asyncio) โโโโโโ ๆฅ่ฏข่ฏทๆฑๅค็ โ |
| โ โ ๅนถๅ: 100+ concurrent requests โ |
| โ โ โ |
| โ Celery Workers โโโโโโโ PDF่งฃๆไปปๅก โ |
| โ โ GPU Worker: 1 per GPU โ |
| โ โ CPU Worker: 4-8 per node โ |
| โ โ โ |
| โ vLLM Server โโโโโโโโโโ LLMๆจ็ โ |
| โ โ Async batching (่ชๅจ) โ |
| โ โ max_num_seqs: 32 โ |
| โ โ โ |
| โ Qdrant โโโโโโโโโโโโโโโ ๅ้ๆฃ็ดข โ |
| โ โ RPS: 3000+ (p99 < 10ms) โ |
| โ โ โ |
| โ Neo4j โโโโโโโโโโโโโโโโ ๅพ่ฐฑๆฅ่ฏข โ |
| โ โ Connection pool: 50 โ |
| โ โ Query timeout: 5s โ |
| โ โ โ |
| โ Redis โโโโโโโโโโโโโโโโ ็ผๅญ + ้ๅ โ |
| โ LLMๅๅบ็ผๅญ โ |
| โ ไปปๅก้ๅ โ |
| โ Session็ถๆ โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| |
| ๅ
ณ้ฎ่ฎพ่ฎกๅณ็ญ: |
| 1. MinerU VLM Worker: ๆฏGPUไธไธช่ฟ็จ (vLLMๅ
้จๅทฒๅbatch) |
| 2. GLiNER: GPU batch inference, ๅ
ฑไบซๅไธชGPU |
| 3. LLM่ฐ็จ: ๅผๆญฅ (litellm.acompletion), ่ชๅจbatch |
| 4. ๅพ่ฐฑๅๅ
ฅ: ๆน้UNWINDๅฏผๅ
ฅ (1000 triplets/batch) |
| 5. ๅ้ๅๅ
ฅ: Qdrant batch upload (100 points/batch) |
| ``` |
|
|
| ## 4. ็ผๅญ็ญ็ฅ |
|
|
| ``` |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ ๅค็บง็ผๅญ็ญ็ฅ โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค |
| โ โ |
| โ L1: LLMๅๅบ็ผๅญ (Redis, TTL: 24h) โ |
| โ Key: hash(model + messages + temperature) โ |
| โ ๅฝไธญ็้ขไผฐ: 30-40% (ๅญฆๆฏๆฅ่ฏข้ๅคๅบฆ้ซ) โ |
| โ โ |
| โ L2: ๅตๅ
ฅ็ผๅญ (Redis, TTL: 7d) โ |
| โ Key: hash(text + model_name) โ |
| โ ้ฟๅ
้ๅค่ฎก็ฎๅตๅ
ฅๅ้ โ |
| โ โ |
| โ L3: ๆฅ่ฏข็ปๆ็ผๅญ (Redis, TTL: 1h) โ |
| โ Key: hash(query + mode + top_k) โ |
| โ ๅฎๆดๆฃ็ดข็ปๆ็ผๅญ โ |
| โ โ |
| โ L4: ๅพ่ฐฑๅญๅพ็ผๅญ (Application Memory, LRU) โ |
| โ ็ญ้จๅฎไฝ็2่ทณๅญๅพ้ขๅ ่ฝฝ โ |
| โ ๅฎน้: top 1000 entities โ |
| โ โ |
| โ ๅคฑๆ็ญ็ฅ: โ |
| โ - ๆฐ่ฎบๆๅฏผๅ
ฅ โ ๆธ
้ค็ธๅ
ณquery็ผๅญ (L3) โ |
| โ - ๅพ่ฐฑๆดๆฐ โ ๆธ
้คๅพ่ฐฑ็ผๅญ (L4) โ |
| โ - ๆจกๅๆดๆข โ ๆธ
้คLLM+ๅตๅ
ฅ็ผๅญ (L1+L2) โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| ``` |
|
|
| ## 5. ้่ฏฏๅค็ไธ็ๆง |
|
|
| ``` |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| โ ๅฏ่งๆตๆงๆถๆ โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค |
| โ โ |
| โ Metrics (Prometheus + Grafana): โ |
| โ - pdf_parse_duration_seconds (histogram) โ |
| โ - pdf_parse_total{status="success|failed"} (counter) โ |
| โ - query_latency_seconds{mode="factual|reasoning|global"}โ |
| โ - llm_tokens_total{model, task} (counter) โ |
| โ - llm_cost_usd_total{model} (counter) โ |
| โ - qdrant_search_latency_seconds (histogram) โ |
| โ - neo4j_query_latency_seconds (histogram) โ |
| โ - cache_hit_ratio{level="L1|L2|L3|L4"} (gauge) โ |
| โ โ |
| โ Logging (Structured JSON โ ELK/Loki): โ |
| โ - ๆฏๆฌกๆฅ่ฏขๅฎๆดtrace (queryโretrievalโgeneration) โ |
| โ - PDF่งฃๆๅผๅธธ่ฏฆๆ
โ |
| โ - LLM่ฐ็จ่ฏฆๆ
(token count, latency, model) โ |
| โ โ |
| โ Alerts: โ |
| โ - PDF่งฃๆๅคฑ่ดฅ็ > 5% โ ๆฃๆฅPDF่ดจ้/MinerU็ถๆ โ |
| โ - ๆฅ่ฏขP99ๅปถ่ฟ > 10s โ ๆฃๆฅLLM/ๅ้ๅบ่ด่ฝฝ โ |
| โ - LLMๆๆฌๆฅ่ถ
$X โ ๅๆขๆดๅคๆต้ๅฐๆฌๅฐๆจกๅ โ |
| โ - Neo4jๅ
ๅญ > 80% โ ๆฉๅฎนๆๆธ
็ๆงๆฐๆฎ โ |
| โ โ |
| โ Health Checks: โ |
| โ GET /health โ ๆฃๆฅๆๆไพ่ตๆๅก็ถๆ โ |
| โ - Redis: PING โ |
| โ - Qdrant: collection info โ |
| โ - Neo4j: RETURN 1 โ |
| โ - LiteLLM: /health โ |
| โ - MinerU Worker: Celery inspect โ |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ |
| ``` |
|
|