What was broken
Test cases had to be derived from dense specification documents where the important detail often lived in tables and diagrams rather than prose. A text-only extraction pipeline silently dropped exactly the content that mattered most.
A test case generator grounded in the actual specification documents: text, tables and images extracted, indexed as vectors, and served through an async API built to hold a thousand concurrent users.
Test cases had to be derived from dense specification documents where the important detail often lived in tables and diagrams rather than prose. A text-only extraction pipeline silently dropped exactly the content that mattered most.
The ingestion pipeline uses AWS Textract to pull text, tables and images out of each document, then indexes everything into an AWS OpenSearch vector index so retrieval sees the whole document rather than the easy parts of it. The serving layer is FastAPI with async patterns throughout — the workload is almost entirely I/O-bound against model and search endpoints, so throughput came from concurrency rather than compute. Infrastructure runs on ECS Fargate with RDS behind it, and I load-tested the whole path with Locust rather than assuming it would hold.
The API sustained 1000+ concurrent requests under Locust load testing, and contextual understanding improved materially once non-prose content entered the index.