Manage user profile/memory for your LLM applications
🌬️ Does your AI forget your users?
MemoBase maintains long-term memory of your users, for your product.
🖼️ Do you understand the customers that using your AI?
MemoBase offers accurate user profile, involving many aspects of your users: Age, Education, Interests, Opinions...
Customize the aspects you want MemoBase to collect.
⌛️ Do you want users spend more time on your Apps?
MemoBase is working with some AI companion startups. They have observated increased chatting turns after adopting MemoBase, leading to higher user retention and subscription rate.
u.profile() will return a list of profiles that are learned from this user, including topic, sub_topic and content. As you insert more blobs, the profiles will become better.
Why need a flush?
In MemoBase, we don't memoize users in hot path. We use buffer zones for the recent inserted blobs.
When the buffer zone is too large (e.g. 1024 tokens) or idle for a long time (e.g. 1 hour), MemoBase will flush the whole buffer into the memory.
Or you can just manually decide when to flush (e.g. A chat session is closed in your App)
Why/Where should I use MemoBase?
Remember the users
By placing profiles into your AI (e.g. system prompt).
Demo
PROFILES = "\n".join([p.describe for p in u.profile()])
print(PROFILES)
# basic_info: name - Gus# basic_info: age - 25# ...# interest: foods - Mexican cuisine# psychological: goals - Build something that maybe useful# ...
User analysis and tracking
Too much information is hidden in the conversations between users and AI, that's why you need a new data tracking method to record user preference and behavior.
Demo
PROFILES = u.profile()
defunder_age_30(p):
return p.sub_topic == "age"andint(p.content) < 30deflove_cat(p):
return p.topic == "interest"and p.sub_topic == "pets"and"cat"in p.content
is_user_under_30 = (
len([p for p in profiles if under_age_30(p)]) > 0
)
is_user_love_cat = (
len([p for p in profiles if love_cat(p)]) > 0
)
...
Sell something to your customers.
Not everyone is looking for Grammarly, it's always nice to sell something your users might want.
Demo
defpick_an_ad(profiles):
work_titles = [p for p in profiles if p.topic=="work"and p.sub_topic=="title"]
ifnotlen(work_titles):
returnNone
wt = work_titles[0].content
if wt == "Software Engineer":
return"Deep Learning Stuff"elif wt == "some job":
return"some ads"
...
FAQs
Client library of MemoBase: manage user memory for your LLM applications
We found that memobase demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.