Finally, LLM engineering done properly
Evals, tool limits and structured output in one course. This is what I needed to ship our first AI feature.
Browse
Go beyond chat: call model APIs from Python, get reliable JSON, give models tools, build small agents and measure quality with evals
Created by Elena Petrova
Using an AI assistant in a browser is one thing. Building a product feature on top of a language model is another. You need predictable output your code can parse, ways for the model to look up data or take actions, protection against misuse, control over cost and latency, and some way of knowing whether a change made things better or worse.
This course teaches those skills by building Desk, an internal helpdesk assistant that answers employee questions, looks up order and account data through tools, drafts replies and escalates to a human when it should. We write Python against model provider APIs directly, so you understand what frameworks do before deciding whether to use one.
Examples use a thin wrapper so the same code runs with different providers' SDKs. We point out where providers differ, but the concepts are the same across them.
You should be comfortable with Python, HTTP APIs and JSON. No machine learning background is required.
AI engineer teaching prompting, LLM APIs and retrieval apps that work in practice
I build applications on top of large language models: assistants, document search and internal tools that save teams real time. I have learned most of what I teach by shipping features, watching them fail in odd ways and fixing them.
My courses are hands on and vendor neutral. We use the APIs from several model providers, compare results, and write small evaluations so you can tell whether a change helped.
I care about the unglamorous parts: cost, latency, privacy and knowing when a plain search or a simple rule is better than a model.
Evals, tool limits and structured output in one course. This is what I needed to ship our first AI feature.
Verifying citations in code against retrieved sections caught many unsupported answers in our app.
We had no evaluation suite before. Now every prompt change runs through one in CI.
The thin wrapper approach made it easy to compare providers. A bit more on streaming UIs would help.
The lesson on when not to use an agent saved us weeks. A fixed workflow covered most of our cases.
The prompt injection demos were sobering. Clear, realistic defences without overselling any of them.
You need to be comfortable with Python and APIs. Otherwise the pace is tough.