Add 'Open in Colab' badges to notebooks

This commit is contained in:
KaifAhmad1
2025-12-22 21:59:05 +05:30
parent fcd61772b2
commit 995c1f27eb
@@ -7,6 +7,8 @@
"source": [
"# RAG vs. GraphRAG: Final Answer Comparison\n",
"\n",
"[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](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.\")"
]