mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-29 04:26:20 +00:00
Add 'Open in Colab' badges to notebooks
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
"source": [
|
||||
"# RAG vs. GraphRAG: Final Answer Comparison\n",
|
||||
"\n",
|
||||
"[](https://colab.research.google.com/github/Hawksight-AI/semantica/blob/main/cookbook/use_cases/advanced_rag/02_RAG_vs_GraphRAG_Comparison.ipynb)\n",
|
||||
"\n",
|
||||
"This notebook demonstrates the difference in final answers generated by **Standard Vector RAG** and **Semantica GraphRAG** for a complex multi-hop query. We use **FalkorDB** as our high-performance graph backend.\n",
|
||||
"\n",
|
||||
"### FalkorDB Setup\n",
|
||||
@@ -23,7 +25,7 @@
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"%pip install -qU semantica networkx matplotlib plotly pandas faiss-cpu falkordb"
|
||||
"%pip install -qU semantica networkx matplotlib plotly pandas faiss-cpu falkordb sentence-transformers"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -32,7 +34,7 @@
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1. Environment & Store Initialization\n",
|
||||
"We set up our **Vector Store** for semantic search and **FalkorDB** for persistent graph storage."
|
||||
"We set up our **Vector Store** using **Sentence-Transformers** for local embeddings and **FalkorDB** for persistent graph storage."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -42,16 +44,25 @@
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from semantica.core import Semantica\n",
|
||||
"from semantica.core import Semantica, ConfigManager\n",
|
||||
"from semantica.vector_store import VectorStore\n",
|
||||
"from semantica.graph_store import GraphStore\n",
|
||||
"from semantica.kg import GraphBuilder\n",
|
||||
"from semantica.split import TextSplitter\n",
|
||||
"from semantica.normalize import TextNormalizer\n",
|
||||
"import os\n",
|
||||
"\n",
|
||||
"# 1. Core Semantica & Vector Store\n",
|
||||
"v_core = Semantica()\n",
|
||||
"vs = VectorStore(backend=\"faiss\", dimension=1536)\n",
|
||||
"os.environ[\"GROQ_API_KEY\"] = \"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\"\n",
|
||||
"\n",
|
||||
"config_dict = {\n",
|
||||
" \"embedding\": {\"provider\": \"sentence_transformers\", \"model\": \"all-MiniLM-L6-v2\"},\n",
|
||||
" \"extraction\": {\"provider\": \"groq\", \"model\": \"llama-3.1-8b-instant\"},\n",
|
||||
" \"inference\": {\"provider\": \"groq\", \"model\": \"llama-3.1-70b-versatile\"}\n",
|
||||
"}\n",
|
||||
"config = ConfigManager().load_from_dict(config_dict)\n",
|
||||
"v_core = Semantica(config=config)\n",
|
||||
"vs = VectorStore(backend=\"faiss\", dimension=384)\n",
|
||||
"\n",
|
||||
"# 2. FalkorDB Persistent Graph Store\n",
|
||||
"graph_store = GraphStore(\n",
|
||||
@@ -70,7 +81,7 @@
|
||||
" use_persistent = False\n",
|
||||
"\n",
|
||||
"# 3. Graph Builder with Persistence Support\n",
|
||||
"gb = GraphBuilder(merge_entities=True, graph_store=graph_store if use_persistent else None)\n",
|
||||
"gb = GraphBuilder(merge_entities=True, resolve_conflicts=True, graph_store=graph_store if use_persistent else None)\n",
|
||||
"splitter = TextSplitter(method=\"recursive\", chunk_size=800, chunk_overlap=100)\n",
|
||||
"normalizer = TextNormalizer()"
|
||||
]
|
||||
@@ -150,13 +161,14 @@
|
||||
"duplicates = detector.detect_duplicates(kg['entities'])\n",
|
||||
"kg_refined = merger.merge_entities(kg, duplicates)\n",
|
||||
"\n",
|
||||
"# 2. Conflict Resolution\n",
|
||||
"# 2. Conflict Detection\n",
|
||||
"conflict_detector = ConflictDetector()\n",
|
||||
"conflicts = conflict_detector.detect_conflicts(kg_refined['entities'])\n",
|
||||
"conflicts = conflict_detector.detect_value_conflicts(kg_refined['entities'], property_name=\"name\")\n",
|
||||
"if conflicts:\n",
|
||||
" print(f\"Detected {len(conflicts)} property conflicts.\")\n",
|
||||
" resolver = ConflictResolver()\n",
|
||||
" for conflict in conflicts:\n",
|
||||
" kg_refined = resolver.resolve_conflict(conflict, strategy=\"credibility_weighted\")\n",
|
||||
" results = resolver.resolve_conflicts(conflicts, strategy=\"voting\")\n",
|
||||
" print(f\"Successfully resolved {len(results)} conflicts.\")\n",
|
||||
"\n",
|
||||
"print(\"Knowledge Graph Refined.\")"
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user