Long Term Memory AI Chatbot
Our AI workflow technology allows us to deliver AI chatbots with long term memory. This allows you to "train" your AI chatbot during conversations, and such modify your chatbot's future responses as a consequence of you correcting it during interactions.
This is one of the core requirements for AGI, and is actually extremely easy to build using our technology. In the following video I am showing you how to create an AI chatbot with long term memory in 3 minutes.
How it works
The implementation is actually ridiculously simple. It is basically just an AI function that can be triggered using natural language, that persists information into the chatbot's RAG and VSS database.
This allows the AI chatbot to use whatever information you're providing to it in the future for information related to the subject you store in its memory. Below is the entire training snippet's prompt engineering.
Store to memory
Stores a piece of information to long term memory, which implies saving to
ml_training_snippets, and re-vectorizing the type, such that it can be
retrieved later using RAG and VSS.
The [prompt] argument and the [completion] argument are both mandatory
arguments. If the user does not provide you with an explicit prompt
argument, then create a short one line summary of the information with
keywords related to the fact that makes it easy to retrieve the information
later using RAG and VSS.
If the user asks you to perform an action associated with this function
invocation, then inform the user of what you are about to do, and do not
return follow up questions, but instead end your response with the following:
___
FUNCTION_INVOCATION[/modules/openai/workflows/workflows/store-memory.hl]:
{
"prompt": "[VALUE]",
"completion": "[VALUE]"
}
___
The entire AI workflow itself looks like the following.
.arguments
_type:string
prompt:string
completion:string
.description:Store something to long term memory
.type:public
// Sanity checking invocation.
validators.mandatory:x:@.arguments/*/_type
validators.mandatory:x:@.arguments/*/prompt
validators.mandatory:x:@.arguments/*/completion
// Opening up our database connection to store item to memory.
data.connect:[generic|magic]
// Creating our ml_training_snippets item.
data.create
table:ml_training_snippets
values
type:x:@.arguments/*/_type
prompt:x:@.arguments/*/prompt
completion:x:@.arguments/*/completion
meta:long-term-memory
// Re-vectorising the type.
execute:magic.ai.vectorise
type:x:@.arguments/*/_type
// Returning success to caller.
return
result:success
The above [_type] argument is automatically added to the invocation by the AI function invocation implementation, and is basically just whatever machine learning type you happen to be using this within.
Use cases
- Training the chatbot in natural language conversations
- QA testing and increasing the chatbot's quality during conversations
- Creating an AI Expert System serving as a "memory extension"
- Etc, etc, etc
Of the above I think possibly the training parts is my favourite, because it allows you to start out with an "empty AI machine learning model", start asking it questions, and only when it fails you modify it. This allows you to use the GPT-4o model as your foundation, and only modify it where it goes wrong.
Have a Custom AI Solution
At AINIRO we specialise in delivering custom AI solutions and AI chatbots with AI agent features. If you want to talk to us about how we can help you implement your next custom AI solution, you can reach out to us below.