[{"data":1,"prerenderedAt":3206},["ShallowReactive",2],{"\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server":3,"surround-\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server":3190},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":3183,"description":60,"extension":3184,"links":6,"meta":3185,"navigation":6,"path":3186,"seo":3187,"stem":3188,"__hash__":3189},"docs\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server.md","REST API 服务",null,{"type":8,"value":9,"toc":3169},"minimark",[10,18,23,27,46,50,54,87,91,110,119,130,628,632,1038,1044,1047,1054,1058,1134,1138,1445,1449,2486,2490,2666,2670,3068,3072,3076,3165],[11,12,13],"p",{},[14,15],"img",{"alt":16,"src":17},"MemOS Architecture","https:\u002F\u002Fcdn.memtensor.com.cn\u002Fimg\u002Fmemos_run_server_success_compressed.png",[19,20,22],"div",{"style":21},"text-align: center; margin-top: 10px","MemOS REST API 服务支持的 API",[24,25,26],"h3",{"id":26},"功能特点",[28,29,30,34,37,40,43],"ul",{},[31,32,33],"li",{},"添加新记忆：为指定用户创建一条新的记忆。",[31,35,36],{},"搜索记忆：为指定用户搜索其记忆内容。",[31,38,39],{},"获取用户所有记忆：获取某个用户的所有记忆内容。",[31,41,42],{},"记忆反馈：为指定用户反馈记忆内容。",[31,44,45],{},"与 MemOS 对话：与 MemOS 进行对话，返回 SSE 流式响应。",[47,48,49],"h2",{"id":49},"本地运行",[24,51,53],{"id":52},"_1本地下载","1、本地下载",[55,56,61],"pre",{"className":57,"code":58,"language":59,"meta":60,"style":60},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 将代码下载到本地文件夹下 \ngit clone https:\u002F\u002Fgithub.com\u002FMemTensor\u002FMemOS\n","bash","",[62,63,64,73],"code",{"__ignoreMap":60},[65,66,69],"span",{"class":67,"line":68},"line",1,[65,70,72],{"class":71},"sHwdD","# 将代码下载到本地文件夹下 \n",[65,74,76,80,84],{"class":67,"line":75},2,[65,77,79],{"class":78},"sBMFI","git",[65,81,83],{"class":82},"sfazB"," clone",[65,85,86],{"class":82}," https:\u002F\u002Fgithub.com\u002FMemTensor\u002FMemOS\n",[24,88,90],{"id":89},"_2配置环境变量","2、配置环境变量",[55,92,94],{"className":57,"code":93,"language":59,"meta":60,"style":60},"# 进入文件夹目录下\ncd MemOS\n",[62,95,96,101],{"__ignoreMap":60},[65,97,98],{"class":67,"line":68},[65,99,100],{"class":71},"# 进入文件夹目录下\n",[65,102,103,107],{"class":67,"line":75},[65,104,106],{"class":105},"s2Zo4","cd",[65,108,109],{"class":82}," MemOS\n",[111,112,114,115,118],"h4",{"id":113},"在根目录中创建一个-env-文件并设置你的环境变量","在根目录中创建一个 ",[62,116,117],{},".env"," 文件并设置你的环境变量。",[120,121,123,124,129],"h5",{"id":122},"env-快速模式配置如下完整模式参考-envexample",".env 快速模式配置如下，完整模式参考 ",[125,126,128],"a",{"href":127},"https:\u002F\u002Fgithub.com\u002FMemTensor\u002FMemOS\u002Fblob\u002Fmain\u002Fdocker\u002F.env.example",".env.example","。",[55,131,133],{"className":57,"code":132,"language":59,"meta":60,"style":60},"\n# OpenAI API 密钥 (需自定义配置)\nOPENAI_API_KEY=sk-xxx\n# OpenAI API 基础 URL \nOPENAI_API_BASE=http:\u002F\u002Fxxx:3000\u002Fv1\n# 默认模型名称\nMOS_CHAT_MODEL=qwen3-max\n\n# Memory Reader LLM 模型\nMEMRADER_MODEL=qwen3-max\n# Memory Reader API 密钥 \nMEMRADER_API_KEY=sk-xxx\n# Memory Reader API 基础 URL\nMEMRADER_API_BASE=http:\u002F\u002Fxxx:3000\u002Fv1\n\n# Embedder 模型名称\nMOS_EMBEDDER_MODEL=text-embedding-v4\n# 配置embedding backend 两种选择 ollama | universal_api\nMOS_EMBEDDER_BACKEND=universal_api\n# Embedder API 基础 URL \nMOS_EMBEDDER_API_BASE=http:\u002F\u002Fxxx:8081\u002Fv1\n# Embedder API 密钥\nMOS_EMBEDDER_API_KEY=xxx\n# Embedding 向量维度\nEMBEDDING_DIMENSION=1024\n# Reranker 后端 (http_bge | etc.)\nMOS_RERANKER_BACKEND=cosine_local\n\n# Neo4j 连接 URI\n# 可选值: neo4j-community | neo4j | nebular | polardb\nNEO4J_BACKEND=neo4j-community\n# 当 backend=neo4j* 时必须\nNEO4J_URI=bolt:\u002F\u002Flocalhost:7687\nNEO4J_USER=neo4j\nNEO4J_PASSWORD=12345678\nNEO4J_DB_NAME=neo4j\nMOS_NEO4J_SHARED_DB=false\n\n# 是否使用 redis 的调度器\nDEFAULT_USE_REDIS_QUEUE=false\n\n# 启用聊天 API\nENABLE_CHAT_API=true\n# 聊天模型列表 可以通过百炼申请. 模型可自选\nCHAT_MODEL_LIST=[{\"backend\": \"qwen\", \"api_base\": \"https:\u002F\u002Fxxx\u002Fv1\", \"api_key\": \"sk-xxx\", \"model_name_or_path\": \"qwen3-max\", \"extra_body\": {\"enable_thinking\": true} ,\"support_models\": [\"qwen3-max\"]}]\n",[62,134,135,141,146,160,166,177,183,194,199,205,215,221,231,237,247,252,258,269,275,286,292,303,309,320,326,337,343,354,359,365,371,382,388,399,410,421,431,442,447,453,463,468,474,485,491],{"__ignoreMap":60},[65,136,137],{"class":67,"line":68},[65,138,140],{"emptyLinePlaceholder":139},true,"\n",[65,142,143],{"class":67,"line":75},[65,144,145],{"class":71},"# OpenAI API 密钥 (需自定义配置)\n",[65,147,149,153,157],{"class":67,"line":148},3,[65,150,152],{"class":151},"sTEyZ","OPENAI_API_KEY",[65,154,156],{"class":155},"sMK4o","=",[65,158,159],{"class":82},"sk-xxx\n",[65,161,163],{"class":67,"line":162},4,[65,164,165],{"class":71},"# OpenAI API 基础 URL \n",[65,167,169,172,174],{"class":67,"line":168},5,[65,170,171],{"class":151},"OPENAI_API_BASE",[65,173,156],{"class":155},[65,175,176],{"class":82},"http:\u002F\u002Fxxx:3000\u002Fv1\n",[65,178,180],{"class":67,"line":179},6,[65,181,182],{"class":71},"# 默认模型名称\n",[65,184,186,189,191],{"class":67,"line":185},7,[65,187,188],{"class":151},"MOS_CHAT_MODEL",[65,190,156],{"class":155},[65,192,193],{"class":82},"qwen3-max\n",[65,195,197],{"class":67,"line":196},8,[65,198,140],{"emptyLinePlaceholder":139},[65,200,202],{"class":67,"line":201},9,[65,203,204],{"class":71},"# Memory Reader LLM 模型\n",[65,206,208,211,213],{"class":67,"line":207},10,[65,209,210],{"class":151},"MEMRADER_MODEL",[65,212,156],{"class":155},[65,214,193],{"class":82},[65,216,218],{"class":67,"line":217},11,[65,219,220],{"class":71},"# Memory Reader API 密钥 \n",[65,222,224,227,229],{"class":67,"line":223},12,[65,225,226],{"class":151},"MEMRADER_API_KEY",[65,228,156],{"class":155},[65,230,159],{"class":82},[65,232,234],{"class":67,"line":233},13,[65,235,236],{"class":71},"# Memory Reader API 基础 URL\n",[65,238,240,243,245],{"class":67,"line":239},14,[65,241,242],{"class":151},"MEMRADER_API_BASE",[65,244,156],{"class":155},[65,246,176],{"class":82},[65,248,250],{"class":67,"line":249},15,[65,251,140],{"emptyLinePlaceholder":139},[65,253,255],{"class":67,"line":254},16,[65,256,257],{"class":71},"# Embedder 模型名称\n",[65,259,261,264,266],{"class":67,"line":260},17,[65,262,263],{"class":151},"MOS_EMBEDDER_MODEL",[65,265,156],{"class":155},[65,267,268],{"class":82},"text-embedding-v4\n",[65,270,272],{"class":67,"line":271},18,[65,273,274],{"class":71},"# 配置embedding backend 两种选择 ollama | universal_api\n",[65,276,278,281,283],{"class":67,"line":277},19,[65,279,280],{"class":151},"MOS_EMBEDDER_BACKEND",[65,282,156],{"class":155},[65,284,285],{"class":82},"universal_api\n",[65,287,289],{"class":67,"line":288},20,[65,290,291],{"class":71},"# Embedder API 基础 URL \n",[65,293,295,298,300],{"class":67,"line":294},21,[65,296,297],{"class":151},"MOS_EMBEDDER_API_BASE",[65,299,156],{"class":155},[65,301,302],{"class":82},"http:\u002F\u002Fxxx:8081\u002Fv1\n",[65,304,306],{"class":67,"line":305},22,[65,307,308],{"class":71},"# Embedder API 密钥\n",[65,310,312,315,317],{"class":67,"line":311},23,[65,313,314],{"class":151},"MOS_EMBEDDER_API_KEY",[65,316,156],{"class":155},[65,318,319],{"class":82},"xxx\n",[65,321,323],{"class":67,"line":322},24,[65,324,325],{"class":71},"# Embedding 向量维度\n",[65,327,329,332,334],{"class":67,"line":328},25,[65,330,331],{"class":151},"EMBEDDING_DIMENSION",[65,333,156],{"class":155},[65,335,336],{"class":82},"1024\n",[65,338,340],{"class":67,"line":339},26,[65,341,342],{"class":71},"# Reranker 后端 (http_bge | etc.)\n",[65,344,346,349,351],{"class":67,"line":345},27,[65,347,348],{"class":151},"MOS_RERANKER_BACKEND",[65,350,156],{"class":155},[65,352,353],{"class":82},"cosine_local\n",[65,355,357],{"class":67,"line":356},28,[65,358,140],{"emptyLinePlaceholder":139},[65,360,362],{"class":67,"line":361},29,[65,363,364],{"class":71},"# Neo4j 连接 URI\n",[65,366,368],{"class":67,"line":367},30,[65,369,370],{"class":71},"# 可选值: neo4j-community | neo4j | nebular | polardb\n",[65,372,374,377,379],{"class":67,"line":373},31,[65,375,376],{"class":151},"NEO4J_BACKEND",[65,378,156],{"class":155},[65,380,381],{"class":82},"neo4j-community\n",[65,383,385],{"class":67,"line":384},32,[65,386,387],{"class":71},"# 当 backend=neo4j* 时必须\n",[65,389,391,394,396],{"class":67,"line":390},33,[65,392,393],{"class":151},"NEO4J_URI",[65,395,156],{"class":155},[65,397,398],{"class":82},"bolt:\u002F\u002Flocalhost:7687\n",[65,400,402,405,407],{"class":67,"line":401},34,[65,403,404],{"class":151},"NEO4J_USER",[65,406,156],{"class":155},[65,408,409],{"class":82},"neo4j\n",[65,411,413,416,418],{"class":67,"line":412},35,[65,414,415],{"class":151},"NEO4J_PASSWORD",[65,417,156],{"class":155},[65,419,420],{"class":82},"12345678\n",[65,422,424,427,429],{"class":67,"line":423},36,[65,425,426],{"class":151},"NEO4J_DB_NAME",[65,428,156],{"class":155},[65,430,409],{"class":82},[65,432,434,437,439],{"class":67,"line":433},37,[65,435,436],{"class":151},"MOS_NEO4J_SHARED_DB",[65,438,156],{"class":155},[65,440,441],{"class":82},"false\n",[65,443,445],{"class":67,"line":444},38,[65,446,140],{"emptyLinePlaceholder":139},[65,448,450],{"class":67,"line":449},39,[65,451,452],{"class":71},"# 是否使用 redis 的调度器\n",[65,454,456,459,461],{"class":67,"line":455},40,[65,457,458],{"class":151},"DEFAULT_USE_REDIS_QUEUE",[65,460,156],{"class":155},[65,462,441],{"class":82},[65,464,466],{"class":67,"line":465},41,[65,467,140],{"emptyLinePlaceholder":139},[65,469,471],{"class":67,"line":470},42,[65,472,473],{"class":71},"# 启用聊天 API\n",[65,475,477,480,482],{"class":67,"line":476},43,[65,478,479],{"class":151},"ENABLE_CHAT_API",[65,481,156],{"class":155},[65,483,484],{"class":82},"true\n",[65,486,488],{"class":67,"line":487},44,[65,489,490],{"class":71},"# 聊天模型列表 可以通过百炼申请. 模型可自选\n",[65,492,494,497,499,502,505,508,511,514,517,520,523,525,528,530,532,534,537,539,541,543,546,548,550,552,555,557,559,561,564,566,568,570,573,575,577,579,582,584,586,589,591,594,596,598,601,604,607,609,612,614,616,619,621,623,625],{"class":67,"line":493},45,[65,495,496],{"class":151},"CHAT_MODEL_LIST",[65,498,156],{"class":155},[65,500,501],{"class":82},"[",[65,503,504],{"class":151},"{",[65,506,507],{"class":78},"\"backend\"",[65,509,510],{"class":105},":",[65,512,513],{"class":155}," \"",[65,515,516],{"class":82},"qwen",[65,518,519],{"class":155},"\"",[65,521,522],{"class":82},",",[65,524,513],{"class":155},[65,526,527],{"class":82},"api_base",[65,529,519],{"class":155},[65,531,510],{"class":82},[65,533,513],{"class":155},[65,535,536],{"class":82},"https:\u002F\u002Fxxx\u002Fv1",[65,538,519],{"class":155},[65,540,522],{"class":82},[65,542,513],{"class":155},[65,544,545],{"class":82},"api_key",[65,547,519],{"class":155},[65,549,510],{"class":82},[65,551,513],{"class":155},[65,553,554],{"class":82},"sk-xxx",[65,556,519],{"class":155},[65,558,522],{"class":82},[65,560,513],{"class":155},[65,562,563],{"class":82},"model_name_or_path",[65,565,519],{"class":155},[65,567,510],{"class":82},[65,569,513],{"class":155},[65,571,572],{"class":82},"qwen3-max",[65,574,519],{"class":155},[65,576,522],{"class":82},[65,578,513],{"class":155},[65,580,581],{"class":82},"extra_body",[65,583,519],{"class":155},[65,585,510],{"class":82},[65,587,588],{"class":82}," {",[65,590,519],{"class":155},[65,592,593],{"class":82},"enable_thinking",[65,595,519],{"class":155},[65,597,510],{"class":82},[65,599,600],{"class":155}," true",[65,602,603],{"class":82},"}",[65,605,606],{"class":82}," ,",[65,608,519],{"class":155},[65,610,611],{"class":82},"support_models",[65,613,519],{"class":155},[65,615,510],{"class":82},[65,617,618],{"class":151}," [",[65,620,519],{"class":155},[65,622,572],{"class":82},[65,624,519],{"class":155},[65,626,627],{"class":151},"]}]\n",[24,629,631],{"id":630},"_3以百炼为例自定义配置","3、以百炼为例自定义配置",[55,633,635],{"className":57,"code":634,"language":59,"meta":60,"style":60},"# 可通过百炼平台申请\n# https:\u002F\u002Fbailian.console.aliyun.com\u002F?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#\u002Fapi\n# 申请成功后，获取API_KEY和BASE_URL，示例配置如下\n\n# OpenAI API 密钥 (用百炼的API_KEY)\nOPENAI_API_KEY=you_bailian_api_key\n# OpenAI API 基础 URL \nOPENAI_API_BASE=https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\n# 默认模型名称\nMOS_CHAT_MODEL=qwen3-max\n\n# Memory Reader LLM 模型\nMEMRADER_MODEL=qwen3-max\n# Memory Reader API 密钥 (用百炼的API_KEY)\nMEMRADER_API_KEY=you_bailian_api_key\n# Memory Reader API 基础 URL\nMEMRADER_API_BASE=https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\n\n# Embedder模型名称可以参考下面链接\n# https:\u002F\u002Fbailian.console.aliyun.com\u002F?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#\u002Fapi\u002F?type=model&url=2846066\nMOS_EMBEDDER_MODEL=text-embedding-v4\n# 配置embedding backend 两种选择 ollama | universal_api\nMOS_EMBEDDER_BACKEND=universal_api\n# Embedder API 基础 URL \nMOS_EMBEDDER_API_BASE=https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\n# Embedder API 密钥 (用百炼的API_KEY)\nMOS_EMBEDDER_API_KEY=you_bailian_api_key\n# Embedding 向量维度\nEMBEDDING_DIMENSION=1024\n# Reranker 后端 (http_bge | etc.)\nMOS_RERANKER_BACKEND=cosine_local\n\n# Neo4j 连接 URI\n# 可选值: neo4j-community | neo4j | nebular | polardb\nNEO4J_BACKEND=neo4j-community\n# 当 backend=neo4j* 时必须\nNEO4J_URI=bolt:\u002F\u002Flocalhost:7687\nNEO4J_USER=neo4j\nNEO4J_PASSWORD=12345678\nNEO4J_DB_NAME=neo4j\nMOS_NEO4J_SHARED_DB=false\n\n# 是否使用 redis 的调度器\nDEFAULT_USE_REDIS_QUEUE=false\n\n# 启用聊天 API\nENABLE_CHAT_API=true\n\nCHAT_MODEL_LIST=[{\"backend\": \"qwen\", \"api_base\": \"https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\", \"api_key\": \"you_bailian_api_key\", \"model_name_or_path\": \"qwen3-max-preview\", \"extra_body\": {\"enable_thinking\": true} ,\"support_models\": [\"qwen3-max-preview\"]}]\n",[62,636,637,642,647,652,656,661,670,674,683,687,695,699,703,711,716,724,728,736,740,745,750,758,762,770,774,782,787,795,799,807,811,819,823,827,831,839,843,851,859,867,875,883,887,891,899,903,908,917,922],{"__ignoreMap":60},[65,638,639],{"class":67,"line":68},[65,640,641],{"class":71},"# 可通过百炼平台申请\n",[65,643,644],{"class":67,"line":75},[65,645,646],{"class":71},"# https:\u002F\u002Fbailian.console.aliyun.com\u002F?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#\u002Fapi\n",[65,648,649],{"class":67,"line":148},[65,650,651],{"class":71},"# 申请成功后，获取API_KEY和BASE_URL，示例配置如下\n",[65,653,654],{"class":67,"line":162},[65,655,140],{"emptyLinePlaceholder":139},[65,657,658],{"class":67,"line":168},[65,659,660],{"class":71},"# OpenAI API 密钥 (用百炼的API_KEY)\n",[65,662,663,665,667],{"class":67,"line":179},[65,664,152],{"class":151},[65,666,156],{"class":155},[65,668,669],{"class":82},"you_bailian_api_key\n",[65,671,672],{"class":67,"line":185},[65,673,165],{"class":71},[65,675,676,678,680],{"class":67,"line":196},[65,677,171],{"class":151},[65,679,156],{"class":155},[65,681,682],{"class":82},"https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1\n",[65,684,685],{"class":67,"line":201},[65,686,182],{"class":71},[65,688,689,691,693],{"class":67,"line":207},[65,690,188],{"class":151},[65,692,156],{"class":155},[65,694,193],{"class":82},[65,696,697],{"class":67,"line":217},[65,698,140],{"emptyLinePlaceholder":139},[65,700,701],{"class":67,"line":223},[65,702,204],{"class":71},[65,704,705,707,709],{"class":67,"line":233},[65,706,210],{"class":151},[65,708,156],{"class":155},[65,710,193],{"class":82},[65,712,713],{"class":67,"line":239},[65,714,715],{"class":71},"# Memory Reader API 密钥 (用百炼的API_KEY)\n",[65,717,718,720,722],{"class":67,"line":249},[65,719,226],{"class":151},[65,721,156],{"class":155},[65,723,669],{"class":82},[65,725,726],{"class":67,"line":254},[65,727,236],{"class":71},[65,729,730,732,734],{"class":67,"line":260},[65,731,242],{"class":151},[65,733,156],{"class":155},[65,735,682],{"class":82},[65,737,738],{"class":67,"line":271},[65,739,140],{"emptyLinePlaceholder":139},[65,741,742],{"class":67,"line":277},[65,743,744],{"class":71},"# Embedder模型名称可以参考下面链接\n",[65,746,747],{"class":67,"line":288},[65,748,749],{"class":71},"# https:\u002F\u002Fbailian.console.aliyun.com\u002F?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#\u002Fapi\u002F?type=model&url=2846066\n",[65,751,752,754,756],{"class":67,"line":294},[65,753,263],{"class":151},[65,755,156],{"class":155},[65,757,268],{"class":82},[65,759,760],{"class":67,"line":305},[65,761,274],{"class":71},[65,763,764,766,768],{"class":67,"line":311},[65,765,280],{"class":151},[65,767,156],{"class":155},[65,769,285],{"class":82},[65,771,772],{"class":67,"line":322},[65,773,291],{"class":71},[65,775,776,778,780],{"class":67,"line":328},[65,777,297],{"class":151},[65,779,156],{"class":155},[65,781,682],{"class":82},[65,783,784],{"class":67,"line":339},[65,785,786],{"class":71},"# Embedder API 密钥 (用百炼的API_KEY)\n",[65,788,789,791,793],{"class":67,"line":345},[65,790,314],{"class":151},[65,792,156],{"class":155},[65,794,669],{"class":82},[65,796,797],{"class":67,"line":356},[65,798,325],{"class":71},[65,800,801,803,805],{"class":67,"line":361},[65,802,331],{"class":151},[65,804,156],{"class":155},[65,806,336],{"class":82},[65,808,809],{"class":67,"line":367},[65,810,342],{"class":71},[65,812,813,815,817],{"class":67,"line":373},[65,814,348],{"class":151},[65,816,156],{"class":155},[65,818,353],{"class":82},[65,820,821],{"class":67,"line":384},[65,822,140],{"emptyLinePlaceholder":139},[65,824,825],{"class":67,"line":390},[65,826,364],{"class":71},[65,828,829],{"class":67,"line":401},[65,830,370],{"class":71},[65,832,833,835,837],{"class":67,"line":412},[65,834,376],{"class":151},[65,836,156],{"class":155},[65,838,381],{"class":82},[65,840,841],{"class":67,"line":423},[65,842,387],{"class":71},[65,844,845,847,849],{"class":67,"line":433},[65,846,393],{"class":151},[65,848,156],{"class":155},[65,850,398],{"class":82},[65,852,853,855,857],{"class":67,"line":444},[65,854,404],{"class":151},[65,856,156],{"class":155},[65,858,409],{"class":82},[65,860,861,863,865],{"class":67,"line":449},[65,862,415],{"class":151},[65,864,156],{"class":155},[65,866,420],{"class":82},[65,868,869,871,873],{"class":67,"line":455},[65,870,426],{"class":151},[65,872,156],{"class":155},[65,874,409],{"class":82},[65,876,877,879,881],{"class":67,"line":465},[65,878,436],{"class":151},[65,880,156],{"class":155},[65,882,441],{"class":82},[65,884,885],{"class":67,"line":470},[65,886,140],{"emptyLinePlaceholder":139},[65,888,889],{"class":67,"line":476},[65,890,452],{"class":71},[65,892,893,895,897],{"class":67,"line":487},[65,894,458],{"class":151},[65,896,156],{"class":155},[65,898,441],{"class":82},[65,900,901],{"class":67,"line":493},[65,902,140],{"emptyLinePlaceholder":139},[65,904,906],{"class":67,"line":905},46,[65,907,473],{"class":71},[65,909,911,913,915],{"class":67,"line":910},47,[65,912,479],{"class":151},[65,914,156],{"class":155},[65,916,484],{"class":82},[65,918,920],{"class":67,"line":919},48,[65,921,140],{"emptyLinePlaceholder":139},[65,923,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,958,960,962,964,966,968,970,972,975,977,979,981,983,985,987,989,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036],{"class":67,"line":924},49,[65,926,496],{"class":151},[65,928,156],{"class":155},[65,930,501],{"class":82},[65,932,504],{"class":151},[65,934,507],{"class":78},[65,936,510],{"class":105},[65,938,513],{"class":155},[65,940,516],{"class":82},[65,942,519],{"class":155},[65,944,522],{"class":82},[65,946,513],{"class":155},[65,948,527],{"class":82},[65,950,519],{"class":155},[65,952,510],{"class":82},[65,954,513],{"class":155},[65,956,957],{"class":82},"https:\u002F\u002Fdashscope.aliyuncs.com\u002Fcompatible-mode\u002Fv1",[65,959,519],{"class":155},[65,961,522],{"class":82},[65,963,513],{"class":155},[65,965,545],{"class":82},[65,967,519],{"class":155},[65,969,510],{"class":82},[65,971,513],{"class":155},[65,973,974],{"class":82},"you_bailian_api_key",[65,976,519],{"class":155},[65,978,522],{"class":82},[65,980,513],{"class":155},[65,982,563],{"class":82},[65,984,519],{"class":155},[65,986,510],{"class":82},[65,988,513],{"class":155},[65,990,991],{"class":82},"qwen3-max-preview",[65,993,519],{"class":155},[65,995,522],{"class":82},[65,997,513],{"class":155},[65,999,581],{"class":82},[65,1001,519],{"class":155},[65,1003,510],{"class":82},[65,1005,588],{"class":82},[65,1007,519],{"class":155},[65,1009,593],{"class":82},[65,1011,519],{"class":155},[65,1013,510],{"class":82},[65,1015,600],{"class":155},[65,1017,603],{"class":82},[65,1019,606],{"class":82},[65,1021,519],{"class":155},[65,1023,611],{"class":82},[65,1025,519],{"class":155},[65,1027,510],{"class":82},[65,1029,618],{"class":151},[65,1031,519],{"class":155},[65,1033,991],{"class":82},[65,1035,519],{"class":155},[65,1037,627],{"class":151},[11,1039,1040],{},[14,1041],{"alt":1042,"src":1043},"MemOS bailian","https:\u002F\u002Fcdn.memtensor.com.cn\u002Fimg\u002Fget_key_url_by_bailian_compressed.png",[19,1045,1046],{"style":21},"百炼申请 API_KEY和 BASE_URL 示例",[11,1048,1049,1050,129],{},"配置docker\u002Frequirement.txt中依赖包的版本等（可忽略）。完整版可参考 ",[125,1051,1053],{"href":1052},"https:\u002F\u002Fgithub.com\u002FMemTensor\u002FMemOS\u002Fblob\u002Fmain\u002Fdocker\u002Frequirements.txt","requirements.txt",[24,1055,1057],{"id":1056},"_4启动docker","4、启动docker",[55,1059,1061],{"className":57,"code":1060,"language":59,"meta":60,"style":60}," # 如果没有安装docker,请安装对应版本，下载地址如下：\n https:\u002F\u002Fwww.docker.com\u002F\n\n# 安装完成之后，可通过客户端启动docker，或者通过命令行启动docker\n# 通过命令行启动docker\nsudo systemctl start docker\n\n# 安装完成后，查看docker状态\ndocker ps\n\n# 查看docker镜像 （可不用）\ndocker images\n\n",[62,1062,1063,1068,1073,1077,1082,1087,1101,1105,1110,1118,1122,1127],{"__ignoreMap":60},[65,1064,1065],{"class":67,"line":68},[65,1066,1067],{"class":71}," # 如果没有安装docker,请安装对应版本，下载地址如下：\n",[65,1069,1070],{"class":67,"line":75},[65,1071,1072],{"class":78}," https:\u002F\u002Fwww.docker.com\u002F\n",[65,1074,1075],{"class":67,"line":148},[65,1076,140],{"emptyLinePlaceholder":139},[65,1078,1079],{"class":67,"line":162},[65,1080,1081],{"class":71},"# 安装完成之后，可通过客户端启动docker，或者通过命令行启动docker\n",[65,1083,1084],{"class":67,"line":168},[65,1085,1086],{"class":71},"# 通过命令行启动docker\n",[65,1088,1089,1092,1095,1098],{"class":67,"line":179},[65,1090,1091],{"class":78},"sudo",[65,1093,1094],{"class":82}," systemctl",[65,1096,1097],{"class":82}," start",[65,1099,1100],{"class":82}," docker\n",[65,1102,1103],{"class":67,"line":185},[65,1104,140],{"emptyLinePlaceholder":139},[65,1106,1107],{"class":67,"line":196},[65,1108,1109],{"class":71},"# 安装完成后，查看docker状态\n",[65,1111,1112,1115],{"class":67,"line":201},[65,1113,1114],{"class":78},"docker",[65,1116,1117],{"class":82}," ps\n",[65,1119,1120],{"class":67,"line":207},[65,1121,140],{"emptyLinePlaceholder":139},[65,1123,1124],{"class":67,"line":217},[65,1125,1126],{"class":71},"# 查看docker镜像 （可不用）\n",[65,1128,1129,1131],{"class":67,"line":223},[65,1130,1114],{"class":78},[65,1132,1133],{"class":82}," images\n",[24,1135,1137],{"id":1136},"方式一docker-使用仓库依赖包镜像启动推荐使用","方式一：Docker 使用仓库依赖包镜像启动(推荐使用)",[1139,1140,1142,1158,1161,1164,1233,1237,1393,1397,1417,1423,1426,1427,1437,1441],"steps",{"level":1141},"4",[55,1143,1145],{"className":57,"code":1144,"language":59,"meta":60,"style":60},"#进入docker目录下\ncd docker\n",[62,1146,1147,1152],{"__ignoreMap":60},[65,1148,1149],{"class":67,"line":68},[65,1150,1151],{"class":71},"#进入docker目录下\n",[65,1153,1154,1156],{"class":67,"line":75},[65,1155,106],{"class":105},[65,1157,1100],{"class":82},[111,1159,1160],{"id":1160},"镜像包使用确认",[11,1162,1163],{},"包含快速模式和完整模式，可区分使用精简包（区分arm和x86）和全量包（区分arm和x86）",[55,1165,1167],{"className":57,"code":1166,"language":59,"meta":60,"style":60},"\n● 精简包：简化体量过大的 nvidia相关等依赖，对镜像实现轻量化，使本地部署更加轻量快速。\nurl: registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-base:v1.0\nurl: registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-base-arm:v1.0\n\n● 全量包：将 MemOS 全部依赖包打为镜像，可体验完整功能，通过配置 Dockerfile可直接构建启动。\nurl: registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-full-base:v1.0.0\nurl: registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-full-base-arm:v1.0.0\n",[62,1168,1169,1173,1184,1192,1199,1203,1219,1226],{"__ignoreMap":60},[65,1170,1171],{"class":67,"line":68},[65,1172,140],{"emptyLinePlaceholder":139},[65,1174,1175,1178,1181],{"class":67,"line":75},[65,1176,1177],{"class":78},"●",[65,1179,1180],{"class":82}," 精简包：简化体量过大的",[65,1182,1183],{"class":82}," nvidia相关等依赖，对镜像实现轻量化，使本地部署更加轻量快速。\n",[65,1185,1186,1189],{"class":67,"line":148},[65,1187,1188],{"class":78},"url:",[65,1190,1191],{"class":82}," registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-base:v1.0\n",[65,1193,1194,1196],{"class":67,"line":162},[65,1195,1188],{"class":78},[65,1197,1198],{"class":82}," registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-base-arm:v1.0\n",[65,1200,1201],{"class":67,"line":168},[65,1202,140],{"emptyLinePlaceholder":139},[65,1204,1205,1207,1210,1213,1216],{"class":67,"line":179},[65,1206,1177],{"class":78},[65,1208,1209],{"class":82}," 全量包：将",[65,1211,1212],{"class":82}," MemOS",[65,1214,1215],{"class":82}," 全部依赖包打为镜像，可体验完整功能，通过配置",[65,1217,1218],{"class":82}," Dockerfile可直接构建启动。\n",[65,1220,1221,1223],{"class":67,"line":185},[65,1222,1188],{"class":78},[65,1224,1225],{"class":82}," registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-full-base:v1.0.0\n",[65,1227,1228,1230],{"class":67,"line":196},[65,1229,1188],{"class":78},[65,1231,1232],{"class":82}," registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-full-base-arm:v1.0.0\n",[111,1234,1236],{"id":1235},"配置dockerfile文件","配置Dockerfile文件",[55,1238,1240],{"className":57,"code":1239,"language":59,"meta":60,"style":60},"# 当前示例使用精简包 url\nFROM registry.cn-shanghai.aliyuncs.com\u002Fmemtensor\u002Fmemos-base-arm:v1.0\n\nWORKDIR \u002Fapp\n\nENV HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n\nENV PYTHONPATH=\u002Fapp\u002Fsrc\n\nCOPY src\u002F .\u002Fsrc\u002F\n\nEXPOSE 8000\n\nCMD [\"uvicorn\", \"memos.api.server_api:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\", \"--reload\"]\n\n",[62,1241,1242,1247,1254,1258,1266,1270,1278,1282,1289,1293,1304,1308,1317,1321],{"__ignoreMap":60},[65,1243,1244],{"class":67,"line":68},[65,1245,1246],{"class":71},"# 当前示例使用精简包 url\n",[65,1248,1249,1252],{"class":67,"line":75},[65,1250,1251],{"class":78},"FROM",[65,1253,1198],{"class":82},[65,1255,1256],{"class":67,"line":148},[65,1257,140],{"emptyLinePlaceholder":139},[65,1259,1260,1263],{"class":67,"line":162},[65,1261,1262],{"class":78},"WORKDIR",[65,1264,1265],{"class":82}," \u002Fapp\n",[65,1267,1268],{"class":67,"line":168},[65,1269,140],{"emptyLinePlaceholder":139},[65,1271,1272,1275],{"class":67,"line":179},[65,1273,1274],{"class":78},"ENV",[65,1276,1277],{"class":82}," HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com\n",[65,1279,1280],{"class":67,"line":185},[65,1281,140],{"emptyLinePlaceholder":139},[65,1283,1284,1286],{"class":67,"line":196},[65,1285,1274],{"class":78},[65,1287,1288],{"class":82}," PYTHONPATH=\u002Fapp\u002Fsrc\n",[65,1290,1291],{"class":67,"line":201},[65,1292,140],{"emptyLinePlaceholder":139},[65,1294,1295,1298,1301],{"class":67,"line":207},[65,1296,1297],{"class":78},"COPY",[65,1299,1300],{"class":82}," src\u002F",[65,1302,1303],{"class":82}," .\u002Fsrc\u002F\n",[65,1305,1306],{"class":67,"line":217},[65,1307,140],{"emptyLinePlaceholder":139},[65,1309,1310,1313],{"class":67,"line":223},[65,1311,1312],{"class":78},"EXPOSE",[65,1314,1316],{"class":1315},"sbssI"," 8000\n",[65,1318,1319],{"class":67,"line":233},[65,1320,140],{"emptyLinePlaceholder":139},[65,1322,1323,1326,1328,1330,1333,1335,1338,1340,1343,1345,1347,1349,1352,1354,1356,1358,1361,1363,1365,1367,1370,1372,1374,1376,1379,1381,1383,1385,1388,1390],{"class":67,"line":239},[65,1324,1325],{"class":78},"CMD",[65,1327,618],{"class":151},[65,1329,519],{"class":155},[65,1331,1332],{"class":82},"uvicorn",[65,1334,519],{"class":155},[65,1336,1337],{"class":151},", ",[65,1339,519],{"class":155},[65,1341,1342],{"class":82},"memos.api.server_api:app",[65,1344,519],{"class":155},[65,1346,522],{"class":82},[65,1348,513],{"class":155},[65,1350,1351],{"class":82},"--host",[65,1353,519],{"class":155},[65,1355,522],{"class":82},[65,1357,513],{"class":155},[65,1359,1360],{"class":82},"0.0.0.0",[65,1362,519],{"class":155},[65,1364,522],{"class":82},[65,1366,513],{"class":155},[65,1368,1369],{"class":82},"--port",[65,1371,519],{"class":155},[65,1373,522],{"class":82},[65,1375,513],{"class":155},[65,1377,1378],{"class":82},"8000",[65,1380,519],{"class":155},[65,1382,522],{"class":82},[65,1384,513],{"class":155},[65,1386,1387],{"class":82},"--reload",[65,1389,519],{"class":155},[65,1391,1392],{"class":82},"]\n",[111,1394,1396],{"id":1395},"构建并启动服务","构建并启动服务 ：",[55,1398,1400],{"className":57,"code":1399,"language":59,"meta":60,"style":60},"# 在docker目录下\ndocker compose up\n",[62,1401,1402,1407],{"__ignoreMap":60},[65,1403,1404],{"class":67,"line":68},[65,1405,1406],{"class":71},"# 在docker目录下\n",[65,1408,1409,1411,1414],{"class":67,"line":75},[65,1410,1114],{"class":78},[65,1412,1413],{"class":82}," compose",[65,1415,1416],{"class":82}," up\n",[11,1418,1419],{},[14,1420],{"alt":1421,"src":1422},"MemOS buildComposeupSuccess","https:\u002F\u002Fcdn.memtensor.com.cn\u002Fimg\u002Fmemos_build_composeup_success_compressed.png",[19,1424,1425],{"style":21},"示例图片，端口按 docker 自定义的配置","  ",[111,1428,1430,1431,1436],{"id":1429},"通过-httplocalhost8000docs-访问-api","通过 ",[125,1432,1433],{"href":1433,"rel":1434},"http:\u002F\u002Flocalhost:8000\u002Fdocs",[1435],"nofollow"," 访问 API。",[11,1438,1439],{},[14,1440],{"alt":16,"src":17},[111,1442,1444],{"id":1443},"测试用例-添加用户记忆-查询用户记忆-参考docker-compose-up测试用例","测试用例 (添加用户记忆->查询用户记忆) 参考Docker Compose up测试用例",[24,1446,1448],{"id":1447},"方式二客户端install-docker-compose-up","方式二：客户端install Docker Compose up",[1139,1450,1451,1456,1459,1475,1478,1560,1564,1603,1609,1612,1616,1625,1799,1807,2482],{"level":1141},[11,1452,1453,1454,129],{},"开发环境的 Docker Compose up 已预配置了 qdrant、neo4j。\n运行服务器需要环境变量 ",[62,1455,152],{},[111,1457,1458],{"id":1458},"进入docker文件夹",[55,1460,1462],{"className":57,"code":1461,"language":59,"meta":60,"style":60},"# 当前文件夹下进入docker文件夹\ncd docker\n",[62,1463,1464,1469],{"__ignoreMap":60},[65,1465,1466],{"class":67,"line":68},[65,1467,1468],{"class":71},"# 当前文件夹下进入docker文件夹\n",[65,1470,1471,1473],{"class":67,"line":75},[65,1472,106],{"class":105},[65,1474,1100],{"class":82},[111,1476,1477],{"id":1477},"安装对应依赖模块",[55,1479,1481],{"className":57,"code":1480,"language":59,"meta":60,"style":60},"\npip install --upgrade pip && pip install --no-cache-dir -r requirements.txt\n# 使用阿里云源安装依赖\npip install --upgrade pip && pip install --no-cache-dir -r requirements.txt -i https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F\n\n# command not found: pip  使用pip3\n\n\n\n",[62,1482,1483,1487,1517,1522,1551,1555],{"__ignoreMap":60},[65,1484,1485],{"class":67,"line":68},[65,1486,140],{"emptyLinePlaceholder":139},[65,1488,1489,1492,1495,1498,1501,1504,1506,1508,1511,1514],{"class":67,"line":75},[65,1490,1491],{"class":78},"pip",[65,1493,1494],{"class":82}," install",[65,1496,1497],{"class":82}," --upgrade",[65,1499,1500],{"class":82}," pip",[65,1502,1503],{"class":155}," &&",[65,1505,1500],{"class":78},[65,1507,1494],{"class":82},[65,1509,1510],{"class":82}," --no-cache-dir",[65,1512,1513],{"class":82}," -r",[65,1515,1516],{"class":82}," requirements.txt\n",[65,1518,1519],{"class":67,"line":148},[65,1520,1521],{"class":71},"# 使用阿里云源安装依赖\n",[65,1523,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1545,1548],{"class":67,"line":162},[65,1525,1491],{"class":78},[65,1527,1494],{"class":82},[65,1529,1497],{"class":82},[65,1531,1500],{"class":82},[65,1533,1503],{"class":155},[65,1535,1500],{"class":78},[65,1537,1494],{"class":82},[65,1539,1510],{"class":82},[65,1541,1513],{"class":82},[65,1543,1544],{"class":82}," requirements.txt",[65,1546,1547],{"class":82}," -i",[65,1549,1550],{"class":82}," https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F\n",[65,1552,1553],{"class":67,"line":168},[65,1554,140],{"emptyLinePlaceholder":139},[65,1556,1557],{"class":67,"line":179},[65,1558,1559],{"class":71},"# command not found: pip  使用pip3\n",[111,1561,1563],{"id":1562},"在docker目录下使用-docker-compose-up启动容器保证vpn正常连接","在docker目录下使用 Docker Compose Up启动容器(保证vpn正常连接)：",[55,1565,1567],{"className":57,"code":1566,"language":59,"meta":60,"style":60},"\n# 首次运行需要build\ndocker compose up --build\n# 再次运行则不需要\ndocker compose up\n\n",[62,1568,1569,1573,1578,1590,1595],{"__ignoreMap":60},[65,1570,1571],{"class":67,"line":68},[65,1572,140],{"emptyLinePlaceholder":139},[65,1574,1575],{"class":67,"line":75},[65,1576,1577],{"class":71},"# 首次运行需要build\n",[65,1579,1580,1582,1584,1587],{"class":67,"line":148},[65,1581,1114],{"class":78},[65,1583,1413],{"class":82},[65,1585,1586],{"class":82}," up",[65,1588,1589],{"class":82}," --build\n",[65,1591,1592],{"class":67,"line":162},[65,1593,1594],{"class":71},"# 再次运行则不需要\n",[65,1596,1597,1599,1601],{"class":67,"line":168},[65,1598,1114],{"class":78},[65,1600,1413],{"class":82},[65,1602,1416],{"class":82},[111,1604,1430,1606,1436],{"id":1605},"通过-httplocalhost8000docs-访问-api-1",[125,1607,1433],{"href":1433,"rel":1608},[1435],[111,1610,1611],{"id":1611},"示例流程",[120,1613,1615],{"id":1614},"查询用户记忆没有继续往后-添加用户记忆-查询用户记忆","(查询用户记忆（没有继续往后）->添加用户记忆->查询用户记忆)",[120,1617,1619,1620,1624],{"id":1618},"添加用户记忆-httplocalhost8000productadd-post","添加用户记忆 ",[125,1621,1622],{"href":1622,"rel":1623},"http:\u002F\u002Flocalhost:8000\u002Fproduct\u002Fadd",[1435]," (POST)",[55,1626,1628],{"className":57,"code":1627,"language":59,"meta":60,"style":60},"# 请求参数\n{\n  \"user_id\": \"8736b16e-1d20-4163-980b-a5063c3facdc\",\n  \"mem_cube_id\": \"b32d0977-435d-4828-a86f-4f47f8b55bca\",\n  \"async_mode\": \"async\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"我喜欢草莓\"\n    }\n  ]\n}\n# 响应\n{\n    \"code\": 200,\n    \"message\": \"Memory created successfully\",\n    \"data\": null\n}\n",[62,1629,1630,1635,1640,1657,1673,1689,1699,1704,1720,1735,1740,1745,1750,1755,1759,1769,1785,1795],{"__ignoreMap":60},[65,1631,1632],{"class":67,"line":68},[65,1633,1634],{"class":71},"# 请求参数\n",[65,1636,1637],{"class":67,"line":75},[65,1638,1639],{"class":155},"{\n",[65,1641,1642,1645,1647,1649,1652,1654],{"class":67,"line":148},[65,1643,1644],{"class":78},"  \"user_id\"",[65,1646,510],{"class":105},[65,1648,513],{"class":155},[65,1650,1651],{"class":82},"8736b16e-1d20-4163-980b-a5063c3facdc",[65,1653,519],{"class":155},[65,1655,1656],{"class":82},",\n",[65,1658,1659,1662,1664,1666,1669,1671],{"class":67,"line":162},[65,1660,1661],{"class":78},"  \"mem_cube_id\"",[65,1663,510],{"class":105},[65,1665,513],{"class":155},[65,1667,1668],{"class":82},"b32d0977-435d-4828-a86f-4f47f8b55bca",[65,1670,519],{"class":155},[65,1672,1656],{"class":82},[65,1674,1675,1678,1680,1682,1685,1687],{"class":67,"line":168},[65,1676,1677],{"class":78},"  \"async_mode\"",[65,1679,510],{"class":105},[65,1681,513],{"class":155},[65,1683,1684],{"class":82},"async",[65,1686,519],{"class":155},[65,1688,1656],{"class":82},[65,1690,1691,1694,1696],{"class":67,"line":179},[65,1692,1693],{"class":78},"  \"messages\"",[65,1695,510],{"class":105},[65,1697,1698],{"class":151}," [\n",[65,1700,1701],{"class":67,"line":185},[65,1702,1703],{"class":155},"    {\n",[65,1705,1706,1709,1711,1713,1716,1718],{"class":67,"line":196},[65,1707,1708],{"class":78},"      \"role\"",[65,1710,510],{"class":105},[65,1712,513],{"class":155},[65,1714,1715],{"class":82},"user",[65,1717,519],{"class":155},[65,1719,1656],{"class":82},[65,1721,1722,1725,1727,1729,1732],{"class":67,"line":201},[65,1723,1724],{"class":78},"      \"content\"",[65,1726,510],{"class":105},[65,1728,513],{"class":155},[65,1730,1731],{"class":82},"我喜欢草莓",[65,1733,1734],{"class":155},"\"\n",[65,1736,1737],{"class":67,"line":207},[65,1738,1739],{"class":155},"    }\n",[65,1741,1742],{"class":67,"line":217},[65,1743,1744],{"class":151},"  ]\n",[65,1746,1747],{"class":67,"line":223},[65,1748,1749],{"class":155},"}\n",[65,1751,1752],{"class":67,"line":233},[65,1753,1754],{"class":71},"# 响应\n",[65,1756,1757],{"class":67,"line":239},[65,1758,1639],{"class":155},[65,1760,1761,1764,1766],{"class":67,"line":249},[65,1762,1763],{"class":78},"    \"code\"",[65,1765,510],{"class":105},[65,1767,1768],{"class":82}," 200,\n",[65,1770,1771,1774,1776,1778,1781,1783],{"class":67,"line":254},[65,1772,1773],{"class":78},"    \"message\"",[65,1775,510],{"class":105},[65,1777,513],{"class":155},[65,1779,1780],{"class":82},"Memory created successfully",[65,1782,519],{"class":155},[65,1784,1656],{"class":82},[65,1786,1787,1790,1792],{"class":67,"line":260},[65,1788,1789],{"class":78},"    \"data\"",[65,1791,510],{"class":105},[65,1793,1794],{"class":82}," null\n",[65,1796,1797],{"class":67,"line":271},[65,1798,1749],{"class":155},[120,1800,1802,1803,1624],{"id":1801},"查询用户记忆-httplocalhost8000productsearch-post","查询用户记忆 ",[125,1804,1805],{"href":1805,"rel":1806},"http:\u002F\u002Flocalhost:8000\u002Fproduct\u002Fsearch",[1435],[55,1808,1810],{"className":57,"code":1809,"language":59,"meta":60,"style":60},"# 请求参数\n{\n  \"query\": \"我喜欢什么\",\n  \"user_id\": \"8736b16e-1d20-4163-980b-a5063c3facdc\",\n  \"mem_cube_id\": \"b32d0977-435d-4828-a86f-4f47f8b55bca\"\n}\n# 响应\n{\n    \"code\": 200,\n    \"message\": \"Search completed successfully\",\n    \"data\": {\n        \"text_mem\": [\n          {\n            \"cube_id\": \"7231eda8-6c57-4f6e-97ce-98b699eebb98\",\n            \"memories\": [\n              {\n                  \"id\": \"2f40be8f-736c-4a5f-aada-9489037769e0\",\n                  \"memory\": \"[user观点]用户喜欢草莓。\",\n                  \"metadata\": {\n                      \"user_id\": \"de8215e3-3beb-4afc-9b64-ae594d62f1ea\",\n                      \"session_id\": \"root_session\",\n                      \"status\": \"activated\",\n                      \"type\": \"fact\",\n                      \"key\": \"用户对草莓的喜好\",\n                      \"confidence\": 0.99,\n                      \"source\": null,\n                      \"tags\": [\n                          \"喜好\",\n                          \"草莓\"\n                      ],\n                      \"visibility\": null,\n                      \"updated_at\": \"2025-09-18T08:23:44.625479000+00:00\",\n                      \"memory_type\": \"UserMemory\",\n                      \"sources\": [],\n                      \"embedding\": [],\n                      \"created_at\": \"2025-09-18T08:23:44.625511000+00:00\",\n                      \"usage\": [\n                          \"{\n                            \"time\": \"2025-09-18T08:24:17.759748\", \n                            \"info\": {\n                              \"user_id\": \"de8215e3-3beb-4afc-9b64-ae594d62f1ea\",\n                              \"session_id\": \"root_session\"\n                            }\n                          }\"\n                      ],\n                      \"background\": \"用户表达了对草莓的喜好，显示出他们在饮食偏好上的倾向。\",\n                      \"relativity\": 0.6349761312470591,\n                      \"vector_sync\": \"success\",\n                      \"ref_id\": \"[2f40be8f]\",\n                      \"id\": \"2f40be8f-736c-4a5f-aada-9489037769e0\",\n                      \"memory\": \"[user观点]用户喜欢草莓。\"\n                  },\n                  \"ref_id\": \"[2f40be8f]\"\n              },\n              ...\n            }\n          }\n        ],\n        \"act_mem\": [],\n        \"para_mem\": []\n    }\n}\n\n\n\n# 响应失败，原因排查\n# src\u002Fmemos\u002Fapi\u002Fconfig.py\n# 检查get_neo4j_community_config方法中配置的\"neo4j_vec_db\"和\"EMBEDDING_DIMENSION\"\n",[62,1811,1812,1816,1820,1836,1850,1862,1866,1870,1874,1882,1897,1906,1915,1920,1936,1945,1950,1966,1982,1991,2007,2023,2039,2055,2071,2081,2091,2100,2107,2112,2117,2126,2142,2158,2168,2177,2193,2202,2207,2224,2234,2249,2262,2267,2272,2276,2292,2302,2318,2334,2350,2364,2372,2386,2394,2400,2406,2412,2418,2428,2439,2444,2449,2454,2459,2464,2470,2476],{"__ignoreMap":60},[65,1813,1814],{"class":67,"line":68},[65,1815,1634],{"class":71},[65,1817,1818],{"class":67,"line":75},[65,1819,1639],{"class":155},[65,1821,1822,1825,1827,1829,1832,1834],{"class":67,"line":148},[65,1823,1824],{"class":78},"  \"query\"",[65,1826,510],{"class":105},[65,1828,513],{"class":155},[65,1830,1831],{"class":82},"我喜欢什么",[65,1833,519],{"class":155},[65,1835,1656],{"class":82},[65,1837,1838,1840,1842,1844,1846,1848],{"class":67,"line":162},[65,1839,1644],{"class":78},[65,1841,510],{"class":105},[65,1843,513],{"class":155},[65,1845,1651],{"class":82},[65,1847,519],{"class":155},[65,1849,1656],{"class":82},[65,1851,1852,1854,1856,1858,1860],{"class":67,"line":168},[65,1853,1661],{"class":78},[65,1855,510],{"class":105},[65,1857,513],{"class":155},[65,1859,1668],{"class":82},[65,1861,1734],{"class":155},[65,1863,1864],{"class":67,"line":179},[65,1865,1749],{"class":155},[65,1867,1868],{"class":67,"line":185},[65,1869,1754],{"class":71},[65,1871,1872],{"class":67,"line":196},[65,1873,1639],{"class":155},[65,1875,1876,1878,1880],{"class":67,"line":201},[65,1877,1763],{"class":78},[65,1879,510],{"class":105},[65,1881,1768],{"class":82},[65,1883,1884,1886,1888,1890,1893,1895],{"class":67,"line":207},[65,1885,1773],{"class":78},[65,1887,510],{"class":105},[65,1889,513],{"class":155},[65,1891,1892],{"class":82},"Search completed successfully",[65,1894,519],{"class":155},[65,1896,1656],{"class":82},[65,1898,1899,1901,1903],{"class":67,"line":217},[65,1900,1789],{"class":78},[65,1902,510],{"class":105},[65,1904,1905],{"class":82}," {\n",[65,1907,1908,1911,1913],{"class":67,"line":223},[65,1909,1910],{"class":78},"        \"text_mem\"",[65,1912,510],{"class":105},[65,1914,1698],{"class":151},[65,1916,1917],{"class":67,"line":233},[65,1918,1919],{"class":155},"          {\n",[65,1921,1922,1925,1927,1929,1932,1934],{"class":67,"line":239},[65,1923,1924],{"class":78},"            \"cube_id\"",[65,1926,510],{"class":105},[65,1928,513],{"class":155},[65,1930,1931],{"class":82},"7231eda8-6c57-4f6e-97ce-98b699eebb98",[65,1933,519],{"class":155},[65,1935,1656],{"class":82},[65,1937,1938,1941,1943],{"class":67,"line":249},[65,1939,1940],{"class":78},"            \"memories\"",[65,1942,510],{"class":105},[65,1944,1698],{"class":151},[65,1946,1947],{"class":67,"line":254},[65,1948,1949],{"class":155},"              {\n",[65,1951,1952,1955,1957,1959,1962,1964],{"class":67,"line":260},[65,1953,1954],{"class":78},"                  \"id\"",[65,1956,510],{"class":105},[65,1958,513],{"class":155},[65,1960,1961],{"class":82},"2f40be8f-736c-4a5f-aada-9489037769e0",[65,1963,519],{"class":155},[65,1965,1656],{"class":82},[65,1967,1968,1971,1973,1975,1978,1980],{"class":67,"line":271},[65,1969,1970],{"class":78},"                  \"memory\"",[65,1972,510],{"class":105},[65,1974,513],{"class":155},[65,1976,1977],{"class":82},"[user观点]用户喜欢草莓。",[65,1979,519],{"class":155},[65,1981,1656],{"class":82},[65,1983,1984,1987,1989],{"class":67,"line":277},[65,1985,1986],{"class":78},"                  \"metadata\"",[65,1988,510],{"class":105},[65,1990,1905],{"class":82},[65,1992,1993,1996,1998,2000,2003,2005],{"class":67,"line":288},[65,1994,1995],{"class":78},"                      \"user_id\"",[65,1997,510],{"class":105},[65,1999,513],{"class":155},[65,2001,2002],{"class":82},"de8215e3-3beb-4afc-9b64-ae594d62f1ea",[65,2004,519],{"class":155},[65,2006,1656],{"class":82},[65,2008,2009,2012,2014,2016,2019,2021],{"class":67,"line":294},[65,2010,2011],{"class":78},"                      \"session_id\"",[65,2013,510],{"class":105},[65,2015,513],{"class":155},[65,2017,2018],{"class":82},"root_session",[65,2020,519],{"class":155},[65,2022,1656],{"class":82},[65,2024,2025,2028,2030,2032,2035,2037],{"class":67,"line":305},[65,2026,2027],{"class":78},"                      \"status\"",[65,2029,510],{"class":105},[65,2031,513],{"class":155},[65,2033,2034],{"class":82},"activated",[65,2036,519],{"class":155},[65,2038,1656],{"class":82},[65,2040,2041,2044,2046,2048,2051,2053],{"class":67,"line":311},[65,2042,2043],{"class":78},"                      \"type\"",[65,2045,510],{"class":105},[65,2047,513],{"class":155},[65,2049,2050],{"class":82},"fact",[65,2052,519],{"class":155},[65,2054,1656],{"class":82},[65,2056,2057,2060,2062,2064,2067,2069],{"class":67,"line":322},[65,2058,2059],{"class":78},"                      \"key\"",[65,2061,510],{"class":105},[65,2063,513],{"class":155},[65,2065,2066],{"class":82},"用户对草莓的喜好",[65,2068,519],{"class":155},[65,2070,1656],{"class":82},[65,2072,2073,2076,2078],{"class":67,"line":328},[65,2074,2075],{"class":78},"                      \"confidence\"",[65,2077,510],{"class":105},[65,2079,2080],{"class":82}," 0.99,\n",[65,2082,2083,2086,2088],{"class":67,"line":339},[65,2084,2085],{"class":78},"                      \"source\"",[65,2087,510],{"class":105},[65,2089,2090],{"class":82}," null,\n",[65,2092,2093,2096,2098],{"class":67,"line":345},[65,2094,2095],{"class":78},"                      \"tags\"",[65,2097,510],{"class":105},[65,2099,1698],{"class":151},[65,2101,2102,2105],{"class":67,"line":356},[65,2103,2104],{"class":78},"                          \"喜好\"",[65,2106,1656],{"class":78},[65,2108,2109],{"class":67,"line":361},[65,2110,2111],{"class":78},"                          \"草莓\"\n",[65,2113,2114],{"class":67,"line":367},[65,2115,2116],{"class":151},"                      ],\n",[65,2118,2119,2122,2124],{"class":67,"line":373},[65,2120,2121],{"class":78},"                      \"visibility\"",[65,2123,510],{"class":105},[65,2125,2090],{"class":82},[65,2127,2128,2131,2133,2135,2138,2140],{"class":67,"line":384},[65,2129,2130],{"class":78},"                      \"updated_at\"",[65,2132,510],{"class":105},[65,2134,513],{"class":155},[65,2136,2137],{"class":82},"2025-09-18T08:23:44.625479000+00:00",[65,2139,519],{"class":155},[65,2141,1656],{"class":82},[65,2143,2144,2147,2149,2151,2154,2156],{"class":67,"line":390},[65,2145,2146],{"class":78},"                      \"memory_type\"",[65,2148,510],{"class":105},[65,2150,513],{"class":155},[65,2152,2153],{"class":82},"UserMemory",[65,2155,519],{"class":155},[65,2157,1656],{"class":82},[65,2159,2160,2163,2165],{"class":67,"line":401},[65,2161,2162],{"class":78},"                      \"sources\"",[65,2164,510],{"class":105},[65,2166,2167],{"class":151}," [],\n",[65,2169,2170,2173,2175],{"class":67,"line":412},[65,2171,2172],{"class":78},"                      \"embedding\"",[65,2174,510],{"class":105},[65,2176,2167],{"class":151},[65,2178,2179,2182,2184,2186,2189,2191],{"class":67,"line":423},[65,2180,2181],{"class":78},"                      \"created_at\"",[65,2183,510],{"class":105},[65,2185,513],{"class":155},[65,2187,2188],{"class":82},"2025-09-18T08:23:44.625511000+00:00",[65,2190,519],{"class":155},[65,2192,1656],{"class":82},[65,2194,2195,2198,2200],{"class":67,"line":433},[65,2196,2197],{"class":78},"                      \"usage\"",[65,2199,510],{"class":105},[65,2201,1698],{"class":151},[65,2203,2204],{"class":67,"line":444},[65,2205,2206],{"class":78},"                          \"{\n",[65,2208,2209,2212,2215,2218,2221],{"class":67,"line":449},[65,2210,2211],{"class":78},"                            \"",[65,2213,2214],{"class":78},"time",[65,2216,2217],{"class":78},"\": \"",[65,2219,2220],{"class":78},"2025-09-18T08:24:17.759748",[65,2222,2223],{"class":78},"\", \n",[65,2225,2226,2228,2231],{"class":67,"line":455},[65,2227,2211],{"class":78},[65,2229,2230],{"class":78},"info",[65,2232,2233],{"class":78},"\": {\n",[65,2235,2236,2239,2242,2244,2246],{"class":67,"line":465},[65,2237,2238],{"class":78},"                              \"",[65,2240,2241],{"class":78},"user_id",[65,2243,2217],{"class":78},[65,2245,2002],{"class":78},[65,2247,2248],{"class":78},"\",\n",[65,2250,2251,2253,2256,2258,2260],{"class":67,"line":470},[65,2252,2238],{"class":78},[65,2254,2255],{"class":78},"session_id",[65,2257,2217],{"class":78},[65,2259,2018],{"class":78},[65,2261,1734],{"class":78},[65,2263,2264],{"class":67,"line":476},[65,2265,2266],{"class":78},"                            }\n",[65,2268,2269],{"class":67,"line":487},[65,2270,2271],{"class":78},"                          }\"\n",[65,2273,2274],{"class":67,"line":493},[65,2275,2116],{"class":151},[65,2277,2278,2281,2283,2285,2288,2290],{"class":67,"line":905},[65,2279,2280],{"class":78},"                      \"background\"",[65,2282,510],{"class":105},[65,2284,513],{"class":155},[65,2286,2287],{"class":82},"用户表达了对草莓的喜好，显示出他们在饮食偏好上的倾向。",[65,2289,519],{"class":155},[65,2291,1656],{"class":82},[65,2293,2294,2297,2299],{"class":67,"line":910},[65,2295,2296],{"class":78},"                      \"relativity\"",[65,2298,510],{"class":105},[65,2300,2301],{"class":82}," 0.6349761312470591,\n",[65,2303,2304,2307,2309,2311,2314,2316],{"class":67,"line":919},[65,2305,2306],{"class":78},"                      \"vector_sync\"",[65,2308,510],{"class":105},[65,2310,513],{"class":155},[65,2312,2313],{"class":82},"success",[65,2315,519],{"class":155},[65,2317,1656],{"class":82},[65,2319,2320,2323,2325,2327,2330,2332],{"class":67,"line":924},[65,2321,2322],{"class":78},"                      \"ref_id\"",[65,2324,510],{"class":105},[65,2326,513],{"class":155},[65,2328,2329],{"class":82},"[2f40be8f]",[65,2331,519],{"class":155},[65,2333,1656],{"class":82},[65,2335,2337,2340,2342,2344,2346,2348],{"class":67,"line":2336},50,[65,2338,2339],{"class":78},"                      \"id\"",[65,2341,510],{"class":105},[65,2343,513],{"class":155},[65,2345,1961],{"class":82},[65,2347,519],{"class":155},[65,2349,1656],{"class":82},[65,2351,2353,2356,2358,2360,2362],{"class":67,"line":2352},51,[65,2354,2355],{"class":78},"                      \"memory\"",[65,2357,510],{"class":105},[65,2359,513],{"class":155},[65,2361,1977],{"class":82},[65,2363,1734],{"class":155},[65,2365,2367,2370],{"class":67,"line":2366},52,[65,2368,2369],{"class":155},"                  }",[65,2371,1656],{"class":151},[65,2373,2375,2378,2380,2382,2384],{"class":67,"line":2374},53,[65,2376,2377],{"class":78},"                  \"ref_id\"",[65,2379,510],{"class":105},[65,2381,513],{"class":155},[65,2383,2329],{"class":82},[65,2385,1734],{"class":155},[65,2387,2389,2392],{"class":67,"line":2388},54,[65,2390,2391],{"class":155},"              }",[65,2393,1656],{"class":151},[65,2395,2397],{"class":67,"line":2396},55,[65,2398,2399],{"class":105},"              ...\n",[65,2401,2403],{"class":67,"line":2402},56,[65,2404,2405],{"class":155},"            }\n",[65,2407,2409],{"class":67,"line":2408},57,[65,2410,2411],{"class":151},"          }\n",[65,2413,2415],{"class":67,"line":2414},58,[65,2416,2417],{"class":151},"        ],\n",[65,2419,2421,2424,2426],{"class":67,"line":2420},59,[65,2422,2423],{"class":78},"        \"act_mem\"",[65,2425,510],{"class":105},[65,2427,2167],{"class":151},[65,2429,2431,2434,2436],{"class":67,"line":2430},60,[65,2432,2433],{"class":78},"        \"para_mem\"",[65,2435,510],{"class":105},[65,2437,2438],{"class":151}," []\n",[65,2440,2442],{"class":67,"line":2441},61,[65,2443,1739],{"class":151},[65,2445,2447],{"class":67,"line":2446},62,[65,2448,1749],{"class":151},[65,2450,2452],{"class":67,"line":2451},63,[65,2453,140],{"emptyLinePlaceholder":139},[65,2455,2457],{"class":67,"line":2456},64,[65,2458,140],{"emptyLinePlaceholder":139},[65,2460,2462],{"class":67,"line":2461},65,[65,2463,140],{"emptyLinePlaceholder":139},[65,2465,2467],{"class":67,"line":2466},66,[65,2468,2469],{"class":71},"# 响应失败，原因排查\n",[65,2471,2473],{"class":67,"line":2472},67,[65,2474,2475],{"class":71},"# src\u002Fmemos\u002Fapi\u002Fconfig.py\n",[65,2477,2479],{"class":67,"line":2478},68,[65,2480,2481],{"class":71},"# 检查get_neo4j_community_config方法中配置的\"neo4j_vec_db\"和\"EMBEDDING_DIMENSION\"\n",[111,2483,2485],{"id":2484},"对服务器代码或库代码进行修改将自动重新加载服务器","对服务器代码或库代码进行修改将自动重新加载服务器。",[24,2487,2489],{"id":2488},"方式三客户端install-使用-cli-命令","方式三：客户端install 使用 CLI 命令",[1139,2491,2492,2495,2526,2530,2656,2660],{"level":1141},[111,2493,2494],{"id":2494},"安装依赖",[55,2496,2498],{"className":57,"code":2497,"language":59,"meta":60,"style":60},"# pip install --upgrade pip && pip install --no-cache-dir -r .\u002Fdocker\u002Frequirements.txt\n# 使用阿里云源安装依赖\npip install --no-cache-dir -r .\u002Fdocker\u002Frequirements.txt -i https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F\n\n\n",[62,2499,2500,2505,2509],{"__ignoreMap":60},[65,2501,2502],{"class":67,"line":68},[65,2503,2504],{"class":71},"# pip install --upgrade pip && pip install --no-cache-dir -r .\u002Fdocker\u002Frequirements.txt\n",[65,2506,2507],{"class":67,"line":75},[65,2508,1521],{"class":71},[65,2510,2511,2513,2515,2517,2519,2522,2524],{"class":67,"line":148},[65,2512,1491],{"class":78},[65,2514,1494],{"class":82},[65,2516,1510],{"class":82},[65,2518,1513],{"class":82},[65,2520,2521],{"class":82}," .\u002Fdocker\u002Frequirements.txt",[65,2523,1547],{"class":82},[65,2525,1550],{"class":82},[111,2527,2529],{"id":2528},"在终端中打开运行以下命令进行安装","在终端中打开运行以下命令进行安装：",[55,2531,2533],{"className":57,"code":2532,"language":59,"meta":60,"style":60},"\n#  目前可能需要手动安装的包 这两个包需要找资源\n# neo4j.5.26.4.tar   qdrant.v1.15.3.tar\ndocker load -i neo4j.5.26.4.tar\ndocker load -i qdrant.v1.15.3.tar\n# 查看是否安装成功\ndocker images\n# 查看是否跑起来了\ndocker ps -a\n\n#  若启动时出现ModuleNotFoundError: No module named 'memos'，是因为路径匹配有问题，请执行\nexport PYTHONPATH=\u002Fyou-file-absolute-path\u002FMemOS\u002Fsrc\n\n# 根目录\n uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8000 --workers 1\n\n\n\n",[62,2534,2535,2539,2544,2549,2561,2572,2577,2583,2588,2598,2602,2607,2621,2625,2630],{"__ignoreMap":60},[65,2536,2537],{"class":67,"line":68},[65,2538,140],{"emptyLinePlaceholder":139},[65,2540,2541],{"class":67,"line":75},[65,2542,2543],{"class":71},"#  目前可能需要手动安装的包 这两个包需要找资源\n",[65,2545,2546],{"class":67,"line":148},[65,2547,2548],{"class":71},"# neo4j.5.26.4.tar   qdrant.v1.15.3.tar\n",[65,2550,2551,2553,2556,2558],{"class":67,"line":162},[65,2552,1114],{"class":78},[65,2554,2555],{"class":82}," load",[65,2557,1547],{"class":82},[65,2559,2560],{"class":82}," neo4j.5.26.4.tar\n",[65,2562,2563,2565,2567,2569],{"class":67,"line":168},[65,2564,1114],{"class":78},[65,2566,2555],{"class":82},[65,2568,1547],{"class":82},[65,2570,2571],{"class":82}," qdrant.v1.15.3.tar\n",[65,2573,2574],{"class":67,"line":179},[65,2575,2576],{"class":71},"# 查看是否安装成功\n",[65,2578,2579,2581],{"class":67,"line":185},[65,2580,1114],{"class":78},[65,2582,1133],{"class":82},[65,2584,2585],{"class":67,"line":196},[65,2586,2587],{"class":71},"# 查看是否跑起来了\n",[65,2589,2590,2592,2595],{"class":67,"line":201},[65,2591,1114],{"class":78},[65,2593,2594],{"class":82}," ps",[65,2596,2597],{"class":82}," -a\n",[65,2599,2600],{"class":67,"line":207},[65,2601,140],{"emptyLinePlaceholder":139},[65,2603,2604],{"class":67,"line":217},[65,2605,2606],{"class":71},"#  若启动时出现ModuleNotFoundError: No module named 'memos'，是因为路径匹配有问题，请执行\n",[65,2608,2609,2613,2616,2618],{"class":67,"line":223},[65,2610,2612],{"class":2611},"spNyl","export",[65,2614,2615],{"class":151}," PYTHONPATH",[65,2617,156],{"class":155},[65,2619,2620],{"class":151},"\u002Fyou-file-absolute-path\u002FMemOS\u002Fsrc\n",[65,2622,2623],{"class":67,"line":233},[65,2624,140],{"emptyLinePlaceholder":139},[65,2626,2627],{"class":67,"line":239},[65,2628,2629],{"class":71},"# 根目录\n",[65,2631,2632,2635,2638,2641,2644,2647,2650,2653],{"class":67,"line":249},[65,2633,2634],{"class":78}," uvicorn",[65,2636,2637],{"class":82}," memos.api.server_api:app",[65,2639,2640],{"class":82}," --host",[65,2642,2643],{"class":1315}," 0.0.0.0",[65,2645,2646],{"class":82}," --port",[65,2648,2649],{"class":1315}," 8000",[65,2651,2652],{"class":82}," --workers",[65,2654,2655],{"class":1315}," 1\n",[111,2657,2659],{"id":2658},"访问-api","访问 API",[11,2661,2662,2663,1436],{},"启动完成后，通过 ",[125,2664,1433],{"href":1433,"rel":2665},[1435],[24,2667,2669],{"id":2668},"方式四不使用-docker","方式四：不使用 Docker",[1139,2671,2672,2676,2680,2705,2709,3004,3008,3021,3025,3029,3052,3064],{"level":1141},[111,2673,2675],{"id":2674},"参考上方配置环境变量已经好配置env文件","参考上方配置环境变量，已经好配置.env文件",[111,2677,2679],{"id":2678},"安装-poetry-用于依赖管理","安装 Poetry 用于依赖管理：",[55,2681,2683],{"className":57,"code":2682,"language":59,"meta":60,"style":60},"curl -sSL https:\u002F\u002Finstall.python-poetry.org | python3 - \n",[62,2684,2685],{"__ignoreMap":60},[65,2686,2687,2690,2693,2696,2699,2702],{"class":67,"line":68},[65,2688,2689],{"class":78},"curl",[65,2691,2692],{"class":82}," -sSL",[65,2694,2695],{"class":82}," https:\u002F\u002Finstall.python-poetry.org",[65,2697,2698],{"class":155}," |",[65,2700,2701],{"class":78}," python3",[65,2703,2704],{"class":82}," -\n",[111,2706,2708],{"id":2707},"poetry-环境变量配置","Poetry 环境变量配置：",[55,2710,2712],{"className":57,"code":2711,"language":59,"meta":60,"style":60},"\n#要开始使用，您需要在“PATH”中找到Poetry的bin目录（\u002FUsers\u002Fjinyunyuan\u002F.local\u002Fbin）`环境变量\n# 现代 macOS 系统默认的 Shell 是 zsh。你可以通过以下命令确认\n1. 确定你使用的 Shell\n\necho $SHELL\n# 如果输出是 \u002Fbin\u002Fzsh 或 \u002Fusr\u002Fbin\u002Fenv zsh，那么你就是 zsh。\n# (如果你的系统版本较老，可能还在使用 bash，输出会是 \u002Fbin\u002Fbash)\n2. 打开对应的 Shell 配置文件\n# 如果使用的是 zsh (绝大多数情况)：\n# 使用 nano 编辑器（推荐新手）\nnano ~\u002F.zshrc\n\n# 或者使用 vim 编辑器\n# vim ~\u002F.zshrc\n# 如果使用的是 bash：\nnano ~\u002F.bash_profile\n# 或者\nnano ~\u002F.bashrc\n\n3. 添加 PATH 环境变量\n\n# 在打开的文件的最末尾，新起一行，粘贴安装提示给你的那行命令：\nexport PATH=\"\u002Fyou-path\u002F.local\u002Fbin:$PATH\"\n\n4. 保存并退出编辑器\n\n# 如果你用的是 nano：\n# 按 Ctrl + O 来写入（保存），按 Enter 确认文件名。\n# 然后按 Ctrl + X 退出编辑器。\n\n# 如果你用的是 vim：\n# 按 i 进入插入模式，粘贴代码后，按 ESC 键退出插入模式。\n# 输入 :wq，然后按 Enter 来保存并退出。\n\n5. 使配置立刻生效\n# 刚刚修改的配置文件不会自动在当前已打开的终端窗口生效，你需要运行以下命令之一来重新加载它：\n\n# 对于 zsh：\nsource ~\u002F.zshrc\n\n# 对于 bash：\nsource ~\u002F.bash_profile\n\n6. 验证安装是否成功\n# 现在，你可以执行提示中的测试命令来检查一切是否就绪：\npoetry --version\n# 成功后将显示版本号 Poetry (version 2.2.0)\n\n",[62,2713,2714,2718,2723,2728,2739,2743,2751,2756,2761,2775,2780,2785,2793,2797,2802,2807,2812,2819,2824,2831,2835,2849,2853,2858,2876,2880,2888,2892,2897,2902,2907,2911,2916,2921,2926,2930,2938,2943,2947,2952,2959,2963,2968,2974,2978,2986,2991,2999],{"__ignoreMap":60},[65,2715,2716],{"class":67,"line":68},[65,2717,140],{"emptyLinePlaceholder":139},[65,2719,2720],{"class":67,"line":75},[65,2721,2722],{"class":71},"#要开始使用，您需要在“PATH”中找到Poetry的bin目录（\u002FUsers\u002Fjinyunyuan\u002F.local\u002Fbin）`环境变量\n",[65,2724,2725],{"class":67,"line":148},[65,2726,2727],{"class":71},"# 现代 macOS 系统默认的 Shell 是 zsh。你可以通过以下命令确认\n",[65,2729,2730,2733,2736],{"class":67,"line":162},[65,2731,2732],{"class":78},"1.",[65,2734,2735],{"class":82}," 确定你使用的",[65,2737,2738],{"class":82}," Shell\n",[65,2740,2741],{"class":67,"line":168},[65,2742,140],{"emptyLinePlaceholder":139},[65,2744,2745,2748],{"class":67,"line":179},[65,2746,2747],{"class":105},"echo",[65,2749,2750],{"class":151}," $SHELL\n",[65,2752,2753],{"class":67,"line":185},[65,2754,2755],{"class":71},"# 如果输出是 \u002Fbin\u002Fzsh 或 \u002Fusr\u002Fbin\u002Fenv zsh，那么你就是 zsh。\n",[65,2757,2758],{"class":67,"line":196},[65,2759,2760],{"class":71},"# (如果你的系统版本较老，可能还在使用 bash，输出会是 \u002Fbin\u002Fbash)\n",[65,2762,2763,2766,2769,2772],{"class":67,"line":201},[65,2764,2765],{"class":78},"2.",[65,2767,2768],{"class":82}," 打开对应的",[65,2770,2771],{"class":82}," Shell",[65,2773,2774],{"class":82}," 配置文件\n",[65,2776,2777],{"class":67,"line":207},[65,2778,2779],{"class":71},"# 如果使用的是 zsh (绝大多数情况)：\n",[65,2781,2782],{"class":67,"line":217},[65,2783,2784],{"class":71},"# 使用 nano 编辑器（推荐新手）\n",[65,2786,2787,2790],{"class":67,"line":223},[65,2788,2789],{"class":78},"nano",[65,2791,2792],{"class":82}," ~\u002F.zshrc\n",[65,2794,2795],{"class":67,"line":233},[65,2796,140],{"emptyLinePlaceholder":139},[65,2798,2799],{"class":67,"line":239},[65,2800,2801],{"class":71},"# 或者使用 vim 编辑器\n",[65,2803,2804],{"class":67,"line":249},[65,2805,2806],{"class":71},"# vim ~\u002F.zshrc\n",[65,2808,2809],{"class":67,"line":254},[65,2810,2811],{"class":71},"# 如果使用的是 bash：\n",[65,2813,2814,2816],{"class":67,"line":260},[65,2815,2789],{"class":78},[65,2817,2818],{"class":82}," ~\u002F.bash_profile\n",[65,2820,2821],{"class":67,"line":271},[65,2822,2823],{"class":71},"# 或者\n",[65,2825,2826,2828],{"class":67,"line":277},[65,2827,2789],{"class":78},[65,2829,2830],{"class":82}," ~\u002F.bashrc\n",[65,2832,2833],{"class":67,"line":288},[65,2834,140],{"emptyLinePlaceholder":139},[65,2836,2837,2840,2843,2846],{"class":67,"line":294},[65,2838,2839],{"class":78},"3.",[65,2841,2842],{"class":82}," 添加",[65,2844,2845],{"class":82}," PATH",[65,2847,2848],{"class":82}," 环境变量\n",[65,2850,2851],{"class":67,"line":305},[65,2852,140],{"emptyLinePlaceholder":139},[65,2854,2855],{"class":67,"line":311},[65,2856,2857],{"class":71},"# 在打开的文件的最末尾，新起一行，粘贴安装提示给你的那行命令：\n",[65,2859,2860,2862,2864,2866,2868,2871,2874],{"class":67,"line":322},[65,2861,2612],{"class":2611},[65,2863,2845],{"class":151},[65,2865,156],{"class":155},[65,2867,519],{"class":155},[65,2869,2870],{"class":82},"\u002Fyou-path\u002F.local\u002Fbin:",[65,2872,2873],{"class":151},"$PATH",[65,2875,1734],{"class":155},[65,2877,2878],{"class":67,"line":328},[65,2879,140],{"emptyLinePlaceholder":139},[65,2881,2882,2885],{"class":67,"line":339},[65,2883,2884],{"class":78},"4.",[65,2886,2887],{"class":82}," 保存并退出编辑器\n",[65,2889,2890],{"class":67,"line":345},[65,2891,140],{"emptyLinePlaceholder":139},[65,2893,2894],{"class":67,"line":356},[65,2895,2896],{"class":71},"# 如果你用的是 nano：\n",[65,2898,2899],{"class":67,"line":361},[65,2900,2901],{"class":71},"# 按 Ctrl + O 来写入（保存），按 Enter 确认文件名。\n",[65,2903,2904],{"class":67,"line":367},[65,2905,2906],{"class":71},"# 然后按 Ctrl + X 退出编辑器。\n",[65,2908,2909],{"class":67,"line":373},[65,2910,140],{"emptyLinePlaceholder":139},[65,2912,2913],{"class":67,"line":384},[65,2914,2915],{"class":71},"# 如果你用的是 vim：\n",[65,2917,2918],{"class":67,"line":390},[65,2919,2920],{"class":71},"# 按 i 进入插入模式，粘贴代码后，按 ESC 键退出插入模式。\n",[65,2922,2923],{"class":67,"line":401},[65,2924,2925],{"class":71},"# 输入 :wq，然后按 Enter 来保存并退出。\n",[65,2927,2928],{"class":67,"line":412},[65,2929,140],{"emptyLinePlaceholder":139},[65,2931,2932,2935],{"class":67,"line":423},[65,2933,2934],{"class":78},"5.",[65,2936,2937],{"class":82}," 使配置立刻生效\n",[65,2939,2940],{"class":67,"line":433},[65,2941,2942],{"class":71},"# 刚刚修改的配置文件不会自动在当前已打开的终端窗口生效，你需要运行以下命令之一来重新加载它：\n",[65,2944,2945],{"class":67,"line":444},[65,2946,140],{"emptyLinePlaceholder":139},[65,2948,2949],{"class":67,"line":449},[65,2950,2951],{"class":71},"# 对于 zsh：\n",[65,2953,2954,2957],{"class":67,"line":455},[65,2955,2956],{"class":105},"source",[65,2958,2792],{"class":82},[65,2960,2961],{"class":67,"line":465},[65,2962,140],{"emptyLinePlaceholder":139},[65,2964,2965],{"class":67,"line":470},[65,2966,2967],{"class":71},"# 对于 bash：\n",[65,2969,2970,2972],{"class":67,"line":476},[65,2971,2956],{"class":105},[65,2973,2818],{"class":82},[65,2975,2976],{"class":67,"line":487},[65,2977,140],{"emptyLinePlaceholder":139},[65,2979,2980,2983],{"class":67,"line":493},[65,2981,2982],{"class":78},"6.",[65,2984,2985],{"class":82}," 验证安装是否成功\n",[65,2987,2988],{"class":67,"line":905},[65,2989,2990],{"class":71},"# 现在，你可以执行提示中的测试命令来检查一切是否就绪：\n",[65,2992,2993,2996],{"class":67,"line":910},[65,2994,2995],{"class":78},"poetry",[65,2997,2998],{"class":82}," --version\n",[65,3000,3001],{"class":67,"line":919},[65,3002,3003],{"class":71},"# 成功后将显示版本号 Poetry (version 2.2.0)\n",[111,3005,3007],{"id":3006},"安装所有项目依赖和开发工具","安装所有项目依赖和开发工具：",[55,3009,3011],{"className":57,"code":3010,"language":59,"meta":60,"style":60},"make install  \n",[62,3012,3013],{"__ignoreMap":60},[65,3014,3015,3018],{"class":67,"line":68},[65,3016,3017],{"class":78},"make",[65,3019,3020],{"class":82}," install\n",[111,3022,3024],{"id":3023},"先在docker中启动-neo4j-和-qdrant","先在docker中启动 neo4j 和 qdrant",[111,3026,3028],{"id":3027},"启动-fastapi-服务器在momos目录下","启动 FastAPI 服务器（在MomOS目录下）：",[55,3030,3032],{"className":57,"code":3031,"language":59,"meta":60,"style":60},"uvicorn memos.api.product_api:app --host 0.0.0.0 --port 8000 --reload\n",[62,3033,3034],{"__ignoreMap":60},[65,3035,3036,3038,3041,3043,3045,3047,3049],{"class":67,"line":68},[65,3037,1332],{"class":78},[65,3039,3040],{"class":82}," memos.api.product_api:app",[65,3042,2640],{"class":82},[65,3044,2643],{"class":1315},[65,3046,2646],{"class":82},[65,3048,2649],{"class":1315},[65,3050,3051],{"class":82}," --reload\n",[111,3053,3055,3056,3059,3060],{"id":3054},"服务器运行后您可以使用openapi文档测试api网址为-httplocalhost8000docs-或者-http1270018000docs","服务器运行后,您可以使用OpenAPI文档测试API，网址为 ",[125,3057,1433],{"href":1433,"rel":3058},[1435]," 或者 ",[125,3061,3062],{"href":3062,"rel":3063},"http:\u002F\u002F127.0.0.1:8000\u002Fdocs",[1435],[111,3065,3067],{"id":3066},"测试用例-注册用户-添加用户记忆-查询用户记忆-参考docker-compose-up测试用例","测试用例 (注册用户->添加用户记忆->查询用户记忆) 参考Docker Compose up测试用例",[24,3069,3071],{"id":3070},"方式五使用-pycharm-启动","方式五：使用 PyCharm 启动",[111,3073,3075],{"id":3074},"运行-server_api","运行 server_api",[55,3077,3079],{"className":57,"code":3078,"language":59,"meta":60,"style":60},"1、进入MemOS\u002Fdocker\u002FDockerfile文件，修改运行配置\n# Start the docker\nCMD [\"uvicorn\", \"memos.api.server_api:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\", \"--reload\"]\n\n2、进入目录MemOS\u002Fsrc\u002Fmemos\u002Fapi 直接运行server_api.py\n\n",[62,3080,3081,3086,3091,3153,3157],{"__ignoreMap":60},[65,3082,3083],{"class":67,"line":68},[65,3084,3085],{"class":78},"1、进入MemOS\u002Fdocker\u002FDockerfile文件，修改运行配置\n",[65,3087,3088],{"class":67,"line":75},[65,3089,3090],{"class":71},"# Start the docker\n",[65,3092,3093,3095,3097,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145,3147,3149,3151],{"class":67,"line":148},[65,3094,1325],{"class":78},[65,3096,618],{"class":151},[65,3098,519],{"class":155},[65,3100,1332],{"class":82},[65,3102,519],{"class":155},[65,3104,1337],{"class":151},[65,3106,519],{"class":155},[65,3108,1342],{"class":82},[65,3110,519],{"class":155},[65,3112,522],{"class":82},[65,3114,513],{"class":155},[65,3116,1351],{"class":82},[65,3118,519],{"class":155},[65,3120,522],{"class":82},[65,3122,513],{"class":155},[65,3124,1360],{"class":82},[65,3126,519],{"class":155},[65,3128,522],{"class":82},[65,3130,513],{"class":155},[65,3132,1369],{"class":82},[65,3134,519],{"class":155},[65,3136,522],{"class":82},[65,3138,513],{"class":155},[65,3140,1378],{"class":82},[65,3142,519],{"class":155},[65,3144,522],{"class":82},[65,3146,513],{"class":155},[65,3148,1387],{"class":82},[65,3150,519],{"class":155},[65,3152,1392],{"class":82},[65,3154,3155],{"class":67,"line":162},[65,3156,140],{"emptyLinePlaceholder":139},[65,3158,3159,3162],{"class":67,"line":168},[65,3160,3161],{"class":78},"2、进入目录MemOS\u002Fsrc\u002Fmemos\u002Fapi",[65,3163,3164],{"class":82}," 直接运行server_api.py\n",[3166,3167,3168],"style",{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":60,"searchDepth":75,"depth":75,"links":3170},[3171,3172],{"id":26,"depth":148,"text":26},{"id":49,"depth":75,"text":49,"children":3173},[3174,3175,3176,3177,3178,3179,3180,3181,3182],{"id":52,"depth":148,"text":53},{"id":89,"depth":148,"text":90},{"id":630,"depth":148,"text":631},{"id":1056,"depth":148,"text":1057},{"id":1136,"depth":148,"text":1137},{"id":1447,"depth":148,"text":1448},{"id":2488,"depth":148,"text":2489},{"id":2668,"depth":148,"text":2669},{"id":3070,"depth":148,"text":3071},"MemOS 提供了一个使用 FastAPI 编写的 REST API 服务。用户可以通过 REST 接口执行所有操作。","md",{},"\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server",{"title":5,"description":60},"cn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server","EPfxAxQL8x0qPcPtoCy7kARf1EI0DfxHwXF5F6l-rH4",[3191,3199],{"title":3192,"path":3193,"stem":3194,"icon":3195,"framework":6,"module":6,"class":3196,"target":-1,"active":3197,"defaultOpen":3197,"children":-1,"description":3198},"架构设计","\u002Fcn\u002Fopen_source\u002Fhome\u002Farchitecture","open_source\u002Fhome\u002Farchitecture","i-ri-building-2-line",[],false,"MemOS 采用模块化设计，各核心组件协同工作，将传统 LLM 升级为具备完整记忆生命周期管理能力的记忆增强系统。",{"title":3200,"path":3201,"stem":3202,"icon":3203,"framework":6,"module":6,"class":3204,"target":-1,"active":3197,"defaultOpen":3197,"children":-1,"description":3205},"MemOS 示例","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples","open_source\u002Fgetting_started\u002Fexamples","i-ri-code-line",[],"恭喜你——你已经掌握了快速入门并构建了第一个可用的记忆！现在是时候通过结合不同的记忆类型和功能，看看 MemOS 可以实现多大的可能性。使用这些精选示例来激发你自己的智能体、聊天机器人或知识系统的灵感。",1774339750002]