09
version_log
// release notes for juncao.dev — what changed and when.branch: main · 9 commits · clean working tree
●tracked
$git log --decorate --graph --pretty=full
>9 commits on main
filter:
- HEADmaintag: v1.3.0feat23m agoAuthor: Jun Cao <eddyjunc@gmail.com>Date: June● preview// ask ai · rag · bedrock
- ▸New /chat page: an Ask AI assistant that answers questions about me — experience, projects, AWS work, tech stack — grounded in a curated knowledge base via Retrieval-Augmented Generation. It cites the snippets it used as [#1], [#2] and never invents facts; if the docs do not cover something, it says so and points you to email.
- ▸Fully serverless backend that scales to zero: API Gateway (HTTP API) → AWS Lambda (Python) → Amazon Bedrock for embeddings and generation. No always-on compute (no EC2 / NAT / OpenSearch / SageMaker), so it stays comfortably in low-cost, near-free-tier territory.
- ▸RAG pipeline: source documents in S3 are chunked, embedded with Amazon Titan, and stored as a vector index in S3. At query time the Lambda embeds the question, runs cosine top-k retrieval, assembles a grounded prompt, and returns the answer with its source citations.
- ▸Public/private isolation by design: the vector index is sharded into public and private, and anonymous visitors only ever load the public shard — private material is never read into the process, so it cannot leak even through prompt injection. The owner unlocks private knowledge with a token.
- ▸Safety and cost guardrails: per-day usage quota, input-length and output-token caps, top-k and context-length limits, CORS locked to the site origin, least-privilege IAM, and the admin secret stored in SSM Parameter Store — never in the frontend bundle.
- ▸Swappable model layer: a small provider interface lets the model move from Bedrock to OpenAI / Claude / a self-hosted model later without touching the RAG logic or the UI.
- ▸Owner-only knowledge-base admin console at /chat/admin (noindex) to re-index the knowledge base and inspect the indexed documents.
- ▸Frontend reads the API URL from an environment variable (no hard-coded endpoints, no secrets in the bundle); when it is unset, /chat shows a tidy offline notice instead of erroring. Added an Ask AI nav entry, SEO metadata, and sitemap coverage for /chat.
- tag: v1.2.3feat22d ago
- tag: v1.2.2polish24d ago
- tag: v1.2.1polish25d ago
- tag: v1.2.0feat26d ago
- tag: v1.1.0feat27d ago
- tag: v1.0.2polish27d ago
- tag: v1.0.1feat27d ago
- tag: v1.0.0init27d ago
// origin/main · synced · clean working tree · maintained by jun.cao●tracked|signed-off-by: human