17 KiB
type, title, description, tags
| type | title | description | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Reference | Theme 4 · Local LLM deployment (Ollama / bge-reranker / RAGFlow) | Synthesis page for Robin's local-LLM fleet — Ollama serve + qwen2.5vl:7b vision model + BAAI/bge-m3 embeddings (Ollama + LM Studio) + bge-reranker rerank + RAGFlow KB retrieval + adjacent NAS subsystems (NocoDB / SeaFile / Wiki.js / Feishu mail). |
|
Theme 4 · Local LLM deployment (Ollama / bge-reranker / RAGFlow)
This is the synthesis page for 本地大模型部署 — Robin's local inference and retrieval layer that serves the entire agent stack documented in /themes/03-ai-agents.md. The fleet combines an Ollama serve with multimodal + embedding models, an LM Studio instance running BAAI/bge-m3, a bge-reranker rerank service, and a RAGFlow KB layer; four adjacent NAS subsystems (NocoDB / SeaFile / Wiki.js / Feishu mail) sit alongside RAGFlow and share the same daily cron health-check pipeline.
What this theme covers
- Local inference runtime: Ollama serve on the desktop (host
192.168.192.67, port11434) runningqwen2.5vl:7bfor vision andnomic-embed-text/BAAI/bge-m3for embeddings. - Local reranker: bge-reranker served on desktop port
8090. - Local embedder (LM Studio):
BAAI/bge-m3on port7997(LM Studio OpenAI-compatible API). - KB retrieval layer: RAGFlow (
http://10.10.10.254:9980) — 18 KB / 32,709 docs / 116,254 chunks as of last sync 2026-08-03. - Adjacent NAS subsystems: NocoDB (
http://10.10.10.254:8081), SeaFile (http://10.10.10.254:9898), Wiki.js (http://10.10.10.254:3000), Feishu mail (IMAP polling, awaiting Robin's IT password).
Local-LLM fleet architecture
flowchart TD
subgraph Desktop["Desktop · 192.168.192.67"]
OllamaServe["Ollama serve :11434"]
QwenV["qwen2.5vl:7b (vision)"]
NomicE["nomic-embed-text (embed)"]
LMStudio["LM Studio :7997"]
BgeM3LM["BAAI/bge-m3 (embed via LM Studio)"]
Reranker["bge-reranker :8090"]
OllamaServe --> QwenV
OllamaServe --> NomicE
LMStudio --> BgeM3LM
end
subgraph NAS["NAS · 10.10.10.254"]
RAGFlow["RAGFlow KB :9980 (18 KB / 32,709 docs)"]
NocoDB["NocoDB :8081 (13 lit tables)"]
SeaFile["SeaFile :9898 (4 repos / 77 GB)"]
WikiJS["Wiki.js :3000 (~1500 pages)"]
Feishu["Feishu mail IMAP poll (awaiting creds)"]
end
subgraph Agents["Agents (see theme 03)"]
Hermes[Hermes Agent]
MiniMaxCode[MiniMax code]
CronDaily["cron 02:30 update-sources.sh"]
end
RAGFlow -.embedding.-> OllamaServe
RAGFlow -.embedding.-> LMStudio
RAGFlow -.rerank.-> Reranker
Hermes -->|query| RAGFlow
MiniMaxCode -->|cross-query| RAGFlow
Hermes -->|metadata| NocoDB
Hermes -->|PDF retrieval| SeaFile
Hermes -->|published deep reads| WikiJS
MiniMaxCode -.future.-> Feishu
CronDaily -->|health probe| RAGFlow
CronDaily -->|count refresh| NocoDB
CronDaily -->|count refresh| SeaFile
CronDaily -->|count refresh| WikiJS
QwenV -.vision OCR.-> LDR["LDR SOP (theme 05)"]
The diagram shows the three local inference services (Ollama serve, LM Studio, bge-reranker) feeding the RAGFlow KB layer, with the four NAS subsystems (NocoDB / SeaFile / Wiki.js / Feishu mail) attached at the metadata / file / published-deep-read / IMAP layer. All three inference services and all four subsystems are probed nightly by update-sources.sh at 02:30.
Service-down incident (2026-07-17 → ongoing)
This is the dominant operational fact for the theme right now.
- Incident start: Desktop AI service on
192.168.192.67stopped responding at 2026-07-17. Affected ports:7997(LM Studio embed),8090(bge-reranker),11434(Ollama serve). All three local inference endpoints are simultaneously offline. Documented in/sources/2026-07-27-4-27-sop-vs-implementation.md§4 (Ollama visual-review degradation). - Operational impact: LDR SOP Step 4 (Ollama visual review of extracted PDF figures) cannot run — Robin's literature-deep-read pipeline falls back to human-in-the-loop visual review of SeaFile-hosted figures. Cross-agent RAGFlow queries fall back to metadata-only (NocoDB tables, Wiki.js GraphQL, SeaFile file listing) since vector retrieval depends on the embedder and reranker.
- Recovery procedure: documented at
/sources/2026-07-27-4-27-sop-vs-implementation.md§4 — Robin to runollama serve &andollama pull qwen2.5vl:7bon the desktop, then verify with theollama_visionsmoke test in the same file. - Status note: This is a watchlist item, not a
themes.mdrow, because the underlying root cause (desktop service restart) is operational not recurring. Tracked implicitly through the LDR SOP and the daily cron health probe — when RAGFlow's/api/v1/healthreturns 200 and/api/v1/datasetsreturns 401 (auth-only), the KB inventory is still readable; the dependency is on the embed/rerank services for retrieval quality.
RAGFlow KB inventory (18 KB / 32,709 docs / 116,254 chunks)
Snapshot from /sources/ragflow.md (last sync 2026-08-03T18:30:02Z, landing 200, /api/v1/health 404, /api/v1/datasets 401 — auth confirmed, retrieval path not exercised since the incident).
| KB name | Dataset ID (prefix) | Docs | Chunks | Embed model |
|---|---|---|---|---|
| 废弃库 | daa9ee226765 |
15,922 | 1,604 | nomic-embed-text@Ollama |
| Organoid1 | 8dfa438274e5 |
7,815 | 8,714 | BAAI/bge-m3@LM-Studio |
| Organoid2 | 044cdb547620 |
4,974 | 5,888 | BAAI/bge-m3@LM-Studio |
| Organoid | 3c063ce2559c |
2,514 | 30,978 | nomic-embed-text@Ollama |
| 3Brian | 06af5550559d |
454 | 19,374 | nomic-embed-text@Ollama |
| Cellink | cf973e0e559f |
340 | 26,200 | nomic-embed-text@Ollama |
| Celvivo | 1555e5b27832 |
154 | 9,027 | BAAI/bge-m3@LM-Studio |
| RAGFlow | e3203cec58ff |
128 | 1,268 | nomic-embed-text@Ollama |
| FemtoBiomed_electroporation | c97eb5606aa8 |
123 | 142 | BAAI/bge-m3@LM-Studio |
| Celvivo1 | a83244a855c2 |
90 | 4,699 | nomic-embed-text@Ollama |
| seer | 79bfa1386a26 |
81 | 3,194 | text-embedding-v4@Tongyi-Qianwen |
| cellshot | 35d3e1bc680c |
73 | 3,556 | BAAI/bge-m3@LM-Studio |
| LaminarWash | 1ccc414278d2 |
21 | 1,257 | BAAI/bge-m3@LM-Studio |
| Celvivo commercial | 922cde0880aa |
10 | 40 | BAAI/bge-m3@LM-Studio |
| Cellshot厂家 | 437d31de7a7b |
5 | 49 | BAAI/bge-m3@LM-Studio |
| huibaibio | 92604bda7aab |
3 | 107 | BAAI/bge-m3@LM-Studio |
| Organoid3 | 29d5de0a7ff5 |
1 | 57 | BAAI/bge-m3@LM-Studio |
| nanotemper | 496748f66a26 |
1 | 100 | nomic-embed-text@Ollama |
| TOTAL | — | 32,709 | 116,254 | — |
Embed-model distribution shows the migration story: earlier KBs (Organoid, 3Brain, Cellink, RAGFlow, Celvivo1, nanotemper, 废弃库) were embedded with nomic-embed-text@Ollama; later KBs (Organoid1, Organoid2, Celvivo, FemtoBiomed_electroporation, cellshot, LaminarWash, Celvivo commercial, Cellshot厂家, huibaibio, Organoid3) were embedded with BAAI/bge-m3@LM-Studio. The seer KB is the only one using a non-local embedder (text-embedding-v4@Tongyi-Qianwen). This is a real production fleet, not a single notebook.
RAGFlow 0.17 server-side cap (operational note)
/sources/ragflow-documents.md documents that RAGFlow 0.17 server-side caps /api/v1/documents to 30 docs per request and silently ignores the offset parameter. Coverage in the documents sample:
- 6 small KBs (≤30 docs): 100% coverage
- 12 large KBs (>30 docs): only first 30 sampled, no pagination possible from the API alone
- Total sample: 401 doc-name rows across 18 KBs
Workaround for full enumeration: read the KB directly through Wiki.js, NocoDB metadata, or the RAGFlow doc PDF dump under SeaFile. Documented at /sources/ragflow-documents.md header.
Adjacent NAS subsystems (one-line summaries)
Each subsystem has its own source page; the bullets below are the cross-agent query affordances.
NocoDB — metadata store
- Endpoint:
http://10.10.10.254:8081· 13 lit tables · 6,604 records (2026-07-27 snapshot;/sources/nocodb.mdlast-sync timestamp$(date -u +%Y-%m-%dT%H:%M:%SZ)is unrendered — the cron that wrote the source page left the template unfilled). - Per-table scale (last full census):
brain_organoid_literature103,intestinal_organoid_literature9,Celvivo_literature109,cardiac_organoid_literature11,cancer_organoid_literature129,liver_organoid_literature28,other_organoid_literature724,kidney_organoid_literature23,retinal_organoid_literature4,Cellink_literature2,499 (largest),organoid_literature(old) 2,777,lung_organoid_literature48,3Brain_literature147. - API quirk: Cellink library
已精读SingleSelectoptions=[](NocoDB bug) — cannot PATCH "是". Documented at/sources/2026-07-27-4-27-sop-vs-implementation.md§3. Workaround: write 精读摘要 + 精读日期 to PATCH-able fields; mark已精读 = 是via the wiki synthesis layer instead. - Cross-link:
/sources/nocodb.md
SeaFile — large-file storage
- Endpoint:
http://10.10.10.254:9898/api2/· public domainhttps://fb.biokingdom.topfor share-links · 4 repos / 77 GB total. - API quirk: port 5000 is the Web UI reverse proxy, not the API. Token auth via
Authorization: Token ***header. Share-link?dl=1suffix is required for direct download. - Daily use: LDR SOP Step 5 uploads PDF + 3 extracted figures → SeaFile → embeds
![]()markdown in Obsidian / Wiki.js / OpenWiki. Documented at/sources/ldr-report-template.md§4 and §5. - Cross-link:
/sources/seafile.md
Wiki.js — published deep-read layer
- Endpoint:
http://10.10.10.254:3000/graphql· estimated ≥ 1,648 pages (based on max page id 1633) · zh/literature subpath is the primary publishing target. - API quirk:
pages.list(limit:N)server-side caps to ~50 regardless of N; real count requires 5-orderBy union (TITLE / UPDATED / CREATED / ID / PATH) — documented at/sources/wikijs.mdheader. The "47" number from earlier 7-27 evidence is a server-side cap artifact, not the true count. - Daily use: LDR SOP Step 7 publishes deep-read reports to Wiki.js for cross-device / customer-facing reading. Maintenance is owned by
wikijs-obsidian-syncskill (Robin + LDR auto-publish). - Cross-link:
/sources/wikijs.md
Feishu mail — IMAP polling (awaiting credentials)
- Endpoint:
imap.feishu.cn:993(CN) orimap.larksuite.com:993(INTL) ·LOGINauth · 16-char app password required. - Status: script
~/.local/bin/openwiki-update-feishu-mail.shis drafted (Robin 2026-07-29 spec); cron entry*/30 * * * *is not yet incrontab. Page at/sources/feishu-mail.mdis intentionally blank pending credentials. - Operational rule (Robin 7-28): Feishu mailbox is not the same as Gmail —
openwiki auth googledoes not reach it. Feishu needs a separate IMAP credentials path through~/.openwiki_env.sh. - Cross-link:
/sources/feishu-mail.md
Daily operations
Two cron pipelines drive the local-LLM fleet:
flowchart LR
subgraph Cron1["02:00 daily · openwiki-update.sh"]
HN[Hacker News ingest]
Tavily[Tavily web search ingest]
GitRepo[git-repo ingest]
M3["M3 agent synthesis (writes /themes + /commitments)"]
end
subgraph Cron2["02:30 daily · openwiki-update-sources.sh"]
NocoDBP[NocoDB count refresh]
SeaFileP[SeaFile count refresh]
WikiJSP[Wiki.js count refresh]
RAGFlowP[RAGFlow health probe]
end
subgraph Cron3["*:30 daily · openwiki-update-feishu-mail.sh (waiting)"]
FeishuP[Feishu INBOX poll]
end
subgraph Runtime["Local inference runtime"]
OllamaEmbed["Ollama :11434 (nomic-embed-text)"]
LMStudioEmbed["LM Studio :7997 (BAAI/bge-m3)"]
RerankerSvc["bge-reranker :8090"]
end
subgraph Sink["Wiki sink"]
OpenWiki[OpenWiki (commit and push Gitea)]
end
Cron1 --> OpenWiki
Cron2 --> OpenWiki
Cron3 -.future.-> OpenWiki
RAGFlowP -.depends on.-> OllamaEmbed
RAGFlowP -.depends on.-> LMStudioEmbed
RAGFlowP -.depends on.-> RerankerSvc
The 02:00 cron pulls 3 connectors and runs M3 agent synthesis (writes to /themes/ and /commitments/). The 02:30 cron pulls counts from the 4 NAS subsystems. The 30-min Feishu cron is queued but inactive until IMAP creds land. After each cron, OpenWiki commits and pushes to the Gitea public mirror.
- Health check:
~/.local/bin/openwiki-update-sources.shprobes each NAS subsystem's API; on success the source page is rewritten; on failure the previous good state remains. - Cross-agent query: Hermes / MiniMax code reads
sources/{ragflow,nocodb,seafile,wikijs,feishu-mail}.mdto discover "what's in this system" without an SQL/GraphQL round-trip; the 4 OpenWiki bridge skills route the cross-agent queries (see/themes/03-ai-agents.md§"MiniMax code").
Cross-cutting relationship
- Consumed by
/themes/03-ai-agents.md— every Hermes / MiniMax code / Codex call depends on the local LLM fleet (Ollama / bge-reranker / RAGFlow). The 2026-07-17 desktop service-down incident is the live dependency that breaks the cross-agent workflow. - Hosts the evidence layer for
/themes/01-organoid-equipment.md,/themes/02-bioprinting.md, and/themes/05-robin-research.md— RAGFlow KBs (Celvivo / 3Brian / Cellink / Organoid1-3 / etc.) are the deep retrieval surface behind every vendor deep read; NocoDB is the metadata catalog; Wiki.js is the public publishing target. - Privacy rule (Robin 7-28): Feishu mailbox is not Gmail. The
/sources/feishu-mail.mdpage exists precisely to prevent future agents from tryingopenwiki auth googleagainst it. Permanent memory record.
Backlog for this theme
- Bring desktop AI service back up — restart
ollama serve+ollama pull qwen2.5vl:7b+ LM Studio + bge-reranker on192.168.192.67. Without this, the LDR SOP visual review step is degraded and RAGFlow vector retrieval is metadata-only. - Fix NocoDB
/sources/nocodb.mdunrendered timestamp — the page contains literal$(date -u +%Y-%m-%dT%H:%M:%SZ)in the header; needs the cron template to actually substitute the variable. Documented but not yet fixed at the source page level. - SeaFile source-page library-name template —
/sources/seafile.mdhas 6 library rows with?placeholders for ID / size / file count / last update; the upstreamupdate-sources.shis not filling them. Either fix the script or remove the table. - RAGFlow
废弃库(15,922 docs / 1,604 chunks) cleanup question — Robin 7-27 said "永久不动". Currently the largest KB by doc count but only the 4th-largest by chunk count. Surface again only if Robin changes stance; do not auto-clean. - Wiki.js ≥ 1,648 page real count — server-side cap of ~50 in
pages.list(limit:N)is a known RAGFlow 0.17-style artifact. Full enumeration requires either a Wiki.js DB-direct query or a frontend crawler. Documented as a known limitation in/sources/wikijs.md. - Feishu IMAP integration — script drafted; awaiting Robin IT to enable IMAP/SMTP and provide a 16-char app password. Once landed,
crontabadds*/30 * * * *entry and/sources/feishu-mail.mdstarts receiving real evidence rows.
What to read next
| Question | Go to |
|---|---|
| What is the RAGFlow KB inventory? | /sources/ragflow.md |
| What does each RAGFlow KB actually contain (sample docs)? | /sources/ragflow-documents.md |
| What are the 13 NocoDB lit tables? | /sources/nocodb.md |
| What is in SeaFile? | /sources/seafile.md |
| What is in Wiki.js? | /sources/wikijs.md |
| What is the Feishu mail integration status? | /sources/feishu-mail.md |
| How are the LDR PDFs and figures uploaded to SeaFile? | /sources/ldr-report-template.md §4-5 |
| What did the 7-27 SOP-vs-implementation pass reveal about the service-down incident? | /sources/2026-07-27-4-27-sop-vs-implementation.md §4 |
| What is the daily cron pipeline? | /README-ACTIVATION.md §3 |
| How does MiniMax code read this stack? | /sources/OpenWiki速查手册.md §5.8 |
| How does the agent layer depend on this fleet? | /themes/03-ai-agents.md |