I'm in the process of releasing a few of my internal libraries for building LLM-based apps. The first release is `typedtemplate`, a library that allows you to use Pydantic syntax to describe the data required by a template to render.<p># What does it currently do?<p>- Documentation: Provides a class that you can easily generate documentation for. This means all your normal python documentation generators and tooling can provide useful docs for your templates that are easily consumable by your team.<p>- IDE/Copilot Support: Pydantic classes provide an great developer experience in the IDE with helpful autocomplete and a structure that Copilot understands well.<p>- Validation: Runtime validation that the data conforms to the type definitions.<p># Why did I create this?<p>I'm working with LLMs everyday now. I have hundreds of LLM prompts (and countless variants) in my project. If you are like me, it doesn't take long after creating a template to forget the shape of the data required to make it render properly. I'm lazy. This library lets me forget more things and lean on my tooling.<p># Notes<p>- Currently works with Jinja2 and Django templating engines. If you need a different engine, just ask (quick to implement).<p>- Was built to play nice with any framework.<p>- Next library coming is a Non-OpenAI interface to LLMs that feels good. Uses LiteLLM under the hood to support almost all available LLMs.