gusdelact commited on
Commit
7689f43
·
verified ·
1 Parent(s): 7cc80ef

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. README.md +69 -7
  2. app.py +29 -0
  3. requirements.txt +4 -0
README.md CHANGED
@@ -1,13 +1,75 @@
1
  ---
2
- title: Rag Books Mcp V2
3
- emoji: 🐨
4
- colorFrom: gray
5
- colorTo: yellow
6
  sdk: gradio
7
- sdk_version: 6.14.0
8
- python_version: '3.13'
9
  app_file: app.py
10
  pinned: false
 
 
 
 
 
 
 
11
  ---
12
 
13
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ title: RAG Books MCP v2 (ESL + ISLP)
3
+ emoji: 📖
4
+ colorFrom: indigo
5
+ colorTo: purple
6
  sdk: gradio
7
+ sdk_version: 5.50.0
 
8
  app_file: app.py
9
  pinned: false
10
+ license: apache-2.0
11
+ short_description: MCP v2 RAG ESL+ISLP. ChromaDB desde dataset HF.
12
+ tags:
13
+ - mcp-server-track
14
+ - rag
15
+ - statistical-learning
16
+ - chromadb
17
  ---
18
 
19
+ # 📖 RAG Books MCP v2 — ESL + ISLP
20
+
21
+ Igual que v1 en funcionalidad, distinto en arquitectura:
22
+
23
+ - **v1:** la base ChromaDB se empaqueta en el Space.
24
+ - **v2:** la base ChromaDB se carga del dataset HF
25
+ [`gusdelact/rag-esl-islp-chromadb`](https://huggingface.co/datasets/gusdelact/rag-esl-islp-chromadb)
26
+ vía `snapshot_download`. La primera tool call descarga ~40 MB; las
27
+ siguientes son cache hit.
28
+
29
+ ## Endpoint MCP
30
+
31
+ ```
32
+ https://<usuario>-<space-name>.hf.space/gradio_api/mcp/
33
+ ```
34
+
35
+ ## Conexión desde un cliente MCP
36
+
37
+ ```jsonc
38
+ {
39
+ "mcpServers": {
40
+ "rag-books-mcp-v2": {
41
+ "command": "npx",
42
+ "args": [
43
+ "-y",
44
+ "mcp-remote",
45
+ "https://<usuario>-<space-name>.hf.space/gradio_api/mcp/"
46
+ ]
47
+ }
48
+ }
49
+ }
50
+ ```
51
+
52
+ ## Variables de entorno reconocidas
53
+
54
+ | Variable | Default | Descripción |
55
+ |---|---|---|
56
+ | `RAG_CHROMA_DATASET` | `gusdelact/rag-esl-islp-chromadb` | Repo del dataset con la base ChromaDB. |
57
+ | `RAG_CHROMA_REVISION` | `main` | Revision (branch/tag/commit) a descargar. |
58
+ | `RAG_CHROMA_CACHE_DIR` | `/data/chroma_db` (si existe `/data`) o `~/.cache/...` | Cache local de la descarga. |
59
+ | `RAG_CHROMA_DIR` | — | Si está set y la carpeta existe, omite el download. |
60
+ | `HF_TOKEN` | — | Solo si el dataset es privado. |
61
+
62
+ ## Tools
63
+
64
+ | Tool | Descripción |
65
+ |------|-------------|
66
+ | `search_theory(query, book, top_k)` | Búsqueda semántica en ambos libros. |
67
+ | `get_section(book, chapter, section, max_chunks)` | Sección específica por referencia. |
68
+ | `cite_foundation(topic, detail_level)` | Fundamentación citando ambos libros. |
69
+ | `list_available_topics()` | Lista capítulos y secciones indexados. |
70
+
71
+ ## Stack
72
+
73
+ - **Embeddings:** `sentence-transformers/all-MiniLM-L6-v2` (local, sin API key).
74
+ - **Vector store:** ChromaDB descargado de HF Hub.
75
+ - **UI / MCP:** Gradio con `mcp_server=True`.
app.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ Punto de entrada del HF Space v2.
3
+
4
+ Estructura esperada en el Space (tras `deploy_to_hf_space.py`):
5
+
6
+ .
7
+ ├── app.py # este archivo
8
+ ├── requirements.txt
9
+ ├── README.md # YAML frontmatter del Space
10
+ └── rag_books_mcp/ # paquete con tools, server, app
11
+
12
+ La base ChromaDB NO se incluye en el Space. Se descarga vía
13
+ huggingface_hub.snapshot_download del dataset configurado por la variable
14
+ de entorno RAG_CHROMA_DATASET (default: gusdelact/rag-esl-islp-chromadb).
15
+ """
16
+
17
+ import sys
18
+ from pathlib import Path
19
+
20
+ HERE = Path(__file__).resolve().parent
21
+ if str(HERE) not in sys.path:
22
+ sys.path.insert(0, str(HERE))
23
+
24
+ from rag_books_mcp.app import build_demo # noqa: E402
25
+
26
+
27
+ if __name__ == "__main__":
28
+ demo = build_demo()
29
+ demo.launch(mcp_server=True, server_name="0.0.0.0")
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ gradio[mcp]>=5.50.0,<6
2
+ chromadb>=0.5.0
3
+ sentence-transformers>=2.2.0
4
+ huggingface_hub>=0.24.0