SShortSingh.
Back to feed

Developer Builds Conversational AI Portfolio Assistant Using LangGraph and PGVector

0
·2 views

Full Stack and Gen-AI developer Rehbar Khan has replaced the standard 'About Me' section on his portfolio website with an AI-powered terminal chatbot that visitors can interact with in real time. The assistant is built on a Retrieval-Augmented Generation pipeline using OpenAI's gpt-4o-mini, with profile data chunked and stored in a pgvector-enabled Neon Postgres database to prevent hallucinated responses. A LangGraph StateGraph agent handles orchestration, routing queries either to the RAG retriever or to a live GitHub data tool connected via the Model Context Protocol. Redis serves as a checkpointer to maintain conversation memory across messages, while a FastAPI backend streams responses token-by-token to a Next.js frontend. Khan published a detailed technical breakdown of the architecture on DEV Community, covering the retrieval thresholds, graph routing logic, and tooling decisions behind the project.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Tool Uses Rust Compiled Symbols to Detect Capability Changes in Crate Updates

A developer has built a Rust security auditing tool that analyzes compiled symbol tables to detect when a crate update gains new capabilities, such as spawning processes or opening network connections. The approach exploits Rust's v0 symbol mangling, which demangles back to readable paths, allowing comparison of undefined symbols between old and new crate versions. The tool diffs demangled symbols across version bumps recorded in Cargo.lock, flagging high-severity changes and known advisories like RUSTSEC entries without generating excessive noise. However, the author acknowledges a key limitation: malicious logic hidden inside a build.rs script runs at compile time and leaves no trace in the symbol diff, meaning source review remains necessary for that threat. The project is released as a MIT-licensed composite GitHub Action and is available publicly on GitHub.

0
ProgrammingDEV Community ·

Why Password Length Matters More Than Symbols, and How to Generate Strong Ones

A guide aimed at developers highlights that password length is the most critical factor in security, far outweighing the common practice of adding symbols or uppercase letters. A 16-character lowercase password can take centuries to brute-force, while an 8-character password with symbols can be cracked in hours. Human-chosen passwords are inherently predictable, making cryptographically secure random generators — such as the browser's crypto.getRandomValues() API — the only reliable way to create truly strong credentials. Experts recommend using 16 or more characters combining all four character sets for database passwords, and 32–64 character alphanumeric strings for API keys and tokens. Password reuse is also flagged as a major risk, with the advice that even a strong password becomes weak the moment it is used across multiple accounts.

0
ProgrammingDEV Community ·

Developer runs 16 parallel AI subagents in 6 hours to ship a full product integration

A solo developer used Cursor's subagent feature to run 16 parallel AI agents across six hours, producing roughly 500 KB of documentation and shipping a working Cloudflare Worker with dual Stripe and Creem payment support. The agents were organized into four waves of four, with each subagent handling a focused task such as API research, code building, testing, or documentation. Running four subagents simultaneously effectively quadrupled output per hour, since each 30-minute parallel session delivered what would otherwise take 120 minutes sequentially. Between waves, the developer spent 15–20 minutes reviewing and integrating results before dispatching the next batch. The workflow relied on tightly structured prompts — including verified context, reusable assets, and explicit constraints — to prevent agents from drifting due to their lack of persistent memory.

0
ProgrammingDEV Community ·

Developer spends over an hour sending one Gmail from China after six failed attempts

A developer in Guangzhou, China, recently spent over an hour trying to send a single email using Gmail, despite the task taking only 15 minutes to draft. China's Great Firewall blocks Gmail's SMTP ports through deep packet inspection, resetting connections whenever it detects smtp.gmail.com in plaintext SNI headers. The developer tried six programmatic approaches — including Python smtplib, proxied curl, PySocks, raw socket tunneling, and Node.js with Nodemailer — each failing due to a mix of GFW restrictions, Windows TLS bugs, and proxy routing issues. Every attempt to route SMTP traffic through a local Clash proxy also fell short, either due to schannel incompatibilities or incorrect proxy rule configurations sending traffic directly into the firewall. Ultimately, the developer abandoned all programmatic methods and simply used Gmail's web interface in Chrome to send the email successfully.