Ask Abdo
A grounded AI portfolio assistant with "Batwick" mascot UI, server-built public evidence, authoritative attachments, safe links, and saved-chat rehydration.
Overview
The assistant is designed as a trust-first portfolio assistant rather than a generic chatbot. The server owns evidence construction, current-page resolution, destination selection, attachment materialization, safe link validation, rate limiting, and saved-reference rehydration. The client focuses on the Batwick interaction layer, message rendering, history UX, progressive attachment disclosure, and route-aware starter prompts.
Technical Stack
Vercel AI SDK
Gemini 3.5 Flash
Tool Calling
Structured Attachment Manifests
Key Features
- Streams public portfolio answers through Vercel AI SDK and Gemini with bounded tool steps and request validation.
- Rebuilds a compact public evidence packet on every request instead of trusting stale client-side tool results.
- Resolves exact project and published-blog current-page context server-side from the pathname.
- Keeps client history as text-only conversational context rather than authoritative evidence.
Architectural Highlights
- Designed a trust boundary where client messages can guide conversation but never provide authoritative project, article, resume, social, or photo evidence.
- Built a stable-key attachment planner that separates model-selected destinations from server-owned display data.
- Implemented successful-finish attachment stream injection so attachment cards never replace or contradict answer prose.
- Added saved-chat rehydration that refreshes canonical attachment data instead of preserving stale local snapshots.
- Built a post-answer suggestion pipeline that merges model-provided suggestions with deterministic project-page and comparison follow-ups without adding a second model call.
- Hardened the assistant prompt boundary so the model does not narrate tool calls, card registration, or UI attachment behavior inside answer prose.
- Created a Batwick-driven assistant shell with accessible attachment groups, progressive disclosure, and route-aware starter prompts.
Project Status
- Streaming portfolio assistant route with evidence building, request validation, rate limiting, and bounded public tools.
- Canonical attachment planner and materializer for projects, published articles, photos, social links, and resume resources.
- Responsive assistant UI with Batwick mascot, history drawer, message rendering, suggestions, and recruiter quick actions.
- Deterministic follow-up suggestions for project pages and comparison prompts, merged with model suggestions through a shared filtering and deduplication pipeline.
- Saved conversation references with fresh server-side attachment rehydration.