Given some text, like from an email or SMS, use an LLM to determine what the most likely intent is.
(Uses pre/post LLM scripts to reduce risk of error.)
Consider something like an email, or an SMS message.
Then consider a list of actions, like this:
- Add to reading list
- Alert me with a 2FA code
- Add/remove from a specific list (like purchased items waiting for delivery)
In this library, you define a key/value set of intents, where the key is the intent title, and the value is the context, like this:
const intents = {
'add to reading list': `
the email contains a long-form essay or blog post
type content and does not appear to be marketing
`,
'add to awaiting-delivery list': `
the email notes that a physical item was purchased
that will be shipped and delivered
`,
'mark as delivered on awaiting-delivery list': `
the email notes that a physical item was delivered
to an address or other physical location
`,
}
You'd provide an LLM interface and the intents map, so imagine something like this:
import { TODO } from '@saibotsivad/TODO'
// NOTE TO SELF: don't have all the different LLM implementations in
// this lib, maybe define types in this lib and make a couple example
// libs that use those, but keep this lib slim
import { llm } from '@saibotsivad/TODO-llm-chat-jippity'
const intents = { /*... see above ...*/ }
const inquire = TODO({
llm: llm({ apiKey, etc }),
intents,
})
Then you can call that with some content, e.g. an email or SMS or whatever else, and it will return the key from the intents
dictionary. For example, a plaintext email from Amazon:
const key = await inquire(`
Thanks for your order, Tobias!
Ordered Shipped Out for Delivery Delivered
Arriving Friday
Tobias - Cityname, STATE
Order # 123-123-123-123-123
View or edit order
Skechers mens Go Walk Max-athletic
Quantity: 1
`)
console.log(key) // => "physical item requiring delivery"