惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
C
Check Point Blog
M
MIT News - Artificial intelligence
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
D
Docker
Last Week in AI
Last Week in AI
IT之家
IT之家
F
Fortinet All Blogs
A
About on SuperTechFans
P
Proofpoint News Feed
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog RSS Feed
博客园_首页
月光博客
月光博客
博客园 - 司徒正美
Y
Y Combinator Blog

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I made a personalized AI web app with RAG
Joseph Martin · 2026-06-02 · via DEV Community

Joseph Martin

So during my 4th Year of my college my team had decided to build a Personalized AI Assistant that can understand the user's behavior and give results accordingly.

We had implemented reinforcement learning in the backend server, so based on the feedback given by the user it gives the output.

During the later stages of the project I glimpsed on something called RAG (Retrieval Augmented Generation).

Because the problem statement and research were already done on reinforcement learning my teammates were not interested in RAG.

What is RAG?
Retrieval Augmented Generation (RAG) is basically an AI technique that enhances the LLM's result by retrieving information from a Knowledge Graph.

The Knowledge Graph can be anything:-

  • User's interests and traits
  • Your Netflix viewing genres, actors etc
  • YouTube Recommendations and so much more..

Many consumer based companies are using Knowledge Graphs to get a better understanding of the user and give recommendations based on it.

Now Knowledge Graphs are used by AI for better accuracy and more context.

And that's how I got the idea for the Project Persona

Persona constructs a highly detailed, multi-dimensional Knowledge Graph of the user. By understanding a user's psychological traits, professional domains, and specific technical skills.

First Persona makes you take a personality test that is based on MBTI (Myers–Briggs Type Indicator).

MBTI test gives you a personality type based on eight traits:-

  • Extroversion
  • Introversion
  • Sensing
  • Intuition
  • Thinking
  • Feeling
  • Judging
  • Perceiving

Persona also has a page for sending GitHub profile link and resume to get a technical background of the user.

Now lets dive into the frontend and backend of Persona.

Backend
The backend is a Node.js and Express server. It consists of three major pillars:

  1. Multi-Modal Data Ingestion To build an accurate profile of a user, we needed data. I built several ingestion pipelines:
  • Interactive Assessments: A custom MBTI quiz

  • Headless Social Scraping: Using Playwright and stealth plugins, the backend can scrape public URLs (like a GitHub profile) to understand a user's open-source contributions and coding interests.

  • Resume Parsing: Using multer and pdf-parse, users can upload their PDF resumes directly.

  1. LLM Intelligence & Vector Embeddings Once we have raw unstructured text (from a resume or GitHub profile), the data is passed it to Groq (running the llama-3.3-70b-versatile model). The LLM is prompted to act as a behavioral analyst, extracting specific Traits, Domains (e.g., Software Engineering), and Entities (e.g., React.js).

To give this data mathematical meaning, I used HuggingFace (BAAI/bge-small-en-v1.5) to generate semantic vector embeddings to build knowledge graph of traits and entities.

  1. Neo4j & Graph RAG This is where the magic happens. All of the extracted nodes are mapped into a Neo4j Graph Database. The structure looks something like this: [User] -> [Domain] -> [Entity] [User] -> [Trait]

When a user asks the AI a question, the backend converts the query into a vector, searches the Neo4j database for the most semantically relevant nodes connected to that specific user, and injects that graph data into the LLM prompt. The result? An AI assistant that doesn't just answer your question, but answers it specifically for you based on your Knowledge Graph.

Frontend

The frontend was built using Next.js, React 19, and Tailwind CSS.

  1. Visualizing the Graph
    Because a Knowledge Graph is inherently visual, we wanted users to actually see their data. We integrated react-force-graph (both 2D and 3D) alongside three.js. The central node is the User, which branches out into their active Domains, which further branch out into specific Entities (like programming languages or hobbies).

  2. Seamless Integration

    • Authentication: Firebase Auth.
  • Settings & Sync: A dedicated hub where users can seamlessly upload their resumes or drop in their GitHub URLs to trigger the backend pipelines.

  • Context-Aware Chat: The chat interface isn't just a generic text box. It acts as the direct line to the Graph RAG backend. When you ask for career advice, the UI dynamically streams back a response that factors in your uploaded resume, your scraped GitHub data, and your MBTI baseline.

Since this app is not technically personalized I will be working on a self hosted version of the app where the user can run the app completely locally without internet.

I hope that this blog helped you to get some insights about RAG and Persona. Thank you

Project Links:-
Frontend: https://github.com/J0seph-Mart1n/PersonaWebApp
Backend: https://github.com/J0seph-Mart1n/Persona_Backend