<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vishnu K</title>
    <description>The latest articles on DEV Community by Vishnu K (@vishnukdev).</description>
    <link>https://dev.to/vishnukdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3931822%2F2c692efe-69d0-4fd7-a25f-b3531a5cdde7.png</url>
      <title>DEV Community: Vishnu K</title>
      <link>https://dev.to/vishnukdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vishnukdev"/>
    <language>en</language>
    <item>
      <title>Your RAG Pipeline Is Bleeding Tokens. We Cut 86% Without Losing Accuracy.</title>
      <dc:creator>Vishnu K</dc:creator>
      <pubDate>Wed, 03 Jun 2026 10:29:35 +0000</pubDate>
      <link>https://dev.to/vishnukdev/your-rag-pipeline-is-bleeding-tokens-we-cut-86-without-losing-accuracy-46bo</link>
      <guid>https://dev.to/vishnukdev/your-rag-pipeline-is-bleeding-tokens-we-cut-86-without-losing-accuracy-46bo</guid>
      <description>&lt;p&gt;We were sending ~10,000 tokens per query to the LLM. We got it down to ~1,500 — and got &lt;em&gt;more&lt;/em&gt; accurate doing it. Here's what we changed, and why flat vector search is the wrong tool for relational data.&lt;/p&gt;

&lt;p&gt;We mapped a &lt;strong&gt;158M-token synthetic CRM&lt;/strong&gt; into TigerGraph, ran 3 pipelines head-to-head on &lt;strong&gt;90 questions&lt;/strong&gt;, and &lt;strong&gt;GraphRAG answered 87/90 (96.7%)&lt;/strong&gt; while a well-resourced &lt;strong&gt;BasicRAG managed 64/90 (71.1%)&lt;/strong&gt; — at &lt;strong&gt;86% fewer tokens&lt;/strong&gt; and &lt;strong&gt;17.5% lower latency&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with flat vector search on CRM data
&lt;/h2&gt;

&lt;p&gt;Ask &lt;em&gt;"How many customers were impacted by OUTAGE-001 through their shared vendor and region?"&lt;/em&gt; — there's no single chunk that answers it. The answer spans multiple hops:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Outage → Region → Vendor → Customers&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;BasicRAG embeds the question and returns chunks ranked by surface similarity. It has no concept of "customers sharing &lt;em&gt;this&lt;/em&gt; vendor &lt;em&gt;and&lt;/em&gt; this region." That's structural, not a tuning gap — flat search treats relational data like a document store. It isn't one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The honest test:&lt;/strong&gt; we gave BasicRAG the relevant documents for every question. It &lt;em&gt;still&lt;/em&gt; capped at 71.1% — the failures aren't about coverage, they're about reasoning across relationships.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we built
&lt;/h2&gt;

&lt;p&gt;Three pipelines on a TigerGraph knowledge graph:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pipeline&lt;/th&gt;
&lt;th&gt;Retrieval&lt;/th&gt;
&lt;th&gt;Avg Tokens&lt;/th&gt;
&lt;th&gt;Accuracy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LLM-Only&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;~14&lt;/td&gt;
&lt;td&gt;3.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BasicRAG&lt;/td&gt;
&lt;td&gt;Cosine similarity&lt;/td&gt;
&lt;td&gt;~10,867&lt;/td&gt;
&lt;td&gt;71.1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GraphRAG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;HNSW seed + GSQL traversal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~1,483&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;96.7%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same LLM (&lt;strong&gt;Gemini 2.5 Flash&lt;/strong&gt;). Same 90 questions. Same data. Only retrieval changes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The graph
&lt;/h2&gt;

&lt;p&gt;158M tokens of CRM-native data across 100,820 documents — customers, vendors, outages, regions, employees, tickets, compliance cases, projects, all interlinked. Re-chunked and embedded into &lt;strong&gt;577,175 vector chunks&lt;/strong&gt; with TigerGraph's native HNSW index — &lt;strong&gt;1.58× the hackathon's 100M-token minimum&lt;/strong&gt; (measured via Gemini &lt;code&gt;count_tokens&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  How retrieval works
&lt;/h2&gt;

&lt;p&gt;GraphRAG embeds the question, finds seed chunks via TigerGraph's &lt;strong&gt;native HNSW vector search&lt;/strong&gt;, traverses typed relationships to pull only the connected context, then reranks to the most relevant. The LLM gets a focused ~1,483-token brief, not a 10K-token wall.&lt;/p&gt;

&lt;h2&gt;
  
  
  The evaluation (we were paranoid about grading our own homework)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generator:&lt;/strong&gt; Gemini 2.5 Flash — every answer, same model for all 3 pipelines&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judge:&lt;/strong&gt; Groq Llama 3.1 8B — independent, scores PASS/FAIL blind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic eval:&lt;/strong&gt; canonical HuggingFace &lt;code&gt;bert_score&lt;/code&gt; (roberta-large, &lt;code&gt;rescale_with_baseline=True&lt;/code&gt;) → &lt;strong&gt;F1 raw 0.932 / rescaled 0.599&lt;/strong&gt; — clears both bonus bars (≥0.88 raw, ≥0.55 rescaled)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The numbers that mattered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;96.7% vs 71.1%&lt;/strong&gt; — a 25-point gap on identical data + LLM, purely from retrieval method&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;86.4% fewer tokens&lt;/strong&gt; (1,483 vs 10,867) — the cost story; at scale, the difference between a product and a runaway bill&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;17.5% faster&lt;/strong&gt; (7.5s vs 9.1s) — traversal is a targeted lookup; BasicRAG pays to embed and rank a large context every query&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The honest version of the TigerGraph setup
&lt;/h2&gt;

&lt;p&gt;Community Edition via Docker. Two real learning curves: &lt;strong&gt;infrastructure&lt;/strong&gt; — an unclean shutdown mid-embedding corrupted the graph store once, so we learned to snapshot &lt;code&gt;gstore&lt;/code&gt; immediately after embedding and before evaluation; and &lt;strong&gt;GSQL&lt;/strong&gt; — multi-hop queries and accumulators took time to click, but then ran in milliseconds locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we'd do differently
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tune the hybrid HNSW + graph pipeline (hop depth per query type)&lt;/li&gt;
&lt;li&gt;200 eval questions instead of 90 to tighten confidence intervals&lt;/li&gt;
&lt;li&gt;TigerGraph Savanna (cloud) over local Docker to skip infra debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Graph DB&lt;/td&gt;
&lt;td&gt;TigerGraph Community Edition (Docker)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;GSQL multi-hop + native HNSW + REST++&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Embeddings&lt;/td&gt;
&lt;td&gt;Google &lt;code&gt;gemini-embedding-001&lt;/code&gt; (768-dim)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM (all pipelines)&lt;/td&gt;
&lt;td&gt;Gemini 2.5 Flash&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Judge&lt;/td&gt;
&lt;td&gt;Groq Llama 3.1 8B&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Semantic eval&lt;/td&gt;
&lt;td&gt;HuggingFace &lt;code&gt;bert_score&lt;/code&gt; (roberta-large)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Fastify + Node 20 + TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard&lt;/td&gt;
&lt;td&gt;crm-nexus-team-brocode.vercel.app&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;GitHub → github.com/vishnu-k-dev/crm-nexus&lt;/p&gt;

&lt;p&gt;Built for the &lt;strong&gt;TigerGraph GraphRAG Inference Hackathon 2026&lt;/strong&gt; — Team BroCode (Vishnu K &amp;amp; Revanth M)&lt;/p&gt;

&lt;h1&gt;
  
  
  TigerGraph #GraphRAG #GraphDatabase #LLM #Hackathon #RAG
&lt;/h1&gt;

</description>
      <category>tigergraph</category>
      <category>graphrag</category>
      <category>graphdatabase</category>
      <category>rag</category>
    </item>
    <item>
      <title>Your RAG Pipeline Is Bleeding Money. Here's How We Fixed It.</title>
      <dc:creator>Vishnu K</dc:creator>
      <pubDate>Thu, 14 May 2026 18:54:12 +0000</pubDate>
      <link>https://dev.to/vishnukdev/how-we-beat-basicrag-by-725-building-graphrag-on-tigergraph-for-a-crm-knowledge-graph-3kg3</link>
      <guid>https://dev.to/vishnukdev/how-we-beat-basicrag-by-725-building-graphrag-on-tigergraph-for-a-crm-knowledge-graph-3kg3</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllbvaple1ntpostjca9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fllbvaple1ntpostjca9y.png" alt=" " width="800" height="381"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;We were paying for 2,124 tokens per query. We got it down to 584.&lt;/strong&gt; Here's what we changed — and why BasicRAG is the wrong tool for relational data.&lt;/p&gt;

&lt;p&gt;We mapped a 2.69M-token synthetic CRM dataset into TigerGraph, ran 3 pipelines head-to-head on 36 questions, and GraphRAG answered 35/36 at 97.2% accuracy while BasicRAG managed 14/36. Here's how we built it and what we learned.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Problem with Flat Vector Search on CRM Data
&lt;/h2&gt;

&lt;p&gt;When someone asks &lt;em&gt;"What is Pinnacle Enterprises' renewal risk?"&lt;/em&gt; — there's no single chunk of text that answers that. The answer lives across three graph hops:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Customer → Deals → Deal Owner → Territory
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;BasicRAG embeds the question, runs cosine similarity against 2,124 tokens of raw text, and returns chunks that don't mention "Pinnacle" at all. It answered &lt;strong&gt;14 out of 36&lt;/strong&gt; questions correctly.&lt;/p&gt;

&lt;p&gt;This is the core insight we built CRM Nexus around: &lt;strong&gt;CRM data is inherently relational. Flat vector search treats it like a document store. It isn't one.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8yqrgax1ya7pitu7bkn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8yqrgax1ya7pitu7bkn.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What We Built
&lt;/h2&gt;

&lt;p&gt;CRM Nexus is a three-pipeline inference system sitting on top of a TigerGraph knowledge graph:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Pipeline&lt;/th&gt;
&lt;th&gt;Retrieval&lt;/th&gt;
&lt;th&gt;Avg Tokens&lt;/th&gt;
&lt;th&gt;Accuracy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LLM-Only&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;~50&lt;/td&gt;
&lt;td&gt;8.3%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BasicRAG&lt;/td&gt;
&lt;td&gt;Cosine similarity&lt;/td&gt;
&lt;td&gt;~2,124&lt;/td&gt;
&lt;td&gt;38.9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GraphRAG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;GSQL 3-hop traversal&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~584&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;97.2%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Same LLM (Llama 3.3 70B via Groq). Same 36 questions. Only retrieval changes.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Graph
&lt;/h2&gt;

&lt;p&gt;21,318 vertices. 48,201 edges. 2.69M tokens of synthetic CRM data:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;7,500 Deals (stage, value, owner, close date)&lt;/li&gt;
&lt;li&gt;6,000 Customers (health score, ARR, NPS, renewal date)&lt;/li&gt;
&lt;li&gt;4,318 Employees (role, department, skills)&lt;/li&gt;
&lt;li&gt;5 Products with competitors and roadmap&lt;/li&gt;
&lt;li&gt;5 Departments with Q4 goals&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every record is CRM-native — no Wikipedia articles, no generic text. Designed to expose flat vector search failures on relational queries.&lt;/p&gt;




&lt;h2&gt;
  
  
  The GSQL Query That Powers It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE QUERY getRelevantContext(STRING entity_name) FOR GRAPH CRM {
  Start = {Customer.*};

  Matched = SELECT c FROM Start:c
            WHERE c.name LIKE "%" + entity_name + "%";

  Deals = SELECT d FROM Matched:c -(OWNS)-&amp;gt; Deal:d;

  Owners = SELECT e FROM Deals:d -(MANAGED_BY)-&amp;gt; Employee:e;

  PRINT Matched, Deals, Owners;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;3 hops. 584 tokens returned. The LLM gets exactly what it needs — not a wall of text.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzjqdm8tcypdwwx07msr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffzjqdm8tcypdwwx07msr.png" alt=" " width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The TigerGraph Setup (Honest Version)
&lt;/h2&gt;

&lt;p&gt;We ran TigerGraph Community Edition via Docker. First attempt — REST++ calls timed out because port 9000 wasn't exposed correctly in our docker-compose config. Spent a few hours on that before it was obvious it was a port mapping issue, not TigerGraph itself.&lt;/p&gt;

&lt;p&gt;The bigger learning curve was GSQL. Different enough from SQL that our first multi-hop queries threw compile errors we didn't understand. Once we grasped how &lt;strong&gt;accumulators&lt;/strong&gt; work — thread-safe variables that aggregate across parallel traversals — everything clicked. The 3-hop query took about a day to write correctly, but once it ran it was consistently under 200ms on a 48K-edge local graph.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfigho255kcf0wgnkzfm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcfigho255kcf0wgnkzfm.png" alt=" " width="800" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Evaluation Setup
&lt;/h2&gt;

&lt;p&gt;We were paranoid about grading our own homework. So:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Generator:&lt;/strong&gt; Llama 3.3 70B (Groq) — produces the answer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Judge:&lt;/strong&gt; Llama 4 Scout 17B (&lt;code&gt;meta-llama/llama-4-scout-17b-16e-instruct&lt;/code&gt;) — independent, scores PASS/FAIL per question&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic eval:&lt;/strong&gt; BERTScore F1 with &lt;code&gt;rescale_with_baseline=True&lt;/code&gt; → &lt;strong&gt;0.94&lt;/strong&gt; (target ≥ 0.55 ✓)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The judge never knows which pipeline produced which answer. Outputs evaluated blind.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Numbers That Surprised Us
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;BasicRAG failed on entity-specific questions&lt;/strong&gt; — not because of bad embeddings, but because CRM entities like "Acme Corp" or "LoneStar" don't appear in enough text chunks to surface via cosine similarity. They live in structured records. BasicRAG was flying blind on 14 of 36 questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;72.5% token reduction&lt;/strong&gt; meant cost per query dropped from ₹0.125 (BasicRAG) to ₹0.049 (GraphRAG) — 61% cheaper, while being more accurate.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;87.4% faster&lt;/strong&gt; — 9.9s average vs 78.5s. BasicRAG's latency came from embedding and ranking 15 chunks. Graph traversal is a targeted lookup.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Live Dashboard
&lt;/h2&gt;

&lt;p&gt;Static site (vanilla HTML/CSS/JS, zero build step) deployed on Vercel. Shows graph traversal hop-by-hop in real time — watch the query walk Customer → Deal → Employee as it resolves.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Live:&lt;/strong&gt; &lt;a href="https://crm-nexus-team-brocode.vercel.app" rel="noopener noreferrer"&gt;crm-nexus-team-brocode.vercel.app&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/vishnu-k-dev/crm-nexus" rel="noopener noreferrer"&gt;github.com/vishnu-k-dev/crm-nexus&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What We'd Do Differently
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tune the hybrid HNSW + graph pipeline&lt;/strong&gt; — vector seed first, then traversal. We implemented it but didn't have time to optimize.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;More eval questions&lt;/strong&gt; — 36 proves the pattern, 100 would tighten confidence intervals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TigerGraph Cloud over local Docker&lt;/strong&gt; — eliminates infra debugging entirely.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Graph DB&lt;/td&gt;
&lt;td&gt;TigerGraph Community Edition (Docker)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Queries&lt;/td&gt;
&lt;td&gt;GSQL multi-hop + REST++ API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Embeddings&lt;/td&gt;
&lt;td&gt;Jina AI jina-embeddings-v2-base-en (768-dim)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM&lt;/td&gt;
&lt;td&gt;Llama 3.3 70B via Groq&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Judge&lt;/td&gt;
&lt;td&gt;Llama 4 Scout 17B via Groq&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API&lt;/td&gt;
&lt;td&gt;Fastify + Node 20 + TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dashboard&lt;/td&gt;
&lt;td&gt;Vanilla HTML/CSS/JS on Vercel&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;&lt;em&gt;Built for the TigerGraph GraphRAG Inference Hackathon 2026 — Team BroCode (Vishnu K &amp;amp; Revanth M)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tags: &lt;code&gt;#TigerGraph&lt;/code&gt; &lt;code&gt;#GraphRAG&lt;/code&gt; &lt;code&gt;#GraphDatabase&lt;/code&gt; &lt;code&gt;#LLM&lt;/code&gt; &lt;code&gt;#Hackathon&lt;/code&gt; &lt;code&gt;#RAG&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>tigergraph</category>
      <category>graphrag</category>
      <category>graphdatabase</category>
      <category>rag</category>
    </item>
  </channel>
</rss>
