And I started experimenting with an idea - how can make LLM integration feels native? How can an LLM become part of the language / compiler, instead of being just one more external API that we have to integrate through yet another SDK?
And I took the async / await / Promise idea as a starting point, ok so: 'async' - defines an asynchronous boundary, 'Promise' - represents an asynchronous intention, 'await' - resolves it.
So I started thinking, what if we could do something similar for LLMs? That led me to create Nola, a TypeScript superset built around three concepts:
'infer' - like `async`, defines the LLM inference context,
'Intent' - encapsulates the data and instructions that will be sent to the LLM,
'ask' - like `await`, resolves the `Intent` into a typed result
Right now, Intent represents two operations: extract the data and call the function (yes native TS function), but more to come soon.
Docs at: https://nola.sh/docs
Thanks for your honest feedback
nateb2022•1h ago