1.下载项目的源代码,我们要先启动后端,用docker启动
cd src/server
cp .env.example .env
cp ./api/config.yaml.example ./api/config.yaml
这里我的配置内容如下config.yaml(因为我是调用的符合openai格式的大模型,所以我没改,如果要是别的大模型的话,需要自己再做兼容)
llm_api_key: sk-
llm_base_url: https://openrouter.ai/api/v1
llm_style: openai
best_llm_model: google/gemini-2.5-pro-exp-03-25:free
在图中框出来的地方做兼容,openrouter.py是我新加的
然后配置好后
docker-compose build && docker-compose up
后端启动成功,然后我们测试一下,访问,http://101.43.194.123:8019/docs(云服务器运行的换成你的公网ip就好)
2.然后是前端,前端就很简单了
!pip install memobase openai
from rich import print
from memobase import MemoBaseClient, ChatBlobPROJECT_URL = "http://xxxxx:8019"
PROJECT_TOKEN = "secret"client = MemoBaseClient(project_url=PROJECT_URL,api_key=PROJECT_TOKEN,
)assert client.ping(), "Your Memobase server is not running"messages = [{"role": "user","content": "Hello, I'm Gus","created_at": "2025-01-14",},{"role": "assistant","content": "Hi, nice to meet you, Gus!","alias": "HerAI",},
]blob = ChatBlob(messages=messages)uid = client.add_user()
u = client.get_user(uid)bid = u.insert(blob)
print("User ID is", uid)
print("Blob ID is", bid)print("Start processing...")
u.flush()print("\n--------------\nBelow is your profile:")
print(u.profile(need_json=True))print("\n--------------\nYou can use Memobase Event to recent details of the user:")
for e in u.event():print("📅", e.created_at.astimezone().strftime("%Y-%m-%d %H:%M:%S"))for i in e.event_data.profile_delta:print("-", i.attributes["topic"], i.attributes["sub_topic"], i.content, sep="::")print("\n--------------\nYou can use Memobase Context to get a memory prompt and insert it into your prompt:"
)
print(f"""```
{u.context()}
```
"""
)
运行结果如下
3.写个小demo利用起来
!pip install gradio memobase richfrom memobase import MemoBaseClient, ChatBlob
from rich import print
import gradio as gr
import datetime# 配置 Memobase 服务信息(替换为你自己的地址+密钥)
PROJECT_URL = "http://xxxxx:8019"
PROJECT_TOKEN = "secret"# 初始化客户端
client = MemoBaseClient(project_url=PROJECT_URL,api_key=PROJECT_TOKEN,
)
assert client.ping(), "❌ Memobase 服务未连接成功"# 创建用户(也可以持久化 user_id)
user = client.get_user(client.add_user())# 聊天历史存储
chat_history = []# UI 回调函数
def chat(user_input):if not user_input.strip():return gr.update(value="⚠️ 请输入内容"), gr.update(visible=False)# 模拟助手回应assistant_response = f"🤖 Hello! You said: {user_input}"# 生成消息块messages = [{"role": "user", "content": user_input, "created_at": datetime.date.today().isoformat()},{"role": "assistant", "content": assistant_response, "alias": "HerAI"},]blob = ChatBlob(messages=messages)user.insert(blob)user.flush()# 展示用户画像profile = user.profile(need_json=True)memory = user.context()return assistant_response, f"[用户画像]\n{profile}\n\n[记忆片段]\n{memory}"# 构建 Gradio UI
with gr.Blocks(title="Memobase AI Demo") as demo:gr.Markdown("# 🧠 Memobase 记忆引擎 Demo")with gr.Row():input_text = gr.Textbox(label="请输入你的消息")submit_btn = gr.Button("发送")output_response = gr.Textbox(label="🤖 助手回复")output_memory = gr.Textbox(label="🧠 记忆状态", lines=10)submit_btn.click(fn=chat,inputs=input_text,outputs=[output_response, output_memory])demo.launch(share=True)
这里的助手回应没有处理,就是重复,你也可以换成大模型,这个不重要,重要的是看画像
这个画像你可以通过读取数据库中对应的用户id加入到任何一个你自己的社交平台,岂不是美滋滋