领域-专属示例
领域特定示例
相关源文件
以下文件为本维基页面的生成提供了上下文:
docs/cookbooks/essentials/building-ai-companion.mdxdocs/cookbooks/essentials/controlling-memory-ingestion.mdxdocs/cookbooks/essentials/entity-partitioning-playbook.mdxdocs/cookbooks/essentials/exporting-memories.mdxdocs/cookbooks/integrations/healthcare-google-adk.mdxdocs/cookbooks/integrations/openai-tool-calls.mdxdocs/cookbooks/overview.mdxdocs/docs.jsondocs/llms.txtdocs/open-source/python-quickstart.mdxdocs/platform/features/contextual-add.mdxdocs/platform/features/entity-scoped-memory.mdxdocs/platform/features/v2-memory-filters.mdxexamples/mem0-demo/app/api/chat/route.tsexamples/mem0-demo/app/assistant.tsxexamples/mem0-demo/app/layout.tsxexamples/mem0-demo/components/assistant-ui/thread-list.tsxexamples/mem0-demo/components/assistant-ui/thread.tsxexamples/mem0-demo/components/mem0/github-button.tsxexamples/mem0-demo/next.config.tsexamples/mem0-demo/package.jsonexamples/vercel-ai-sdk-chat-app/components.jsonexamples/vercel-ai-sdk-chat-app/src/components/memories.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/avatar.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/badge.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/button.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/card.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/dialog.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/input.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/label.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/scroll-area.tsxexamples/vercel-ai-sdk-chat-app/src/components/ui/select.tsx
本文档提供了在不同行业垂直领域和用例中应用 Mem0 的具体实现模式。每个示例都演示了如何构建记忆、配置会话作用域以及针对领域特定需求优化检索。
有关基本记忆操作,请参阅基本用法。有关批量操作和自定义提示等高级技术,请参阅高级模式。有关与特定框架的集成,请参阅智能体框架。
AI 健身伴侣
健身应用需要记住用户的目标、过去的锻炼记录以及生理限制(如受伤情况),从而跨会话提供个性化指导。
记忆架构
健身伴侣实体映射
实现模式
本示例展示了一个名为"Ray"的健身教练使用 Mem0 跨会话记住用户"在 4 小时内完成马拉松"的目标 docs/cookbooks/essentials/building-ai-companion.mdx:50-171。
from mem0 import MemoryClient
from openai import OpenAI
# 初始化客户端
openai_client = OpenAI(api_key="your-openai-key")
mem0_client = MemoryClient(api_key="your-mem0-key")
def fitness_chat(user_input, user_id):
# 1. 检索相关记忆(例如:"Max 想在 4 小时内完成马拉松")
memories = mem0_client.search(user_input, filters={"user_id": user_id}, top_k=5)
context = "\n".join(m["memory"] for m in memories["results"])
# 2. 使用记忆上下文调用大语言模型
response = openai_client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": f"你是 Ray,一名跑步教练。记忆:\n{context}"},
{"role": "user", "content": user_input}
]
).choices[0].message.content
# 3. 存储对话以更新记忆层
mem0_client.add([
{"role": "user", "content": user_input},
{"role": "assistant", "content": response}
], user_id=user_id)
return response
来源: docs/cookbooks/essentials/building-ai-companion.mdx:56-84,docs/llms.txt:29-51
医疗患者助手
医疗应用需要严格控制记忆入库,以过滤推测性内容,并优先存储经过验证的医疗事实,例如过敏史或确诊诊断。
记忆架构
医疗记忆控制流程
实现模式
此模式使用 custom_instructions 来控制记忆层持久化的内容,防止推测性陈述成为"事实" docs/cookbooks/essentials/controlling-memory-ingestion.mdx:75-116。
from mem0 import MemoryClient
client = MemoryClient(api_key="your-api-key")
# 定义严格的医疗入库规则
instructions = """
仅存储已确认的医疗事实。
忽略:推测性内容(包含"可能"、"也许"、"我认为"等词语)。
存储:已确诊的诊断、已知过敏史、当前用药情况。
"""
client.project.update(custom_instructions=instructions)
# 由于指令限制,以下内容不会被存储 [docs/cookbooks/essentials/controlling-memory-ingestion.mdx:97-110]
client.add([{"role": "user", "content": "我想我可能对青霉素过敏"}], user_id="patient_123")
# 以下内容会被存储 [docs/cookbooks/essentials/controlling-memory-ingestion.mdx:200-213]
client.add([{"role": "user", "content": "史密斯医生在 3 月 15 日诊断我患有高血压"}], user_id="patient_123")
来源: docs/cookbooks/essentials/controlling-memory-ingestion.mdx:79-110,docs/cookbooks/integrations/healthcare-google-adk.mdx:61-98
个性化购物助手
电商助手使用记忆来跟踪用户偏好(颜色、品牌、预算),并将其集成到结构化的工具调用中,以提供推荐 docs/cookbooks/integrations/openai-tool-calls.mdx:7-141。
实现模式
import MemoryClient from "mem0ai";
import { OpenAI } from "openai";
const mem0Client = new MemoryClient({ apiKey: process.env.MEM0_API_KEY });
const USER_ID = "sample-user";
async function recommendCars(userInput) {
// 搜索偏好,例如"喜欢奥迪"、"预算 12 万" [docs/cookbooks/integrations/openai-tool-calls.mdx:195-198]
const relevantMemories = await mem0Client.search(userInput, { userId: USER_ID });
const memoryString = relevantMemories.results.map(m => m.memory).join("\n");
const response = await openAIClient.responses.create({
model: "gpt-5-mini",
tools: [{ type: "web_search_preview" }, carRecommendationTool],
input: `用户偏好:\n${memoryString}\n\n问题:${userInput}`,
});
return response.output;
}
来源: docs/cookbooks/integrations/openai-tool-calls.mdx:180-207,docs/llms.js:60-81
Vercel AI SDK 聊天集成
对于基于 Web 的聊天机器人,Mem0 与 Vercel AI SDK 集成,提供持久的记忆层,可以向用户高亮显示推断出的信息 examples/mem0-demo/app/api/chat/route.ts:1-112。
数据流
Vercel AI SDK 集成流程
实现模式
使用 @mem0/vercel-ai-provider,在流式传输大语言模型响应之前,检索记忆并将其注入到系统提示中 examples/mem0-demo/app/api/chat/route.ts:70-91。
import { addMemories, getMemories } from "@mem0/vercel-ai-provider";
import { streamText } from "ai";
export async function POST(req: Request) {
const { messages, userId } = await req.json();
// 使用重排序检索相关记忆
const memories = await getMemories(messages, {
user_id: userId,
rerank: true,
threshold: 0.1
});
const result = streamText({
model: openai("gpt-4o"),
messages,
system: `记忆:${memories.map(m => m.memory).join("\n")}`,
});
// 后台任务:从对话中捕获新记忆
addMemories(messages, { user_id: userId });
return result.toDataStreamResponse();
}
来源: examples/mem0-demo/app/api/chat/route.ts:70-112,examples/mem0-demo/app/assistant.tsx:45-50
多实体分区
在旅行或企业服务中,必须按 user_id、agent_id 和 app_id 对记忆进行分区,以防止不同上下文之间的数据泄露 docs/cookbooks/essentials/entity-partitioning-playbook.mdx:6-75。
作用域模式
# 为特定智能体和运行存储旅行偏好
client.add(
cam_messages,
user_id="traveler_cam",
agent_id="travel_planner",
run_id="tokyo-2025-weekend",
app_id="concierge_app"
)
# 仅在特定智能体的作用域内检索,以防止泄露
user_scope = {
"AND": [
{"user_id": "traveler_cam"},
{"app_id": "concierge_app"},
{"agent_id": "travel_planner"}
]
}
memories = client.search("有任何饮食限制吗?", filters=user_scope)
来源: docs/cookbooks/essentials/entity-partitioning-playbook.mdx:32-62,docs/platform/features/v2-memory-filters.mdx:74-102
领域特定配置表
| 领域 | 推荐的大语言模型 | 检索策略 | 关键作用域 |
|---|---|---|---|
| 客户支持 | gpt-4o-mini | 混合(语义 + BM25) | user_id,agent_id |
| 医疗 | gpt-4o | 高阈值(0.8 以上) | user_id,run_id |
| 研究 | claude-3-opus | 图谱 + 向量 | user_id,app_id |
| 电商 | gpt-5-mini | 工具驱动搜索 | user_id |
来源: docs/llms.txt:153-171,docs/open-source/python-quickstart.mdx:80-87,docs/cookbooks/essentials/controlling-memory-ingestion.mdx:171-184