MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Dr. Voluminous: The Digital Archives of Dr. John Gill
Translation pending
MediaPython · TypeScriptGitHub @edgy-solutionsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Dr. Voluminous: The Digital Archives of Dr. John Gill Documentation Guide Welcome to the Goat Yard Archive repository for John Gill's Exposition of the Entire Bible! We have compartmentalized our internal logic documentation to best serve autonomous AI agents and standard developers alike: • 🤖 AI Context: Read llms.txt to discover the architectural blueprint. • 🚦 Agent Guardrails: Read AGENTS.md for explicit safety limits and the full pipeline ingestion runbook. • ⌨️ Coding Standards: Read .cursorrules for our standard tech stack protocols.Read the full README ↗
Welcome to the Goat Yard Archive repository for John Gill's Exposition of the Entire Bible! We have compartmentalized our internal logic documentation to best serve autonomous AI agents and standard developers alike:
llms.txt to discover the architectural blueprint.AGENTS.md for explicit safety limits and the full pipeline ingestion runbook..cursorrules for our standard tech stack protocols.This system uses a Retrieval-Augmented Generation (RAG) pipeline to provide grounded, theological answers based on the writings of Dr. John Gill. The backend assumes the persona of an 18th-century contemporary to maintain tonal consistency.
User Inquiry
Vector Search & Retrieval (Weaviate)
TheologicalEntity collection in Weaviate.CommentaryChunk collection in Weaviate.
LLM Generation (DSPy)
[GEN_46_06_S01]) so the model can cite exact sentences rather than just the whole page.deepseek-chat via OpenRouter) is prompted with a specific DSPy Signature (GillSignature). It is instructed to:
[GEN_46_06_S01]) for every claim.Verification (The Critic)
GroundedGillBot module parses the model's output to ensure citations match the expected Sentence ID format (e.g., [GEN_46_06_S01]).verified: true and returned to the user.graph TD
User([User Query]) --> API[FastAPI /search Endpoint];
subgraph "Retrieval Engine (gill_search.py)"
API --> Analysis{Query Analysis};
Analysis -->|Extract| Entity[Entity Lookup];
Analysis -->|Parse| Verse[Verse Regex];
Entity --> Hybrid[Weaviate Hybrid Search];
Verse --> Hybrid;
Analysis -->|Raw Query| Hybrid;
Hybrid -->|Top 5 Chunks| Chunks[(Commentary Chunks)];
end
subgraph "Generation (bot.py)"
Chunks --> Formatter[Context Formatter];
Formatter -->|Context + Query| DSPy[DSPy Module];
DSPy -->|Prompt| LLM["LLM (DeepSeek-Chat)"];
LLM -->|Answer + Citations| Prediction[Raw Prediction];
end
subgraph "Verification"
Prediction --> Critic[GroundedGillBot Critic];
Critic -->|Verify Citations exist in Context| Check{Valid?};
Check -->|Yes| Verified[Verified Response];
Check -->|No| Error[Unverified / Error];
end
Verified --> Client[Frontend UI];
The system relies on a sophisticated ingestion pipeline to transform raw OCR text into a structured, searchable knowledge graph.
The database consists of two primary collections that form a Knowledge Graph:
CommentaryChunk (The Content)Stores the actual text of the commentary, sliced by Bible verse.
content (Text): The commentary text for a specific verse.verse_ref (Text): Canonical reference, e.g., "MATTHEW 7:27".scan_json (JSON): Coordinates specifying where this text appears in the original physical books (Volume, Page, X/Y boxes) for UI highlighting.sentence_data (JSON, index=False): Array of sentence objects ({sentence_id, text, index}) enabling precise citations (e.g., GEN_46_06_S01).mentions_entity (Cross-Reference): A graph link to TheologicalEntity objects mentioned in this chunk.footnotes (Array): Extracted footnotes resolved from the bottom of the page back to their context.TheologicalEntity (The Graph Nodes)Represents people, places, and concepts to enable "Graph-RAG" (Graph-Augmented Retrieval).
name: The entity name (e.g., "Aben Ezra"). Vectorized for semantic search.description: Short BAML-extracted context. Vectorized for semantic grounding.category: The type of entity (e.g., "BiblicalFigure"). Uses Field Tokenization.biblical_era: (Disambiguation) e.g., "OldTestament" vs "NewTestament".role: (Disambiguation) e.g., "Patriarch" vs "Husband of Mary".normalized_name: Unique ID seed. For ambiguous names (Joseph, Mary), this is combined with Era/Role to generate distinct nodes (e.g., JOSEPH_OT_PATRIARCH vs JOSEPH_NT_HUSBAND).The scripts/ingest.py and normalize_markdown.py scripts handle the transformation:
Normalization (LLM-based)
normalize_markdown.py) to fix 18th-century formatting errors (e.g., specific "Lemma" headers like Ver. 6.) while strictly preserving Hebrew/Greek text.Verse Alignment (Fuzzy Matching)
rapidfuzz to locate the exact start and end of every Bible verse within the continuous commentary text.Graph Construction (BAML)
TheologicalEntity.CommentaryChunk is then linked to these entities, creating a traversable graph (e.g., "Find all commentary mentioning Gamaliel").The ingestion pipeline is orchestrated via Dagster, which manages complex dependencies and parallel execution across the commentary dataset.
The pipeline uses a Multi-Partition approach to handle the scale of the 9-volume collection:
extract_images step. This allows the pipeline to adapt to varying page counts across volumes without manual configuration.The system supports two distinct vectorization backends for generating embeddings:
Client-Side GPU (Ollama) - Default:
ingest.py) generates embeddings locally via a qwen3-embedding model running in an Ollama pod.USE_CLIENT_SIDE_VECTORIZATION=true (default).Server-Side CPU (Transformers) - Fallback:
text2vec-transformers module.USE_CLIENT_SIDE_VECTORIZATION=false.To protect the local infrastructure and stay within OpenRouter API quotas, global concurrency limits are enforced:
openrouter Pool: High-cost LLM nodes (like read_images_baml and normalize_markdown) are tagged with the openrouter concurrency key.dagster.yaml configures a global limit of 5 concurrent tasks for this pool. This prevents Dagster from launching hundreds of simultaneous API calls, maintaining stability even when processing an entire volume.To run the pipeline locally, you must ensure Dagster can securely find its configuration mapping on boot by sourcing your local directory path as the DAGSTER_HOME:
# Windows PowerShell
$env:DAGSTER_HOME = $PWD
uv run dagster dev
# Bash
export DAGSTER_HOME=$(pwd)
uv run dagster dev
Once running, you can access the Dagster UI at http://localhost:3000 to visualize the asset graph, monitor partition status, and trigger backfills for specific volumes.
Note: In addition to ingestion, Dagster globally orchestrates the generation of kjv_fast_lookup.json (via build_kjv_fast_lookup_global), and subsequently targets the synchronization of only the active volume Frontend image assets cleanly into MinIO remote buckets (via upload_to_minio).