AIDE
LLM schema profiling behind a typed service contract
A lightweight master-data tool that infers each column's semantic type from sample values, flags primary match-key candidates, and returns a confidence score with reasoning. Three services in a strict chain (React client, a Spring Boot proxy, and a Python profiler), with real CI running tests in all three languages.
Verified: each of these is checkable in the repository
- 3
- languages tested in one CI pipelineVitest, JUnit with MockMvc, Pytest, on every push
- 1
- typed endpoint contract between tiersPOST /profile-schema, columns in, typed inferences out
Identity resolution starts with knowing what your columns mean, and that knowledge is usually locked in someone's head. Column names lie, and sample values are more honest than schemas.
The client parses CSVs locally and sends column names with sample values through a Spring Boot proxy to a Python profiler, which asks a model to infer a semantic type, a confidence score between zero and one, whether the column is a plausible match key, and its reasoning. The middle tier exists so the browser never holds a model credential.
Why it is built this way
01A proxy tier so the client holds no credentials
The browser talks to Spring Boot, which talks to the profiler. It is an extra hop that exists purely so no API key reaches the client.
02Return confidence and reasoning, not just a label
A semantic type with a confidence score and an explanation can be reviewed. A bare label has to be trusted or discarded.
03Test all three tiers in one pipeline
Vitest, JUnit with MockMvc, and Pytest run on every push. This is the only one of my repos with CI covering multiple languages, and it is the one that made me stop hand-verifying the contract.
Three languages behind one endpoint made me care about the contract rather than the implementations. Once Vitest, JUnit and Pytest all ran on every push, the tier boundary was the thing being tested, and I stopped hand-verifying that the proxy and the profiler still agreed on the shape of a response.
Next project
Campus Vitality
Student insurance platform, built by a team of five