09

version_log

// release notes for juncao.dev — what changed and when.branch: main · 9 commits · clean working tree
$git log --decorate --graph --pretty=full
>9 commits on main
filter:
  1. HEADmaintag: v1.3.0
    feat23m ago
    Author: Jun Cao <eddyjunc@gmail.com>
    Date:  June
    preview// ask ai · rag · bedrock
    ASK AI · GROUNDED CHATWhat is Jun's AWS experience?ASSISTANT3+ yrs on AWS — Lambda, API Gateway,DynamoDB, S3, OpenSearch; AWSSolutions Architect certified. [#1]#1 faq.md#2 resumeAsk about Jun's work…ASKRAG PIPELINEQUESTIONEMBED · TITANVECTOR INDEX · S3pub|privTOP-K CONTEXTBEDROCK · CLAUDEANSWER + [#n]
    • 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.
  2. tag: v1.2.3
    feat22d ago
  3. tag: v1.2.2
    polish24d ago
  4. tag: v1.2.1
    polish25d ago
  5. tag: v1.2.0
    feat26d ago
  6. tag: v1.1.0
    feat27d ago
  7. tag: v1.0.2
    polish27d ago
  8. tag: v1.0.1
    feat27d ago
  9. tag: v1.0.0
    init27d ago
// origin/main · synced · clean working tree · maintained by jun.caotracked|signed-off-by: human
navigate