7 views
This guide covers Glue Bedrock RAG with production-focused examples and trade-offs.
Interactive code RAG should stay thin: retrieve, cite, answer. Enrichment — summaries, tags, API blurbs — belongs in an offline pipeline. Amazon Glue plus Bedrock batch (or modest on-demand) lets you improve documentation quality every night without taxing IDE latency budgets.⚡ TL;DR: Extract symbols + raw docs to S3; Glue jobs call Bedrock to emit summaries, tags, and “when to use” notes; write enriched artifacts beside source checksums; online KB indexes enriched blobs only. Idempotent by content hash. Pair with Codebase Embeddings Refresh and Bedrock Batch Inference.
Pipeline shape — Glue Bedrock RAG
text
git merge → S3 raw/ → Glue enrich (Bedrock) → S3 enriched/ → KB sync → OpenSearch/pgvector
python
# glue_enrich.py — PySpark / Glue job sketch
import hashlib, json, boto3
bedrock = boto3.client("bedrock-runtime")
MODEL = "anthropic.claude-3-haiku-20240307-v1:0"
PROMPT = """Summarize this code symbol for developer RAG.
Return JSON: {summary, tags[], when_to_use, pitfalls[]}
CODE:
{code}
"""
def enrich_row(path: str, code: str, sha: str) -> dict:
content_hash = hashlib.sha256(code.encode()).hexdigest()
# ✅ Skip if enriched already for this hash
if already_enriched(path, content_hash):
return load_enriched(path, content_hash)
body = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 512,
"messages": [{"role": "user", "content": PROMPT.format(code=code[:12000])}],
}
resp = bedrock.invoke_model(modelId=MODEL, body=json.dumps(body))
out = json.loads(resp["body"].read())
text = out["content"][0]["text"]
meta = json.loads(extract_json(text))
meta.update({"path": path, "git_sha": sha, "content_hash": content_hash})
return meta
Keep online RAG lean
Online index fields:summary, tags, symbol, path, service — not the full Bedrock transcript. Full source remains available via a tool fetch (see Tool-Augmented RAG when published, or fetch by path today).
json
{
"path": "src/billing/InvoiceService.ts",
"symbol": "InvoiceService.create",
"summary": "Creates a draft invoice and enqueues ledger posting.",
"tags": ["billing", "ledger", "idempotent"],
"when_to_use": "New subscription invoice after checkout success",
"pitfalls": ["Must pass idempotencyKey", "Do not call from sync webhooks"],
"content_hash": "a1b2..."
}
Cost and quality controls
| Control | Why |
|---|---|
| Haiku/Sonnet small for summaries | Overnight volume, not IDE chat |
| Content-hash skip | Avoid re-paying for unchanged files |
| JSON schema validate | Reject malformed enrichment |
| PII scrub pre-Bedrock | Same as secret-aware filters |
| Glue job bookmarks | Exactly-once-ish incremental folders |
src/** and packages/*/src/**.
Wire to Knowledge Base sync
Afterenriched/ lands, trigger the same webhook/checksum sync you use for source — see sibling topic on KB git webhooks. Online Retrieve should filter on tags and service metadata for precision.
bash
# illustrative Glue trigger after merge batch
aws glue start-job-run --job-name code-doc-enrich \
--arguments '{"--git_sha":"'"$SHA"'","--prefix":"raw/'"$SHA"'/"}'
Closing checklist
✅ Dos– ✅ Enrich offline; retrieve online
– ✅ Idempotent by content hash
– ✅ Validate JSON schemas before index
– ✅ Scrub secrets/PII before Bedrock
– ✅ Track token spend per repo per night ❌ Don’ts
– ❌ Don’t call Bedrock enrichment inside the IDE request path
– ❌ Don’t index raw model chatter or chain-of-thought
– ❌ Don’t enrich generated/ or node_modules
– ❌ Don’t skip checksum tombstones on deleted files
Related reading
- Codebase Embeddings: Refresh Pipelines When Git SHAs Keep Moving
- Bedrock Batch Inference: Overnight Refactor Diffs Across Large Repos
- Bedrock Prompt Caching and Batch Inference
- Secret-Aware Context Filters
Related: RAG Evaluation on Bedrock: Offline Suites Before You Trust Code Answers · Bedrock Retrieval Filters: Tenant Isolation for Multi-SaaS Code RAG · Bedrock Knowledge Bases Chunking Strategies That Fit Code RAG
Watch: 100 Days of AI on YouTube
Short videos from CheatCoders, one AI engineering topic per day.
Most viewed
- Python Decorators Explained: From Simple Wrappers to Production Patterns
- Claude Code vs Cursor vs GitHub Copilot: Choose by Workflow, and Set Up One Repo That Works With All Three
- AI Agent Frameworks in 2025: LangGraph vs CrewAI vs AutoGen vs Raw API
- Python String Methods: Every str Method With Real Production Examples
- Css Animation Performance: Performance-Optimized Motion for Modern UIs
Newly added
- AWS Systems Manager Parameter Store: Hierarchical Runtime Config for Coding Agents
- Amazon Cognito Identity Pools: Federate Coding-Agent Tool Callers Without Long-Lived Keys
- Amazon Athena for Coding Agents: Query Tool Audit Logs and Eval Traces on S3 Without a Warehouse
- AWS Batch for Coding Agents: Parallel Overnight PR Reviews and Long-Running Jobs Without Lambda Timeouts
- Amazon Bedrock Prompt Management: Version and A/B Test Coding-Agent System Prompts
Deep-dive PDF
Get the expanded guide for this post — extra diagrams-style checklists, failure modes, and a production walkthrough. Free when you subscribe to CheatCoders.
Already subscribed? or open the subscribe page.
Discover more from CheatCoders
Subscribe to get the latest posts sent to your email.
