2026-04-10 04:59:36 -05:00
/ * *
* Seed demo data — populates FalkorDB + Qdrant with a rich AI industry
* knowledge graph for compelling demos .
*
* Seeds directly into the databases ( no NATS / pipeline required ) .
*
* Prerequisites :
* - FalkorDB running on port 6380 ( or FALKORDB_URL )
* - Qdrant running on port 6333 ( or QDRANT_URL )
* - Ollama running on port 11434 ( or OLLAMA_URL ) with mxbai - embed - large
*
* Usage :
* pnpm seed :demo # seed everything
* FALKORDB_URL = redis : //localhost:6380 pnpm seed:demo
*
* Also seeds config via the gateway if it ' s running .
* /
import { createClient , Graph } from "falkordb" ;
// ---------------------------------------------------------------------------
// Config
// ---------------------------------------------------------------------------
const FALKORDB_URL = process . env . FALKORDB_URL ? ? "redis://localhost:6380" ;
const QDRANT_URL = process . env . QDRANT_URL ? ? "http://localhost:6333" ;
const OLLAMA_URL = process . env . OLLAMA_URL ? ? "http://localhost:11434" ;
const GATEWAY_URL = process . env . GATEWAY_URL ? ? "http://localhost:8088" ;
const EMBED_MODEL = process . env . EMBED_MODEL ? ? "mxbai-embed-large" ;
const USER = "default" ;
const COLLECTION = "default" ;
const DATABASE = "falkordb" ;
// ---------------------------------------------------------------------------
// Types
// ---------------------------------------------------------------------------
interface RawTriple {
s : string ;
p : string ;
o : string ;
/** true if object is another entity (Node), false if it's a literal value */
oIsEntity : boolean ;
}
// ---------------------------------------------------------------------------
// Demo Knowledge Graph — AI Industry
// ---------------------------------------------------------------------------
function buildTriples ( ) : RawTriple [ ] {
const t : RawTriple [ ] = [ ] ;
const entity = ( s : string , p : string , o : string ) = >
t . push ( { s , p , o , oIsEntity : true } ) ;
const literal = ( s : string , p : string , o : string ) = >
t . push ( { s , p , o , oIsEntity : false } ) ;
// ── Companies ──────────────────────────────────────────────────────────
literal ( "OpenAI" , "is a" , "artificial intelligence research company" ) ;
literal ( "OpenAI" , "was founded in" , "2015" ) ;
literal ( "OpenAI" , "is headquartered in" , "San Francisco, California" ) ;
entity ( "OpenAI" , "develops" , "GPT-4" ) ;
entity ( "OpenAI" , "develops" , "GPT-4o" ) ;
entity ( "OpenAI" , "develops" , "DALL-E 3" ) ;
entity ( "OpenAI" , "develops" , "ChatGPT" ) ;
entity ( "OpenAI" , "was co-founded by" , "Sam Altman" ) ;
entity ( "OpenAI" , "was co-founded by" , "Elon Musk" ) ;
entity ( "OpenAI" , "was co-founded by" , "Ilya Sutskever" ) ;
entity ( "OpenAI" , "received major investment from" , "Microsoft" ) ;
entity ( "OpenAI" , "uses technique" , "RLHF" ) ;
literal ( "OpenAI" , "mission is" , "to ensure AGI benefits all of humanity" ) ;
literal ( "Anthropic" , "is a" , "AI safety company" ) ;
literal ( "Anthropic" , "was founded in" , "2021" ) ;
literal ( "Anthropic" , "is headquartered in" , "San Francisco, California" ) ;
entity ( "Anthropic" , "develops" , "Claude 3" ) ;
entity ( "Anthropic" , "develops" , "Claude 4" ) ;
entity ( "Anthropic" , "was founded by" , "Dario Amodei" ) ;
entity ( "Anthropic" , "was founded by" , "Daniela Amodei" ) ;
entity ( "Anthropic" , "uses technique" , "Constitutional AI" ) ;
entity ( "Anthropic" , "received investment from" , "Google" ) ;
entity ( "Anthropic" , "received investment from" , "Amazon" ) ;
literal ( "Anthropic" , "focuses on" , "AI safety and alignment research" ) ;
literal ( "Anthropic" , "valuation exceeds" , "$60 billion as of 2024" ) ;
literal ( "Google DeepMind" , "is a" , "artificial intelligence research laboratory" ) ;
literal ( "Google DeepMind" , "was founded in" , "2010" ) ;
literal ( "Google DeepMind" , "is headquartered in" , "London, United Kingdom" ) ;
entity ( "Google DeepMind" , "develops" , "Gemini" ) ;
entity ( "Google DeepMind" , "develops" , "AlphaFold" ) ;
entity ( "Google DeepMind" , "develops" , "AlphaGo" ) ;
entity ( "Google DeepMind" , "is led by" , "Demis Hassabis" ) ;
entity ( "Google DeepMind" , "is a subsidiary of" , "Google" ) ;
literal ( "Google DeepMind" , "pioneered" , "reinforcement learning for games and science" ) ;
literal ( "Google DeepMind" , "won" , "breakthrough in protein structure prediction" ) ;
literal ( "Meta AI" , "is a" , "AI research division of Meta Platforms" ) ;
entity ( "Meta AI" , "is a division of" , "Meta Platforms" ) ;
literal ( "Meta AI" , "is headquartered in" , "Menlo Park, California" ) ;
entity ( "Meta AI" , "develops" , "Llama 3" ) ;
entity ( "Meta AI" , "chief AI scientist is" , "Yann LeCun" ) ;
literal ( "Meta AI" , "strategy is" , "open-source AI development" ) ;
entity ( "Meta AI" , "open-sourced" , "Llama 3" ) ;
literal ( "NVIDIA" , "is a" , "semiconductor and AI computing company" ) ;
literal ( "NVIDIA" , "was founded in" , "1993" ) ;
literal ( "NVIDIA" , "is headquartered in" , "Santa Clara, California" ) ;
entity ( "NVIDIA" , "CEO is" , "Jensen Huang" ) ;
entity ( "NVIDIA" , "manufactures" , "H100 GPU" ) ;
entity ( "NVIDIA" , "manufactures" , "A100 GPU" ) ;
entity ( "NVIDIA" , "manufactures" , "B200 GPU" ) ;
entity ( "NVIDIA" , "developed" , "CUDA" ) ;
literal ( "NVIDIA" , "dominates" , "AI training hardware market with over 80% market share" ) ;
literal ( "NVIDIA" , "market capitalization exceeded" , "$3 trillion in 2024" ) ;
literal ( "Microsoft" , "is a" , "technology company" ) ;
literal ( "Microsoft" , "was founded in" , "1975" ) ;
literal ( "Microsoft" , "is headquartered in" , "Redmond, Washington" ) ;
entity ( "Microsoft" , "CEO is" , "Satya Nadella" ) ;
entity ( "Microsoft" , "invested $13 billion in" , "OpenAI" ) ;
entity ( "Microsoft" , "develops" , "Azure AI" ) ;
entity ( "Microsoft" , "develops" , "Copilot" ) ;
entity ( "Microsoft" , "integrated GPT-4 into" , "Bing" ) ;
literal ( "Microsoft" , "cloud platform is" , "Microsoft Azure" ) ;
literal ( "Mistral AI" , "is a" , "French artificial intelligence company" ) ;
literal ( "Mistral AI" , "was founded in" , "2023" ) ;
literal ( "Mistral AI" , "is headquartered in" , "Paris, France" ) ;
entity ( "Mistral AI" , "was founded by" , "Arthur Mensch" ) ;
entity ( "Mistral AI" , "develops" , "Mixtral" ) ;
entity ( "Mistral AI" , "develops" , "Mistral Large" ) ;
entity ( "Mistral AI" , "uses technique" , "Mixture of Experts" ) ;
literal ( "Mistral AI" , "strategy is" , "open-weight European AI development" ) ;
literal ( "xAI" , "is a" , "artificial intelligence company" ) ;
literal ( "xAI" , "was founded in" , "2023" ) ;
literal ( "xAI" , "is headquartered in" , "Austin, Texas" ) ;
entity ( "xAI" , "was founded by" , "Elon Musk" ) ;
entity ( "xAI" , "develops" , "Grok" ) ;
literal ( "xAI" , "built" , "the largest GPU training cluster called Colossus" ) ;
literal ( "Stability AI" , "is a" , "generative AI company" ) ;
literal ( "Stability AI" , "was founded in" , "2019" ) ;
literal ( "Stability AI" , "is headquartered in" , "London, United Kingdom" ) ;
entity ( "Stability AI" , "develops" , "Stable Diffusion" ) ;
entity ( "Stability AI" , "uses technique" , "Diffusion Models" ) ;
literal ( "Stability AI" , "focuses on" , "open-source image generation" ) ;
literal ( "Cohere" , "is a" , "enterprise AI company" ) ;
literal ( "Cohere" , "was founded in" , "2019" ) ;
literal ( "Cohere" , "is headquartered in" , "Toronto, Canada" ) ;
entity ( "Cohere" , "develops" , "Command R+" ) ;
literal ( "Cohere" , "specializes in" , "enterprise search and RAG applications" ) ;
// ── People ─────────────────────────────────────────────────────────────
entity ( "Sam Altman" , "is CEO of" , "OpenAI" ) ;
literal ( "Sam Altman" , "previously led" , "Y Combinator" ) ;
literal ( "Sam Altman" , "was briefly fired and reinstated as CEO in" , "November 2023" ) ;
entity ( "Dario Amodei" , "is CEO of" , "Anthropic" ) ;
entity ( "Dario Amodei" , "previously worked at" , "OpenAI" ) ;
literal ( "Dario Amodei" , "led" , "the AI safety team at OpenAI before founding Anthropic" ) ;
entity ( "Daniela Amodei" , "is President of" , "Anthropic" ) ;
entity ( "Daniela Amodei" , "previously worked at" , "OpenAI" ) ;
entity ( "Demis Hassabis" , "is CEO of" , "Google DeepMind" ) ;
literal ( "Demis Hassabis" , "won" , "Nobel Prize in Chemistry 2024 for AlphaFold" ) ;
literal ( "Demis Hassabis" , "background includes" , "neuroscience and game design" ) ;
entity ( "Yann LeCun" , "is Chief AI Scientist at" , "Meta" ) ;
literal ( "Yann LeCun" , "is known for" , "pioneering convolutional neural networks" ) ;
literal ( "Yann LeCun" , "won" , "Turing Award in 2018 alongside Hinton and Bengio" ) ;
literal ( "Yann LeCun" , "advocates for" , "open-source AI and self-supervised learning" ) ;
entity ( "Jensen Huang" , "is CEO and co-founder of" , "NVIDIA" ) ;
literal ( "Jensen Huang" , "co-founded NVIDIA in" , "1993" ) ;
literal ( "Jensen Huang" , "is known for" , "leather jacket keynotes and GPU computing vision" ) ;
entity ( "Satya Nadella" , "is CEO of" , "Microsoft" ) ;
literal ( "Satya Nadella" , "championed" , "the strategic partnership with OpenAI" ) ;
entity ( "Elon Musk" , "co-founded" , "OpenAI" ) ;
entity ( "Elon Musk" , "founded" , "xAI" ) ;
entity ( "Elon Musk" , "is CEO of" , "Tesla" ) ;
entity ( "Elon Musk" , "is CEO of" , "SpaceX" ) ;
literal ( "Elon Musk" , "departed from" , "OpenAI board in 2018" ) ;
entity ( "Ilya Sutskever" , "co-founded" , "OpenAI" ) ;
entity ( "Ilya Sutskever" , "founded" , "Safe Superintelligence Inc" ) ;
literal ( "Ilya Sutskever" , "is known for" , "key contributions to deep learning and sequence-to-sequence models" ) ;
entity ( "Arthur Mensch" , "is CEO of" , "Mistral AI" ) ;
entity ( "Arthur Mensch" , "previously worked at" , "Google DeepMind" ) ;
entity ( "Geoffrey Hinton" , "is known as" , "the Godfather of AI" ) ;
literal ( "Geoffrey Hinton" , "won" , "Nobel Prize in Physics 2024 for neural network foundations" ) ;
literal ( "Geoffrey Hinton" , "won" , "Turing Award in 2018" ) ;
literal ( "Geoffrey Hinton" , "has warned about" , "existential risks from advanced AI" ) ;
// ── AI Models ──────────────────────────────────────────────────────────
entity ( "GPT-4" , "was developed by" , "OpenAI" ) ;
literal ( "GPT-4" , "is a" , "large language model" ) ;
literal ( "GPT-4" , "was released in" , "March 2023" ) ;
literal ( "GPT-4" , "supports" , "text and image input (multimodal)" ) ;
entity ( "GPT-4" , "uses architecture" , "Transformer" ) ;
entity ( "GPT-4o" , "was developed by" , "OpenAI" ) ;
literal ( "GPT-4o" , "is a" , "natively multimodal AI model" ) ;
literal ( "GPT-4o" , "was released in" , "May 2024" ) ;
literal ( "GPT-4o" , "supports" , "text, image, and audio in a unified model" ) ;
entity ( "ChatGPT" , "is powered by" , "GPT-4" ) ;
entity ( "ChatGPT" , "was created by" , "OpenAI" ) ;
literal ( "ChatGPT" , "launched in" , "November 2022" ) ;
literal ( "ChatGPT" , "reached" , "100 million users in 2 months, fastest growing app in history" ) ;
entity ( "Claude 3" , "was developed by" , "Anthropic" ) ;
literal ( "Claude 3" , "is a" , "large language model family (Haiku, Sonnet, Opus)" ) ;
literal ( "Claude 3" , "was released in" , "March 2024" ) ;
entity ( "Claude 3" , "was trained using" , "Constitutional AI" ) ;
entity ( "Claude 4" , "was developed by" , "Anthropic" ) ;
literal ( "Claude 4" , "is a" , "large language model with extended thinking capabilities" ) ;
literal ( "Claude 4" , "was released in" , "2025" ) ;
literal ( "Claude 4" , "features" , "extended thinking and agentic coding abilities" ) ;
entity ( "Gemini" , "was developed by" , "Google DeepMind" ) ;
literal ( "Gemini" , "is a" , "natively multimodal AI model" ) ;
literal ( "Gemini" , "was released in" , "December 2023" ) ;
literal ( "Gemini" , "supports" , "text, image, video, audio, and code" ) ;
literal ( "Gemini" , "comes in variants" , "Nano, Flash, Pro, and Ultra" ) ;
entity ( "AlphaFold" , "was developed by" , "Google DeepMind" ) ;
literal ( "AlphaFold" , "is a" , "protein structure prediction system" ) ;
literal ( "AlphaFold" , "predicted structures for" , "over 200 million proteins" ) ;
literal ( "AlphaFold" , "won" , "CASP14 competition in 2020" ) ;
literal ( "AlphaFold" , "revolutionized" , "structural biology and drug discovery" ) ;
entity ( "AlphaGo" , "was developed by" , "Google DeepMind" ) ;
literal ( "AlphaGo" , "is a" , "Go-playing AI system" ) ;
literal ( "AlphaGo" , "defeated" , "world champion Lee Sedol in 2016" ) ;
literal ( "AlphaGo" , "demonstrated" , "superhuman performance in the ancient game of Go" ) ;
entity ( "Llama 3" , "was developed by" , "Meta AI" ) ;
literal ( "Llama 3" , "is a" , "open-source large language model" ) ;
literal ( "Llama 3" , "was released in" , "April 2024" ) ;
literal ( "Llama 3" , "is available in" , "8B and 70B parameter versions" ) ;
literal ( "Llama 3" , "license allows" , "commercial use with acceptable use policy" ) ;
entity ( "Mixtral" , "was developed by" , "Mistral AI" ) ;
literal ( "Mixtral" , "is a" , "sparse mixture-of-experts language model" ) ;
entity ( "Mixtral" , "uses architecture" , "Mixture of Experts" ) ;
literal ( "Mixtral" , "is licensed as" , "open-weight under Apache 2.0" ) ;
literal ( "Mixtral" , "activates" , "only 2 of 8 expert networks per token" ) ;
entity ( "DALL-E 3" , "was developed by" , "OpenAI" ) ;
literal ( "DALL-E 3" , "is a" , "text-to-image generation model" ) ;
entity ( "DALL-E 3" , "uses technique" , "Diffusion Models" ) ;
literal ( "DALL-E 3" , "is integrated into" , "ChatGPT for image generation" ) ;
entity ( "Stable Diffusion" , "was developed by" , "Stability AI" ) ;
literal ( "Stable Diffusion" , "is a" , "open-source text-to-image generation model" ) ;
entity ( "Stable Diffusion" , "uses technique" , "Diffusion Models" ) ;
literal ( "Stable Diffusion" , "runs on" , "consumer GPUs unlike many competitors" ) ;
entity ( "Grok" , "was developed by" , "xAI" ) ;
literal ( "Grok" , "is a" , "large language model" ) ;
literal ( "Grok" , "has access to" , "real-time data from X (formerly Twitter)" ) ;
entity ( "Command R+" , "was developed by" , "Cohere" ) ;
literal ( "Command R+" , "is a" , "enterprise-focused language model optimized for RAG" ) ;
literal ( "Command R+" , "excels at" , "retrieval-augmented generation and tool use" ) ;
entity ( "Copilot" , "was developed by" , "Microsoft" ) ;
literal ( "Copilot" , "is a" , "AI-powered coding and productivity assistant" ) ;
entity ( "Copilot" , "is powered by" , "GPT-4" ) ;
literal ( "Copilot" , "is integrated into" , "Windows, Office 365, and GitHub" ) ;
// ── Technologies & Concepts ────────────────────────────────────────────
literal ( "Transformer" , "was introduced in" , "2017 in the paper 'Attention Is All You Need'" ) ;
entity ( "Transformer" , "was invented at" , "Google Research" ) ;
literal ( "Transformer" , "is the foundation of" , "modern large language models" ) ;
literal ( "Transformer" , "key innovation is" , "the self-attention mechanism" ) ;
literal ( "Transformer" , "replaced" , "recurrent neural networks for sequence modeling" ) ;
literal ( "RLHF" , "stands for" , "Reinforcement Learning from Human Feedback" ) ;
entity ( "RLHF" , "is used by" , "OpenAI" ) ;
entity ( "RLHF" , "is used by" , "Anthropic" ) ;
literal ( "RLHF" , "purpose is" , "aligning AI outputs with human preferences" ) ;
literal ( "RLHF" , "involves" , "training a reward model on human preference data" ) ;
entity ( "Constitutional AI" , "was developed by" , "Anthropic" ) ;
literal ( "Constitutional AI" , "is a" , "AI alignment technique" ) ;
literal ( "Constitutional AI" , "uses" , "a set of principles for AI self-critique and revision" ) ;
literal ( "Constitutional AI" , "reduces need for" , "human feedback labeling" ) ;
literal ( "Mixture of Experts" , "is a" , "neural network architecture pattern" ) ;
entity ( "Mixture of Experts" , "is used by" , "Mistral AI" ) ;
literal ( "Mixture of Experts" , "advantage is" , "scaling model capacity without proportional compute cost" ) ;
literal ( "Mixture of Experts" , "works by" , "routing each input to a subset of specialized sub-networks" ) ;
entity ( "CUDA" , "was developed by" , "NVIDIA" ) ;
literal ( "CUDA" , "is a" , "parallel computing platform and programming model" ) ;
literal ( "CUDA" , "enables" , "GPU-accelerated computing for AI and scientific workloads" ) ;
literal ( "CUDA" , "created a" , "dominant ecosystem lock-in for NVIDIA GPUs in AI" ) ;
entity ( "H100 GPU" , "was manufactured by" , "NVIDIA" ) ;
literal ( "H100 GPU" , "is a" , "data center GPU designed for AI training and inference" ) ;
literal ( "H100 GPU" , "uses" , "Hopper architecture with 80 GB HBM3 memory" ) ;
literal ( "H100 GPU" , "costs approximately" , "$30,000-$40,000 per unit" ) ;
literal ( "H100 GPU" , "is in" , "extremely high demand for AI training clusters" ) ;
entity ( "A100 GPU" , "was manufactured by" , "NVIDIA" ) ;
literal ( "A100 GPU" , "is a" , "data center GPU for AI and high-performance computing" ) ;
literal ( "A100 GPU" , "uses" , "Ampere architecture" ) ;
entity ( "B200 GPU" , "was manufactured by" , "NVIDIA" ) ;
literal ( "B200 GPU" , "is a" , "next-generation AI GPU using Blackwell architecture" ) ;
literal ( "B200 GPU" , "delivers" , "significantly improved AI inference performance" ) ;
literal ( "Diffusion Models" , "are a class of" , "generative AI models" ) ;
literal ( "Diffusion Models" , "work by" , "learning to reverse a noise-adding process" ) ;
literal ( "Diffusion Models" , "are used for" , "image, video, and audio generation" ) ;
entity ( "Diffusion Models" , "are used in" , "DALL-E 3" ) ;
entity ( "Diffusion Models" , "are used in" , "Stable Diffusion" ) ;
// ── AI Safety & Governance ─────────────────────────────────────────────
entity ( "AI Safety" , "is a focus area of" , "Anthropic" ) ;
entity ( "AI Safety" , "is researched by" , "Google DeepMind" ) ;
feat: fix RAG pipelines, Beep Graph branding, PWA, and ambient glow UI
Pipeline fixes:
- Fix agent getting empty response from graph-rag by combining answer +
explain data in single message (RequestResponse returns first msg)
- Fix Doc RAG pipeline: add content field to Qdrant doc payload, seed 10
document chunks, fix type mismatches across base/flow/client
- Forward explainability events from agent's KnowledgeQuery to client
- Add "agent" to TERM_BEARING_RESPONSE_SERVICES for triple translation
- Fix embeddings env var (OLLAMA_URL), user/collection threading, edge
scoring threshold, and various protocol mismatches
Branding:
- Rename TrustGraph → Beep Graph (title, sidebar, settings, about)
- Custom lambda + ThugLife pixel glasses SVG logo component
- Forest green color palette (brand-50 through brand-900)
- SVG favicon + PNG icons (16/32/180/192/512)
- PWA manifest with service worker for offline shell caching
- Splash screen with animated logo pulse on app load
- Ambient glow background with drifting green radial blobs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 10:19:10 -05:00
entity ( "AI Safety" , "is researched by" , "OpenAI" ) ;
2026-04-10 04:59:36 -05:00
literal ( "AI Safety" , "concerns include" , "alignment, misuse, and existential risk" ) ;
feat: fix RAG pipelines, Beep Graph branding, PWA, and ambient glow UI
Pipeline fixes:
- Fix agent getting empty response from graph-rag by combining answer +
explain data in single message (RequestResponse returns first msg)
- Fix Doc RAG pipeline: add content field to Qdrant doc payload, seed 10
document chunks, fix type mismatches across base/flow/client
- Forward explainability events from agent's KnowledgeQuery to client
- Add "agent" to TERM_BEARING_RESPONSE_SERVICES for triple translation
- Fix embeddings env var (OLLAMA_URL), user/collection threading, edge
scoring threshold, and various protocol mismatches
Branding:
- Rename TrustGraph → Beep Graph (title, sidebar, settings, about)
- Custom lambda + ThugLife pixel glasses SVG logo component
- Forest green color palette (brand-50 through brand-900)
- SVG favicon + PNG icons (16/32/180/192/512)
- PWA manifest with service worker for offline shell caching
- Splash screen with animated logo pulse on app load
- Ambient glow background with drifting green radial blobs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 10:19:10 -05:00
literal ( "AI Safety" , "approaches include" , "RLHF, Constitutional AI, interpretability, and red-teaming" ) ;
2026-04-10 04:59:36 -05:00
entity ( "AI Safety" , "advocate includes" , "Geoffrey Hinton" ) ;
feat: fix RAG pipelines, Beep Graph branding, PWA, and ambient glow UI
Pipeline fixes:
- Fix agent getting empty response from graph-rag by combining answer +
explain data in single message (RequestResponse returns first msg)
- Fix Doc RAG pipeline: add content field to Qdrant doc payload, seed 10
document chunks, fix type mismatches across base/flow/client
- Forward explainability events from agent's KnowledgeQuery to client
- Add "agent" to TERM_BEARING_RESPONSE_SERVICES for triple translation
- Fix embeddings env var (OLLAMA_URL), user/collection threading, edge
scoring threshold, and various protocol mismatches
Branding:
- Rename TrustGraph → Beep Graph (title, sidebar, settings, about)
- Custom lambda + ThugLife pixel glasses SVG logo component
- Forest green color palette (brand-50 through brand-900)
- SVG favicon + PNG icons (16/32/180/192/512)
- PWA manifest with service worker for offline shell caching
- Splash screen with animated logo pulse on app load
- Ambient glow background with drifting green radial blobs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 10:19:10 -05:00
entity ( "AI Safety" , "advocate includes" , "Dario Amodei" ) ;
entity ( "AI Safety" , "advocate includes" , "Ilya Sutskever" ) ;
// Anthropic's AI Safety approach (detailed)
entity ( "Anthropic" , "practices" , "AI Safety" ) ;
entity ( "Anthropic" , "developed technique" , "Constitutional AI" ) ;
entity ( "Anthropic" , "developed technique" , "Interpretability Research" ) ;
entity ( "Anthropic" , "developed technique" , "Red Teaming" ) ;
entity ( "Anthropic" , "published" , "Responsible Scaling Policy" ) ;
literal ( "Anthropic" , "AI safety approach is" , "training AI to be helpful, harmless, and honest through Constitutional AI and RLHF" ) ;
literal ( "Anthropic" , "conducts" , "mechanistic interpretability research to understand neural network internals" ) ;
entity ( "Dario Amodei" , "advocates for" , "AI Safety" ) ;
literal ( "Dario Amodei" , "approach to AI safety is" , "responsible scaling with clear capability thresholds and safety evaluations" ) ;
entity ( "Daniela Amodei" , "advocates for" , "AI Safety" ) ;
literal ( "Daniela Amodei" , "focuses on" , "building safety-focused organizational culture at Anthropic" ) ;
// OpenAI's AI Safety approach (detailed)
entity ( "OpenAI" , "practices" , "AI Safety" ) ;
entity ( "OpenAI" , "developed technique" , "RLHF" ) ;
entity ( "OpenAI" , "developed technique" , "Red Teaming" ) ;
entity ( "OpenAI" , "developed technique" , "Iterative Deployment" ) ;
entity ( "OpenAI" , "established" , "Preparedness Framework" ) ;
literal ( "OpenAI" , "AI safety approach is" , "iterative deployment with extensive red-teaming and RLHF alignment" ) ;
literal ( "OpenAI" , "conducts" , "external red-team evaluations before major model releases" ) ;
entity ( "Sam Altman" , "advocates for" , "AI Safety" ) ;
literal ( "Sam Altman" , "approach to AI safety is" , "gradual deployment to learn from real-world feedback while maintaining safety guardrails" ) ;
entity ( "Ilya Sutskever" , "advocated for" , "AI Safety" ) ;
literal ( "Ilya Sutskever" , "left OpenAI to found" , "Safe Superintelligence Inc focused entirely on safe superintelligence" ) ;
// DeepMind's AI Safety approach
entity ( "Google DeepMind" , "practices" , "AI Safety" ) ;
entity ( "Google DeepMind" , "developed technique" , "Scalable Oversight" ) ;
entity ( "Google DeepMind" , "developed technique" , "Reward Modeling" ) ;
literal ( "Google DeepMind" , "AI safety approach is" , "formal verification, reward modeling, and scalable oversight techniques" ) ;
entity ( "Demis Hassabis" , "advocates for" , "AI Safety" ) ;
literal ( "Demis Hassabis" , "approach to AI safety is" , "ensuring AI systems are robustly beneficial through scientific rigor" ) ;
// Safety techniques (detailed)
literal ( "Constitutional AI" , "works by" , "having AI critique and revise its own outputs according to a set of constitutional principles" ) ;
literal ( "Constitutional AI" , "advantage is" , "reducing reliance on human feedback while maintaining alignment" ) ;
literal ( "Constitutional AI" , "was introduced in" , "2022 by Anthropic researchers" ) ;
literal ( "RLHF" , "works by" , "collecting human preference data, training a reward model, and optimizing the language model via reinforcement learning" ) ;
literal ( "RLHF" , "limitation is" , "scalability of human feedback collection and reward hacking" ) ;
literal ( "RLHF" , "was pioneered by" , "OpenAI and used in ChatGPT, InstructGPT" ) ;
literal ( "Interpretability Research" , "is a" , "field studying how neural networks represent and process information internally" ) ;
entity ( "Interpretability Research" , "is led by" , "Anthropic" ) ;
literal ( "Interpretability Research" , "uses techniques like" , "sparse autoencoders, activation patching, and circuit analysis" ) ;
literal ( "Interpretability Research" , "goal is" , "understanding AI decision-making to detect and prevent harmful behaviors" ) ;
literal ( "Red Teaming" , "is a" , "security practice of adversarially testing AI systems to find vulnerabilities and harmful outputs" ) ;
entity ( "Red Teaming" , "is used by" , "OpenAI" ) ;
entity ( "Red Teaming" , "is used by" , "Anthropic" ) ;
entity ( "Red Teaming" , "is used by" , "Google DeepMind" ) ;
literal ( "Red Teaming" , "involves" , "external experts attempting to elicit harmful, biased, or dangerous responses" ) ;
literal ( "Iterative Deployment" , "is a" , "strategy of gradually releasing AI systems to learn from real-world use" ) ;
entity ( "Iterative Deployment" , "is practiced by" , "OpenAI" ) ;
literal ( "Iterative Deployment" , "advantage is" , "building societal understanding and adaptation alongside AI capabilities" ) ;
literal ( "Scalable Oversight" , "is a" , "research area focused on maintaining human oversight as AI systems become more capable" ) ;
entity ( "Scalable Oversight" , "is researched by" , "Google DeepMind" ) ;
literal ( "Scalable Oversight" , "includes techniques like" , "debate, recursive reward modeling, and amplification" ) ;
literal ( "Responsible Scaling Policy" , "is a" , "framework published by Anthropic for scaling AI capabilities safely" ) ;
literal ( "Responsible Scaling Policy" , "defines" , "AI Safety Levels (ASLs) with capability thresholds and required safeguards" ) ;
entity ( "Responsible Scaling Policy" , "was published by" , "Anthropic" ) ;
literal ( "Preparedness Framework" , "is a" , "framework published by OpenAI for tracking and mitigating catastrophic risks" ) ;
literal ( "Preparedness Framework" , "evaluates risks in" , "cybersecurity, biological threats, persuasion, and model autonomy" ) ;
entity ( "Preparedness Framework" , "was published by" , "OpenAI" ) ;
entity ( "Safe Superintelligence Inc" , "was founded by" , "Ilya Sutskever" ) ;
literal ( "Safe Superintelligence Inc" , "is a" , "company focused solely on building safe superintelligent AI" ) ;
literal ( "Safe Superintelligence Inc" , "was founded in" , "2024" ) ;
literal ( "Safe Superintelligence Inc" , "approach is" , "pursuing safety and capabilities in tandem, insulated from commercial pressures" ) ;
2026-04-10 04:59:36 -05:00
literal ( "Artificial General Intelligence" , "is defined as" , "AI that matches or exceeds human-level intelligence across domains" ) ;
entity ( "Artificial General Intelligence" , "is pursued by" , "OpenAI" ) ;
literal ( "Artificial General Intelligence" , "timeline estimates range from" , "2027 to never, depending on the researcher" ) ;
literal ( "Artificial General Intelligence" , "is debated as" , "both the greatest opportunity and risk of AI development" ) ;
// ── Locations & Ecosystem ──────────────────────────────────────────────
literal ( "San Francisco, California" , "is home to" , "the highest concentration of AI companies globally" ) ;
entity ( "San Francisco, California" , "hosts headquarters of" , "OpenAI" ) ;
entity ( "San Francisco, California" , "hosts headquarters of" , "Anthropic" ) ;
literal ( "London, United Kingdom" , "is a major hub for" , "AI research in Europe" ) ;
entity ( "London, United Kingdom" , "hosts headquarters of" , "Google DeepMind" ) ;
literal ( "Paris, France" , "is emerging as" , "a European AI powerhouse" ) ;
entity ( "Paris, France" , "hosts headquarters of" , "Mistral AI" ) ;
// ── Industry Relationships ─────────────────────────────────────────────
entity ( "Google" , "is parent company of" , "Google DeepMind" ) ;
entity ( "Google" , "invested in" , "Anthropic" ) ;
entity ( "Google Research" , "invented" , "Transformer" ) ;
literal ( "Google" , "competes with" , "Microsoft and OpenAI in AI cloud services" ) ;
entity ( "Amazon" , "invested in" , "Anthropic" ) ;
literal ( "Amazon" , "investment in Anthropic totals" , "up to $4 billion" ) ;
entity ( "Amazon" , "offers" , "Amazon Bedrock" ) ;
literal ( "Amazon Bedrock" , "is a" , "managed service for accessing foundation models" ) ;
entity ( "Meta Platforms" , "operates" , "Meta AI" ) ;
literal ( "Meta Platforms" , "strategy emphasizes" , "open-source AI to counter closed-model competitors" ) ;
entity ( "Azure AI" , "is part of" , "Microsoft" ) ;
literal ( "Azure AI" , "provides" , "cloud-based AI services including OpenAI model access" ) ;
entity ( "Tesla" , "uses AI for" , "autonomous driving (Full Self-Driving)" ) ;
entity ( "Tesla" , "CEO is" , "Elon Musk" ) ;
literal ( "Tesla" , "trains AI on" , "custom Dojo supercomputer and NVIDIA GPUs" ) ;
entity ( "SpaceX" , "CEO is" , "Elon Musk" ) ;
literal ( "SpaceX" , "is a" , "space exploration and satellite internet company" ) ;
return t ;
}
// ---------------------------------------------------------------------------
// All unique entities (subjects and entity-objects) for embedding
// ---------------------------------------------------------------------------
function collectEntities ( triples : RawTriple [ ] ) : string [ ] {
const entities = new Set < string > ( ) ;
for ( const t of triples ) {
entities . add ( t . s ) ;
if ( t . oIsEntity ) {
entities . add ( t . o ) ;
}
}
return [ . . . entities ] . sort ( ) ;
}
// ---------------------------------------------------------------------------
// Connectivity checks
// ---------------------------------------------------------------------------
async function checkFalkorDB ( ) : Promise < boolean > {
try {
const client = createClient ( { url : FALKORDB_URL } ) ;
await client . connect ( ) ;
await client . ping ( ) ;
await client . disconnect ( ) ;
return true ;
} catch {
return false ;
}
}
async function checkQdrant ( ) : Promise < boolean > {
try {
const res = await fetch ( ` ${ QDRANT_URL } /collections ` , { signal : AbortSignal.timeout ( 3000 ) } ) ;
return res . ok ;
} catch {
return false ;
}
}
async function checkOllama ( ) : Promise < boolean > {
try {
const res = await fetch ( ` ${ OLLAMA_URL } /api/tags ` , { signal : AbortSignal.timeout ( 3000 ) } ) ;
return res . ok ;
} catch {
return false ;
}
}
async function checkGateway ( ) : Promise < boolean > {
try {
const res = await fetch ( ` ${ GATEWAY_URL } /api/v1/metrics ` , { signal : AbortSignal.timeout ( 3000 ) } ) ;
return res . ok ;
} catch {
return false ;
}
}
// ---------------------------------------------------------------------------
// FalkorDB seeding
// ---------------------------------------------------------------------------
async function seedFalkorDB ( triples : RawTriple [ ] ) : Promise < void > {
const client = createClient ( { url : FALKORDB_URL } ) ;
await client . connect ( ) ;
const graph = new Graph ( client , DATABASE ) ;
let nodeCount = 0 ;
let literalCount = 0 ;
let relCount = 0 ;
for ( const t of triples ) {
// Create subject node
await graph . query (
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})" ,
{ params : { uri : t.s , user : USER , collection : COLLECTION } } ,
) ;
nodeCount ++ ;
if ( t . oIsEntity ) {
// Object is an entity → create Node + Rel→Node
await graph . query (
"MERGE (n:Node {uri: $uri, user: $user, collection: $collection})" ,
{ params : { uri : t.o , user : USER , collection : COLLECTION } } ,
) ;
nodeCount ++ ;
await graph . query (
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) " +
"MATCH (dest:Node {uri: $dest, user: $user, collection: $collection}) " +
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)" ,
{ params : { src : t.s , dest : t.o , uri : t.p , user : USER , collection : COLLECTION } } ,
) ;
} else {
// Object is a literal value
await graph . query (
"MERGE (n:Literal {value: $value, user: $user, collection: $collection})" ,
{ params : { value : t.o , user : USER , collection : COLLECTION } } ,
) ;
literalCount ++ ;
await graph . query (
"MATCH (src:Node {uri: $src, user: $user, collection: $collection}) " +
"MATCH (dest:Literal {value: $dest, user: $user, collection: $collection}) " +
"MERGE (src)-[:Rel {uri: $uri, user: $user, collection: $collection}]->(dest)" ,
{ params : { src : t.s , dest : t.o , uri : t.p , user : USER , collection : COLLECTION } } ,
) ;
}
relCount ++ ;
}
await client . disconnect ( ) ;
console . log (
` FalkorDB: ${ relCount } relationships, ` +
` ${ nodeCount } node merges, ${ literalCount } literal merges ` ,
) ;
}
// ---------------------------------------------------------------------------
// Ollama embeddings
// ---------------------------------------------------------------------------
async function embed ( texts : string [ ] ) : Promise < number [ ] [ ] > {
const res = await fetch ( ` ${ OLLAMA_URL } /api/embed ` , {
method : "POST" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( { model : EMBED_MODEL , input : texts } ) ,
} ) ;
if ( ! res . ok ) {
const body = await res . text ( ) ;
throw new Error ( ` Ollama embed failed ( ${ res . status } ): ${ body } ` ) ;
}
const data = ( await res . json ( ) ) as { embeddings : number [ ] [ ] } ;
return data . embeddings ;
}
feat: fix RAG pipelines, Beep Graph branding, PWA, and ambient glow UI
Pipeline fixes:
- Fix agent getting empty response from graph-rag by combining answer +
explain data in single message (RequestResponse returns first msg)
- Fix Doc RAG pipeline: add content field to Qdrant doc payload, seed 10
document chunks, fix type mismatches across base/flow/client
- Forward explainability events from agent's KnowledgeQuery to client
- Add "agent" to TERM_BEARING_RESPONSE_SERVICES for triple translation
- Fix embeddings env var (OLLAMA_URL), user/collection threading, edge
scoring threshold, and various protocol mismatches
Branding:
- Rename TrustGraph → Beep Graph (title, sidebar, settings, about)
- Custom lambda + ThugLife pixel glasses SVG logo component
- Forest green color palette (brand-50 through brand-900)
- SVG favicon + PNG icons (16/32/180/192/512)
- PWA manifest with service worker for offline shell caching
- Splash screen with animated logo pulse on app load
- Ambient glow background with drifting green radial blobs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 10:19:10 -05:00
// ---------------------------------------------------------------------------
// Document chunks for Doc RAG
// ---------------------------------------------------------------------------
const DOCUMENT_CHUNKS : Array < { id : string ; content : string } > = [
{
id : "chunk-constitutional-ai-1" ,
content :
"Constitutional AI (CAI) is an AI alignment technique developed by Anthropic in 2022. " +
"It works by having AI systems critique and revise their own outputs according to a set of " +
"constitutional principles, reducing the need for human feedback labeling. The technique " +
"uses a two-phase approach: first, the AI generates and self-critiques responses using " +
"constitutional principles; second, it trains on the revised outputs using reinforcement " +
"learning from AI feedback (RLAIF) rather than human feedback." ,
} ,
{
id : "chunk-constitutional-ai-2" ,
content :
"The key advantage of Constitutional AI is that it reduces reliance on human feedback while " +
"maintaining alignment with human values. The constitutional principles can include rules " +
"about helpfulness, harmlessness, and honesty. Anthropic published the Constitutional AI " +
"paper to demonstrate that AI systems can be made safer through self-supervision guided " +
"by explicit principles, rather than requiring massive amounts of human feedback data." ,
} ,
{
id : "chunk-rlhf-1" ,
content :
"Reinforcement Learning from Human Feedback (RLHF) is a technique for training AI models " +
"to follow human preferences. It was pioneered by OpenAI and used to train models like " +
"ChatGPT and InstructGPT. The process involves three steps: first, a language model is " +
"pre-trained on a large corpus; second, human evaluators rank model outputs to create a " +
"reward model; third, the language model is fine-tuned using reinforcement learning with " +
"the reward model providing the training signal." ,
} ,
{
id : "chunk-transformer-1" ,
content :
"The Transformer architecture was introduced in the 2017 paper 'Attention Is All You Need' " +
"by researchers at Google Brain. It revolutionized natural language processing by replacing " +
"recurrent neural networks with self-attention mechanisms, enabling much more efficient " +
"parallel processing. Key innovations include multi-head attention, positional encoding, " +
"and the encoder-decoder structure. The Transformer forms the foundation of modern LLMs " +
"including GPT, Claude, Gemini, and LLaMA." ,
} ,
{
id : "chunk-openai-1" ,
content :
"OpenAI was founded in December 2015 as a non-profit AI research lab by Sam Altman, " +
"Elon Musk, Greg Brockman, Ilya Sutskever, Wojciech Zaremba, and John Schulman. " +
"The organization was created with the mission of ensuring that artificial general " +
"intelligence benefits all of humanity. In 2019, OpenAI transitioned to a 'capped-profit' " +
"model to attract the capital needed for large-scale AI research. OpenAI is headquartered " +
"in San Francisco and is best known for developing the GPT series of language models." ,
} ,
{
id : "chunk-anthropic-1" ,
content :
"Anthropic was founded in 2021 by Dario Amodei and Daniela Amodei, along with several " +
"former OpenAI researchers. The company focuses on AI safety research and develops the " +
"Claude family of large language models. Anthropic is headquartered in San Francisco " +
"and has raised significant funding from investors including Google and Spark Capital. " +
"The company's research focuses on interpretability, Constitutional AI, and developing " +
"methods to make AI systems more reliable and aligned with human values." ,
} ,
{
id : "chunk-ai-safety-1" ,
content :
"AI safety encompasses research and practices aimed at ensuring artificial intelligence " +
"systems operate as intended without causing unintended harm. Key areas include alignment " +
"(ensuring AI goals match human values), interpretability (understanding how AI makes " +
"decisions), robustness (maintaining performance under distribution shift), and red " +
"teaming (adversarial testing to find vulnerabilities). Organizations like Anthropic, " +
"OpenAI, Google DeepMind, and the Center for AI Safety are major contributors to " +
"AI safety research." ,
} ,
{
id : "chunk-gpu-ai-1" ,
content :
"NVIDIA's A100 and H100 GPUs are the dominant hardware for AI training and inference. " +
"The A100, based on the Ampere architecture, delivers up to 312 TFLOPS of FP16 " +
"performance. The H100, based on the Hopper architecture released in 2022, offers " +
"roughly 3x the AI training performance of the A100. These GPUs are used by major " +
"AI labs including OpenAI, Anthropic, Google DeepMind, and Meta AI for training " +
"large language models and other AI systems." ,
} ,
{
id : "chunk-deepmind-1" ,
content :
"Google DeepMind was formed in April 2023 by merging Google Brain and DeepMind. " +
"The original DeepMind was founded in 2010 by Demis Hassabis, Shane Legg, and " +
"Mustafa Suleyman, and was acquired by Google in 2014. Notable achievements include " +
"AlphaGo (defeating the world Go champion), AlphaFold (predicting protein structures), " +
"and the Gemini family of multimodal AI models. Demis Hassabis was awarded the 2024 " +
"Nobel Prize in Chemistry for the AlphaFold work." ,
} ,
{
id : "chunk-llama-1" ,
content :
"LLaMA (Large Language Model Meta AI) is Meta's family of open-source large language " +
"models. LLaMA 2 was released in July 2023 and made available for both research and " +
"commercial use. The open-source approach allows researchers and developers to fine-tune " +
"and deploy the models for their own applications. LLaMA models have been widely adopted " +
"by the AI community and have spawned numerous derivative models and applications." ,
} ,
] ;
// ---------------------------------------------------------------------------
// Qdrant seeding (document embeddings)
// ---------------------------------------------------------------------------
async function seedDocumentChunks ( ) : Promise < void > {
// Embed all chunk content
const BATCH_SIZE = 32 ;
const allVectors : number [ ] [ ] = [ ] ;
const texts = DOCUMENT_CHUNKS . map ( ( c ) = > c . content ) ;
for ( let i = 0 ; i < texts . length ; i += BATCH_SIZE ) {
const batch = texts . slice ( i , i + BATCH_SIZE ) ;
const vecs = await embed ( batch ) ;
allVectors . push ( . . . vecs ) ;
process . stdout . write (
` \ r Embedding doc chunks: ${ Math . min ( i + BATCH_SIZE , texts . length ) } / ${ texts . length } ` ,
) ;
}
console . log ( ) ;
const dim = allVectors [ 0 ] . length ;
const collectionName = ` d_ ${ USER } _ ${ COLLECTION } _ ${ dim } ` ;
// Create collection if needed
const existsRes = await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } ` ) ;
if ( ! existsRes . ok ) {
await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } ` , {
method : "PUT" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( {
vectors : { size : dim , distance : "Cosine" } ,
} ) ,
} ) ;
console . log ( ` Created Qdrant collection: ${ collectionName } (dim= ${ dim } ) ` ) ;
} else {
console . log ( ` Qdrant collection exists: ${ collectionName } ` ) ;
}
// Upsert all chunks with content in payload
const points = DOCUMENT_CHUNKS . map ( ( chunk , i ) = > ( {
id : crypto.randomUUID ( ) ,
vector : allVectors [ i ] ,
payload : {
chunk_id : chunk.id ,
content : chunk.content ,
} ,
} ) ) ;
const res = await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } /points ` , {
method : "PUT" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( { points } ) ,
} ) ;
if ( ! res . ok ) {
const body = await res . text ( ) ;
throw new Error ( ` Qdrant doc upsert failed: ${ body } ` ) ;
}
console . log ( ` Qdrant: ${ points . length } document chunk embeddings stored in ${ collectionName } ` ) ;
}
2026-04-10 04:59:36 -05:00
// ---------------------------------------------------------------------------
// Qdrant seeding (graph embeddings)
// ---------------------------------------------------------------------------
async function seedQdrant ( entities : string [ ] ) : Promise < void > {
// Batch embed in groups of 32
const BATCH_SIZE = 32 ;
const allVectors : number [ ] [ ] = [ ] ;
for ( let i = 0 ; i < entities . length ; i += BATCH_SIZE ) {
const batch = entities . slice ( i , i + BATCH_SIZE ) ;
const vecs = await embed ( batch ) ;
allVectors . push ( . . . vecs ) ;
process . stdout . write (
` \ r Embedding entities: ${ Math . min ( i + BATCH_SIZE , entities . length ) } / ${ entities . length } ` ,
) ;
}
console . log ( ) ;
const dim = allVectors [ 0 ] . length ;
const collectionName = ` t_ ${ USER } _ ${ COLLECTION } _ ${ dim } ` ;
// Create collection if needed
const existsRes = await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } ` ) ;
if ( ! existsRes . ok ) {
await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } ` , {
method : "PUT" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( {
vectors : { size : dim , distance : "Cosine" } ,
} ) ,
} ) ;
console . log ( ` Created Qdrant collection: ${ collectionName } (dim= ${ dim } ) ` ) ;
} else {
console . log ( ` Qdrant collection exists: ${ collectionName } ` ) ;
}
// Upsert points in batches
const UPSERT_BATCH = 64 ;
let upserted = 0 ;
for ( let i = 0 ; i < entities . length ; i += UPSERT_BATCH ) {
const points = entities . slice ( i , i + UPSERT_BATCH ) . map ( ( entity , j ) = > ( {
id : crypto.randomUUID ( ) ,
vector : allVectors [ i + j ] ,
payload : { entity } ,
} ) ) ;
const res = await fetch ( ` ${ QDRANT_URL } /collections/ ${ collectionName } /points ` , {
method : "PUT" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( { points } ) ,
} ) ;
if ( ! res . ok ) {
const body = await res . text ( ) ;
throw new Error ( ` Qdrant upsert failed: ${ body } ` ) ;
}
upserted += points . length ;
process . stdout . write ( ` \ r Upserting to Qdrant: ${ upserted } / ${ entities . length } ` ) ;
}
console . log ( ) ;
console . log ( ` Qdrant: ${ upserted } entity embeddings stored ` ) ;
}
// ---------------------------------------------------------------------------
// Config seeding (via gateway)
// ---------------------------------------------------------------------------
async function seedConfig ( ) : Promise < void > {
async function pushConfig ( keys : string [ ] , values : Record < string , unknown > ) : Promise < void > {
const res = await fetch ( ` ${ GATEWAY_URL } /api/v1/config ` , {
method : "POST" ,
headers : { "Content-Type" : "application/json" } ,
body : JSON.stringify ( { operation : "put" , keys , values } ) ,
} ) ;
const data = ( await res . json ( ) ) as { error ? : { message : string } ; version? : number } ;
if ( data . error ) throw new Error ( ` Config push failed: ${ data . error . message } ` ) ;
console . log ( ` Config [ ${ keys . join ( "/" ) } ] → version ${ data . version } ` ) ;
}
await pushConfig ( [ "prompt" ] , {
"extract-relationships" : {
system : "You are a helpful assistant that extracts structured knowledge from text." ,
prompt : [
"Study the following text and derive entity relationships." ,
"For each relationship, derive the subject, predicate and object." ,
"" , "Output as a JSON array of objects with keys:" ,
"- subject: the subject of the relationship" ,
"- predicate: the predicate" ,
"- object: the object of the relationship" ,
"" , "Here is the text:" , "{text}" ,
"" , "Requirements:" ,
"- Respond only with a valid JSON array." ,
"- Do not include explanations or markdown formatting." ,
] . join ( "\n" ) ,
} ,
"extract-definitions" : {
system : "You are a helpful assistant that extracts entity definitions from text." ,
prompt : [
"Study the following text and derive definitions for any discovered entities." ,
"" , "Output as a JSON array of objects with keys:" ,
"- entity: the name of the entity" ,
"- definition: English text which defines the entity" ,
"" , "Here is the text:" , "{text}" ,
"" , "Requirements:" ,
"- Respond only with a valid JSON array." ,
"- Do not include null or unknown definitions." ,
] . join ( "\n" ) ,
} ,
"extract-concepts" : {
system : "You extract key concepts and entities from questions." ,
prompt : "Extract the key concepts and entities from the following question.\nReturn one concept per line, no numbering or bullets.\n\nQuestion: {query}" ,
} ,
"kg-edge-scoring" : {
system : "You are a knowledge graph expert that scores the relevance of graph edges to a query." ,
prompt : [
"Given the following question and a list of knowledge graph edges," ,
"score each edge for relevance to answering the question." ,
"Return a JSON array of objects with 'id' and 'score' (0.0 to 1.0)." ,
"" , "Question: {query}" , "" , "Edges:" , "{knowledge}" ,
"" , "Requirements:" , "- Respond only with a valid JSON array." ,
] . join ( "\n" ) ,
} ,
"graph-rag-synthesize" : {
system : "You are a helpful assistant that answers questions using knowledge graph data. Only use the provided context." ,
prompt : [
"Use the following knowledge graph relationships to answer the question." ,
"Do not speculate if the answer is not found in the context." ,
"" , "Knowledge:" , "{context}" , "" , "Question: {query}" ,
] . join ( "\n" ) ,
} ,
"document-rag-synthesize" : {
system : "You are a helpful assistant. Use only the provided document context to answer questions." ,
prompt : [
"Use the following document excerpts to answer the question." ,
"Do not speculate if the answer is not found in the context." ,
"" , "Documents:" , "{context}" , "" , "Question: {query}" ,
] . join ( "\n" ) ,
} ,
"document-prompt" : {
system : "You are a helpful assistant. Use only the provided context to answer questions." ,
prompt : "Use the following context to answer the question.\n\nContext:\n{documents}\n\nQuestion: {query}" ,
} ,
"kg-prompt" : {
system : "You are a helpful assistant that answers questions using knowledge graph data." ,
prompt : "Use the following knowledge graph information to answer the question.\n\nKnowledge:\n{knowledge}\n\nQuestion: {query}" ,
} ,
} ) ;
await pushConfig ( [ "flows" ] , {
default : {
topics : {
"decode-input" : "tg.flow.document" ,
"decode-output" : "tg.flow.text-document" ,
"decode-triples" : "tg.flow.triples" ,
"chunk-input" : "tg.flow.text-document" ,
"chunk-output" : "tg.flow.chunk" ,
"chunk-triples" : "tg.flow.triples" ,
"extract-input" : "tg.flow.chunk" ,
"extract-triples" : "tg.flow.triples" ,
"extract-entity-contexts" : "tg.flow.entity-contexts" ,
"store-triples-input" : "tg.flow.triples" ,
"store-graph-embeddings-input" : "tg.flow.entity-contexts" ,
"text-completion-request" : "tg.flow.text-completion-request" ,
"text-completion-response" : "tg.flow.text-completion-response" ,
"prompt-request" : "tg.flow.prompt-request" ,
"prompt-response" : "tg.flow.prompt-response" ,
"graph-rag-request" : "tg.flow.graph-rag-request" ,
"graph-rag-response" : "tg.flow.graph-rag-response" ,
"document-rag-request" : "tg.flow.document-rag-request" ,
"document-rag-response" : "tg.flow.document-rag-response" ,
"triples-request" : "tg.flow.triples-request" ,
"triples-response" : "tg.flow.triples-response" ,
"agent-request" : "tg.flow.agent-request" ,
"agent-response" : "tg.flow.agent-response" ,
"embeddings-request" : "tg.flow.embeddings-request" ,
"embeddings-response" : "tg.flow.embeddings-response" ,
"graph-embeddings-request" : "tg.flow.graph-embeddings-request" ,
"graph-embeddings-response" : "tg.flow.graph-embeddings-response" ,
"document-embeddings-request" : "tg.flow.document-embeddings-request" ,
"document-embeddings-response" : "tg.flow.document-embeddings-response" ,
"librarian-request" : "tg.flow.librarian-request" ,
"librarian-response" : "tg.flow.librarian-response" ,
} ,
} ,
} ) ;
}
// ---------------------------------------------------------------------------
// Main
// ---------------------------------------------------------------------------
async function main ( ) : Promise < void > {
console . log ( "╔══════════════════════════════════════════════════════════╗" ) ;
console . log ( "║ TrustGraph Demo Seeder — AI Industry KG ║" ) ;
console . log ( "╚══════════════════════════════════════════════════════════╝\n" ) ;
// Check services
const [ hasFalkor , hasQdrant , hasOllama , hasGateway ] = await Promise . all ( [
checkFalkorDB ( ) ,
checkQdrant ( ) ,
checkOllama ( ) ,
checkGateway ( ) ,
] ) ;
console . log ( "Service availability:" ) ;
console . log ( ` FalkorDB ( ${ FALKORDB_URL } ): ${ hasFalkor ? "✓" : "✗" } ` ) ;
console . log ( ` Qdrant ( ${ QDRANT_URL } ): ${ hasQdrant ? "✓" : "✗" } ` ) ;
console . log ( ` Ollama ( ${ OLLAMA_URL } ): ${ hasOllama ? "✓" : "✗" } ` ) ;
console . log ( ` Gateway ( ${ GATEWAY_URL } ): ${ hasGateway ? "✓" : "✗" } ` ) ;
console . log ( ) ;
if ( ! hasFalkor && ! hasQdrant && ! hasGateway ) {
console . error ( "No services available. Start the TrustGraph stack first:" ) ;
console . error ( " cd ts/deploy && docker compose up -d falkordb qdrant ollama nats" ) ;
process . exit ( 1 ) ;
}
const triples = buildTriples ( ) ;
const entities = collectEntities ( triples ) ;
console . log ( ` Built ${ triples . length } triples across ${ entities . length } unique entities \ n ` ) ;
// Seed FalkorDB
if ( hasFalkor ) {
console . log ( "── Seeding FalkorDB ──" ) ;
await seedFalkorDB ( triples ) ;
console . log ( ) ;
} else {
console . log ( "⚠ Skipping FalkorDB (not available)\n" ) ;
}
// Seed Qdrant (requires Ollama for embeddings)
if ( hasQdrant && hasOllama ) {
console . log ( "── Seeding Qdrant (entity embeddings) ──" ) ;
await seedQdrant ( entities ) ;
console . log ( ) ;
feat: fix RAG pipelines, Beep Graph branding, PWA, and ambient glow UI
Pipeline fixes:
- Fix agent getting empty response from graph-rag by combining answer +
explain data in single message (RequestResponse returns first msg)
- Fix Doc RAG pipeline: add content field to Qdrant doc payload, seed 10
document chunks, fix type mismatches across base/flow/client
- Forward explainability events from agent's KnowledgeQuery to client
- Add "agent" to TERM_BEARING_RESPONSE_SERVICES for triple translation
- Fix embeddings env var (OLLAMA_URL), user/collection threading, edge
scoring threshold, and various protocol mismatches
Branding:
- Rename TrustGraph → Beep Graph (title, sidebar, settings, about)
- Custom lambda + ThugLife pixel glasses SVG logo component
- Forest green color palette (brand-50 through brand-900)
- SVG favicon + PNG icons (16/32/180/192/512)
- PWA manifest with service worker for offline shell caching
- Splash screen with animated logo pulse on app load
- Ambient glow background with drifting green radial blobs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 10:19:10 -05:00
console . log ( "── Seeding Qdrant (document chunk embeddings) ──" ) ;
await seedDocumentChunks ( ) ;
console . log ( ) ;
2026-04-10 04:59:36 -05:00
} else if ( hasQdrant ) {
console . log ( "⚠ Skipping Qdrant embeddings (Ollama not available for embedding generation)\n" ) ;
} else {
console . log ( "⚠ Skipping Qdrant (not available)\n" ) ;
}
// Seed config via gateway
if ( hasGateway ) {
console . log ( "── Seeding Config (prompt templates + flows) ──" ) ;
await seedConfig ( ) ;
console . log ( ) ;
} else {
console . log ( "⚠ Skipping config (gateway not available — run `pnpm seed` separately)\n" ) ;
}
// Summary
console . log ( "═══════════════════════════════════════════════════════════" ) ;
console . log ( " Done! Demo queries to try:" ) ;
console . log ( ) ;
console . log ( " • Who founded OpenAI?" ) ;
console . log ( " • What AI models does Anthropic develop?" ) ;
console . log ( " • How are Elon Musk and OpenAI related?" ) ;
console . log ( " • What is Constitutional AI?" ) ;
console . log ( " • Which companies are headquartered in San Francisco?" ) ;
console . log ( " • What GPU does NVIDIA manufacture for AI training?" ) ;
console . log ( " • Who won the Nobel Prize related to AI?" ) ;
console . log ( " • Compare open-source and closed-source AI models" ) ;
console . log ( " • What is the Transformer architecture?" ) ;
console . log ( " • Tell me about Demis Hassabis and his achievements" ) ;
console . log ( "═══════════════════════════════════════════════════════════" ) ;
}
main ( ) . catch ( ( err ) = > {
console . error ( "\nSeed failed:" , err ) ;
process . exit ( 1 ) ;
} ) ;