[{"data":1,"prerenderedAt":3398},["ShallowReactive",2],{"/open_source/getting_started/rest_api_server":3,"surround-/open_source/getting_started/rest_api_server":3382},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":3375,"description":62,"extension":3376,"links":6,"meta":3377,"navigation":6,"path":3378,"seo":3379,"stem":3380,"__hash__":3381},"docs/en/open_source/getting_started/rest_api_server.md","REST API Server",null,{"type":8,"value":9,"toc":3361},"minimark",[10,18,23,28,47,52,56,89,93,112,121,132,630,634,1040,1046,1049,1056,1060,1132,1136,1554,1558,2594,2598,2781,2785,3232,3236,3240,3357],[11,12,13],"p",{},[14,15],"img",{"alt":16,"src":17},"MemOS Architecture","https://cdn.memt.ai/img/memos_run_server_success_compressed.png",[19,20,22],"div",{"style":21},"text-align: center; margin-top: 10px","APIs supported by MemOS REST API Server",[24,25,27],"h3",{"id":26},"features","Features",[29,30,31,35,38,41,44],"ul",{},[32,33,34],"li",{},"Add new memory: Create a new memory for a specific user.",[32,36,37],{},"Search memories: Search for memory content for a specific user.",[32,39,40],{},"Get all user memories: Get all memory content for a specific user.",[32,42,43],{},"Memory feedback: Feedback memory content for a specific user.",[32,45,46],{},"Chat with MemOS: Chat with MemOS, returning SSE streaming response.",[48,49,51],"h2",{"id":50},"run-locally","Run Locally",[24,53,55],{"id":54},"_1local-download","1、Local Download",[57,58,63],"pre",{"className":59,"code":60,"language":61,"meta":62,"style":62},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Download the code to the local folder\ngit clone https://github.com/MemTensor/MemOS\n","bash","",[64,65,66,75],"code",{"__ignoreMap":62},[67,68,71],"span",{"class":69,"line":70},"line",1,[67,72,74],{"class":73},"sHwdD","# Download the code to the local folder\n",[67,76,78,82,86],{"class":69,"line":77},2,[67,79,81],{"class":80},"sBMFI","git",[67,83,85],{"class":84},"sfazB"," clone",[67,87,88],{"class":84}," https://github.com/MemTensor/MemOS\n",[24,90,92],{"id":91},"_2configure-environment-variables","2、Configure Environment Variables",[57,94,96],{"className":59,"code":95,"language":61,"meta":62,"style":62},"# Enter the folder directory\ncd MemOS\n",[64,97,98,103],{"__ignoreMap":62},[67,99,100],{"class":69,"line":70},[67,101,102],{"class":73},"# Enter the folder directory\n",[67,104,105,109],{"class":69,"line":77},[67,106,108],{"class":107},"s2Zo4","cd",[67,110,111],{"class":84}," MemOS\n",[113,114,116,117,120],"h4",{"id":115},"create-a-env-file-in-the-root-directory-and-set-your-environment-variables","Create a ",[64,118,119],{},".env"," file in the root directory and set your environment variables.",[122,123,125,126,131],"h5",{"id":124},"env-the-quick-mode-configuration-is-as-follows-complete-mode-reference-envexample",".env The quick mode configuration is as follows, Complete Mode Reference ",[127,128,130],"a",{"href":129},"https://github.com/MemTensor/MemOS/blob/main/docker/.env.example",".env.example",".",[57,133,135],{"className":59,"code":134,"language":61,"meta":62,"style":62},"\n# OpenAI API Key (Custom configuration required)\nOPENAI_API_KEY=sk-xxx\n# OpenAI API Base URL\nOPENAI_API_BASE=http://xxx:3000/v1\n# Default model name\nMOS_CHAT_MODEL=qwen3-max\n\n# Memory Reader LLM model\nMEMRADER_MODEL=qwen3-max\n# Memory Reader API Key\nMEMRADER_API_KEY=sk-xxx\n# Memory Reader API Base URL\nMEMRADER_API_BASE=http://xxx:3000/v1\n\n# Embedder model name\nMOS_EMBEDDER_MODEL=text-embedding-v4\n# set default embedding backend default: ollama | universal_api\nMOS_EMBEDDER_BACKEND=universal_api\n# Embedder API Base URL\nMOS_EMBEDDER_API_BASE=http://xxx:8081/v1\n# Embedder API Key\nMOS_EMBEDDER_API_KEY=xxx\n# Embedding vector dimension\nEMBEDDING_DIMENSION=1024\n# Reranker backend (http_bge | etc.)\nMOS_RERANKER_BACKEND=cosine_local\n\n# Neo4j Connection URI\n# Optional values: neo4j-community | neo4j | nebular | polardb\nNEO4J_BACKEND=neo4j-community\n# required when backend=neo4j*\nNEO4J_URI=bolt://localhost:7687\nNEO4J_USER=neo4j\nNEO4J_PASSWORD=12345678\nNEO4J_DB_NAME=neo4j\nMOS_NEO4J_SHARED_DB=false\n\n# Whether to use Redis scheduler\nDEFAULT_USE_REDIS_QUEUE=false\n\n# Enable chat api\nENABLE_CHAT_API=true\n# Chat Model List can apply through Bailian. Models are selectable.\nCHAT_MODEL_LIST=[{\"backend\": \"qwen\", \"api_base\": \"https://xxx/v1\", \"api_key\": \"sk-xxx\", \"model_name_or_path\": \"qwen3-max\", \"extra_body\": {\"enable_thinking\": true} ,\"support_models\": [\"qwen3-max\"]}]\n\n",[64,136,137,143,148,162,168,179,185,196,201,207,217,223,233,239,249,254,260,271,277,288,294,305,311,322,328,339,345,356,361,367,373,384,390,401,412,423,433,444,449,455,465,470,476,487,493],{"__ignoreMap":62},[67,138,139],{"class":69,"line":70},[67,140,142],{"emptyLinePlaceholder":141},true,"\n",[67,144,145],{"class":69,"line":77},[67,146,147],{"class":73},"# OpenAI API Key (Custom configuration required)\n",[67,149,151,155,159],{"class":69,"line":150},3,[67,152,154],{"class":153},"sTEyZ","OPENAI_API_KEY",[67,156,158],{"class":157},"sMK4o","=",[67,160,161],{"class":84},"sk-xxx\n",[67,163,165],{"class":69,"line":164},4,[67,166,167],{"class":73},"# OpenAI API Base URL\n",[67,169,171,174,176],{"class":69,"line":170},5,[67,172,173],{"class":153},"OPENAI_API_BASE",[67,175,158],{"class":157},[67,177,178],{"class":84},"http://xxx:3000/v1\n",[67,180,182],{"class":69,"line":181},6,[67,183,184],{"class":73},"# Default model name\n",[67,186,188,191,193],{"class":69,"line":187},7,[67,189,190],{"class":153},"MOS_CHAT_MODEL",[67,192,158],{"class":157},[67,194,195],{"class":84},"qwen3-max\n",[67,197,199],{"class":69,"line":198},8,[67,200,142],{"emptyLinePlaceholder":141},[67,202,204],{"class":69,"line":203},9,[67,205,206],{"class":73},"# Memory Reader LLM model\n",[67,208,210,213,215],{"class":69,"line":209},10,[67,211,212],{"class":153},"MEMRADER_MODEL",[67,214,158],{"class":157},[67,216,195],{"class":84},[67,218,220],{"class":69,"line":219},11,[67,221,222],{"class":73},"# Memory Reader API Key\n",[67,224,226,229,231],{"class":69,"line":225},12,[67,227,228],{"class":153},"MEMRADER_API_KEY",[67,230,158],{"class":157},[67,232,161],{"class":84},[67,234,236],{"class":69,"line":235},13,[67,237,238],{"class":73},"# Memory Reader API Base URL\n",[67,240,242,245,247],{"class":69,"line":241},14,[67,243,244],{"class":153},"MEMRADER_API_BASE",[67,246,158],{"class":157},[67,248,178],{"class":84},[67,250,252],{"class":69,"line":251},15,[67,253,142],{"emptyLinePlaceholder":141},[67,255,257],{"class":69,"line":256},16,[67,258,259],{"class":73},"# Embedder model name\n",[67,261,263,266,268],{"class":69,"line":262},17,[67,264,265],{"class":153},"MOS_EMBEDDER_MODEL",[67,267,158],{"class":157},[67,269,270],{"class":84},"text-embedding-v4\n",[67,272,274],{"class":69,"line":273},18,[67,275,276],{"class":73},"# set default embedding backend default: ollama | universal_api\n",[67,278,280,283,285],{"class":69,"line":279},19,[67,281,282],{"class":153},"MOS_EMBEDDER_BACKEND",[67,284,158],{"class":157},[67,286,287],{"class":84},"universal_api\n",[67,289,291],{"class":69,"line":290},20,[67,292,293],{"class":73},"# Embedder API Base URL\n",[67,295,297,300,302],{"class":69,"line":296},21,[67,298,299],{"class":153},"MOS_EMBEDDER_API_BASE",[67,301,158],{"class":157},[67,303,304],{"class":84},"http://xxx:8081/v1\n",[67,306,308],{"class":69,"line":307},22,[67,309,310],{"class":73},"# Embedder API Key\n",[67,312,314,317,319],{"class":69,"line":313},23,[67,315,316],{"class":153},"MOS_EMBEDDER_API_KEY",[67,318,158],{"class":157},[67,320,321],{"class":84},"xxx\n",[67,323,325],{"class":69,"line":324},24,[67,326,327],{"class":73},"# Embedding vector dimension\n",[67,329,331,334,336],{"class":69,"line":330},25,[67,332,333],{"class":153},"EMBEDDING_DIMENSION",[67,335,158],{"class":157},[67,337,338],{"class":84},"1024\n",[67,340,342],{"class":69,"line":341},26,[67,343,344],{"class":73},"# Reranker backend (http_bge | etc.)\n",[67,346,348,351,353],{"class":69,"line":347},27,[67,349,350],{"class":153},"MOS_RERANKER_BACKEND",[67,352,158],{"class":157},[67,354,355],{"class":84},"cosine_local\n",[67,357,359],{"class":69,"line":358},28,[67,360,142],{"emptyLinePlaceholder":141},[67,362,364],{"class":69,"line":363},29,[67,365,366],{"class":73},"# Neo4j Connection URI\n",[67,368,370],{"class":69,"line":369},30,[67,371,372],{"class":73},"# Optional values: neo4j-community | neo4j | nebular | polardb\n",[67,374,376,379,381],{"class":69,"line":375},31,[67,377,378],{"class":153},"NEO4J_BACKEND",[67,380,158],{"class":157},[67,382,383],{"class":84},"neo4j-community\n",[67,385,387],{"class":69,"line":386},32,[67,388,389],{"class":73},"# required when backend=neo4j*\n",[67,391,393,396,398],{"class":69,"line":392},33,[67,394,395],{"class":153},"NEO4J_URI",[67,397,158],{"class":157},[67,399,400],{"class":84},"bolt://localhost:7687\n",[67,402,404,407,409],{"class":69,"line":403},34,[67,405,406],{"class":153},"NEO4J_USER",[67,408,158],{"class":157},[67,410,411],{"class":84},"neo4j\n",[67,413,415,418,420],{"class":69,"line":414},35,[67,416,417],{"class":153},"NEO4J_PASSWORD",[67,419,158],{"class":157},[67,421,422],{"class":84},"12345678\n",[67,424,426,429,431],{"class":69,"line":425},36,[67,427,428],{"class":153},"NEO4J_DB_NAME",[67,430,158],{"class":157},[67,432,411],{"class":84},[67,434,436,439,441],{"class":69,"line":435},37,[67,437,438],{"class":153},"MOS_NEO4J_SHARED_DB",[67,440,158],{"class":157},[67,442,443],{"class":84},"false\n",[67,445,447],{"class":69,"line":446},38,[67,448,142],{"emptyLinePlaceholder":141},[67,450,452],{"class":69,"line":451},39,[67,453,454],{"class":73},"# Whether to use Redis scheduler\n",[67,456,458,461,463],{"class":69,"line":457},40,[67,459,460],{"class":153},"DEFAULT_USE_REDIS_QUEUE",[67,462,158],{"class":157},[67,464,443],{"class":84},[67,466,468],{"class":69,"line":467},41,[67,469,142],{"emptyLinePlaceholder":141},[67,471,473],{"class":69,"line":472},42,[67,474,475],{"class":73},"# Enable chat api\n",[67,477,479,482,484],{"class":69,"line":478},43,[67,480,481],{"class":153},"ENABLE_CHAT_API",[67,483,158],{"class":157},[67,485,486],{"class":84},"true\n",[67,488,490],{"class":69,"line":489},44,[67,491,492],{"class":73},"# Chat Model List can apply through Bailian. Models are selectable.\n",[67,494,496,499,501,504,507,510,513,516,519,522,525,527,530,532,534,536,539,541,543,545,548,550,552,554,557,559,561,563,566,568,570,572,575,577,579,581,584,586,588,591,593,596,598,600,603,606,609,611,614,616,618,621,623,625,627],{"class":69,"line":495},45,[67,497,498],{"class":153},"CHAT_MODEL_LIST",[67,500,158],{"class":157},[67,502,503],{"class":84},"[",[67,505,506],{"class":153},"{",[67,508,509],{"class":80},"\"backend\"",[67,511,512],{"class":107},":",[67,514,515],{"class":157}," \"",[67,517,518],{"class":84},"qwen",[67,520,521],{"class":157},"\"",[67,523,524],{"class":84},",",[67,526,515],{"class":157},[67,528,529],{"class":84},"api_base",[67,531,521],{"class":157},[67,533,512],{"class":84},[67,535,515],{"class":157},[67,537,538],{"class":84},"https://xxx/v1",[67,540,521],{"class":157},[67,542,524],{"class":84},[67,544,515],{"class":157},[67,546,547],{"class":84},"api_key",[67,549,521],{"class":157},[67,551,512],{"class":84},[67,553,515],{"class":157},[67,555,556],{"class":84},"sk-xxx",[67,558,521],{"class":157},[67,560,524],{"class":84},[67,562,515],{"class":157},[67,564,565],{"class":84},"model_name_or_path",[67,567,521],{"class":157},[67,569,512],{"class":84},[67,571,515],{"class":157},[67,573,574],{"class":84},"qwen3-max",[67,576,521],{"class":157},[67,578,524],{"class":84},[67,580,515],{"class":157},[67,582,583],{"class":84},"extra_body",[67,585,521],{"class":157},[67,587,512],{"class":84},[67,589,590],{"class":84}," {",[67,592,521],{"class":157},[67,594,595],{"class":84},"enable_thinking",[67,597,521],{"class":157},[67,599,512],{"class":84},[67,601,602],{"class":157}," true",[67,604,605],{"class":84},"}",[67,607,608],{"class":84}," ,",[67,610,521],{"class":157},[67,612,613],{"class":84},"support_models",[67,615,521],{"class":157},[67,617,512],{"class":84},[67,619,620],{"class":153}," [",[67,622,521],{"class":157},[67,624,574],{"class":84},[67,626,521],{"class":157},[67,628,629],{"class":153},"]}]\n",[24,631,633],{"id":632},"_3taking-bailian-as-an-example-to-customize-configuration","3、Taking Bailian as an example to customize configuration",[57,635,637],{"className":59,"code":636,"language":61,"meta":62,"style":62},"# You can apply through the Bailian platform\n# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api\n# After successful application, obtain API_KEY and BASE-URL. The example configuration is as follows\n\n# OpenAI API Key (Using the API_KEY of Bailian)\nOPENAI_API_KEY=you_bailian_api_key\n# OpenAI API Base URL\nOPENAI_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1\n# Default model name\nMOS_CHAT_MODEL=qwen3-max\n\n# Memory Reader LLM model\nMEMRADER_MODEL=qwen3-max\n# Memory Reader API Key (Using the API_KEY of Bailian)\nMEMRADER_API_KEY=you_bailian_api_key\n# Memory Reader API Base URL\nMEMRADER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1\n\n# Embedder The model name can refer to the following link\n# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api/?type=model&url=2846066\nMOS_EMBEDDER_MODEL=text-embedding-v4\n# set default embedding backend default: ollama | universal_api\nMOS_EMBEDDER_BACKEND=universal_api\n# Embedder API Base URL\nMOS_EMBEDDER_API_BASE=https://dashscope.aliyuncs.com/compatible-mode/v1\n# Embedder API Key (Using the API_KEY of Bailian)\nMOS_EMBEDDER_API_KEY=you_bailian_api_key\n# Embedding vector dimension\nEMBEDDING_DIMENSION=1024\n# Reranker backend (http_bge | etc.)\nMOS_RERANKER_BACKEND=cosine_local\n\n# Neo4j Connection URI\n# Optional values: neo4j-community | neo4j | nebular | polardb\nNEO4J_BACKEND=neo4j-community\n# required when backend=neo4j*\nNEO4J_URI=bolt://localhost:7687\nNEO4J_USER=neo4j\nNEO4J_PASSWORD=12345678\nNEO4J_DB_NAME=neo4j\nMOS_NEO4J_SHARED_DB=false\n\n# Whether to use Redis scheduler\nDEFAULT_USE_REDIS_QUEUE=false\n\n# Enable chat api\nENABLE_CHAT_API=true\n\nCHAT_MODEL_LIST=[{\"backend\": \"qwen\", \"api_base\": \"https://dashscope.aliyuncs.com/compatible-mode/v1\", \"api_key\": \"you_bailian_api_key\", \"model_name_or_path\": \"qwen3-max-preview\", \"extra_body\": {\"enable_thinking\": true} ,\"support_models\": [\"qwen3-max-preview\"]}]\n\n",[64,638,639,644,649,654,658,663,672,676,685,689,697,701,705,713,718,726,730,738,742,747,752,760,764,772,776,784,789,797,801,809,813,821,825,829,833,841,845,853,861,869,877,885,889,893,901,905,910,919,924],{"__ignoreMap":62},[67,640,641],{"class":69,"line":70},[67,642,643],{"class":73},"# You can apply through the Bailian platform\n",[67,645,646],{"class":69,"line":77},[67,647,648],{"class":73},"# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api\n",[67,650,651],{"class":69,"line":150},[67,652,653],{"class":73},"# After successful application, obtain API_KEY and BASE-URL. The example configuration is as follows\n",[67,655,656],{"class":69,"line":164},[67,657,142],{"emptyLinePlaceholder":141},[67,659,660],{"class":69,"line":170},[67,661,662],{"class":73},"# OpenAI API Key (Using the API_KEY of Bailian)\n",[67,664,665,667,669],{"class":69,"line":181},[67,666,154],{"class":153},[67,668,158],{"class":157},[67,670,671],{"class":84},"you_bailian_api_key\n",[67,673,674],{"class":69,"line":187},[67,675,167],{"class":73},[67,677,678,680,682],{"class":69,"line":198},[67,679,173],{"class":153},[67,681,158],{"class":157},[67,683,684],{"class":84},"https://dashscope.aliyuncs.com/compatible-mode/v1\n",[67,686,687],{"class":69,"line":203},[67,688,184],{"class":73},[67,690,691,693,695],{"class":69,"line":209},[67,692,190],{"class":153},[67,694,158],{"class":157},[67,696,195],{"class":84},[67,698,699],{"class":69,"line":219},[67,700,142],{"emptyLinePlaceholder":141},[67,702,703],{"class":69,"line":225},[67,704,206],{"class":73},[67,706,707,709,711],{"class":69,"line":235},[67,708,212],{"class":153},[67,710,158],{"class":157},[67,712,195],{"class":84},[67,714,715],{"class":69,"line":241},[67,716,717],{"class":73},"# Memory Reader API Key (Using the API_KEY of Bailian)\n",[67,719,720,722,724],{"class":69,"line":251},[67,721,228],{"class":153},[67,723,158],{"class":157},[67,725,671],{"class":84},[67,727,728],{"class":69,"line":256},[67,729,238],{"class":73},[67,731,732,734,736],{"class":69,"line":262},[67,733,244],{"class":153},[67,735,158],{"class":157},[67,737,684],{"class":84},[67,739,740],{"class":69,"line":273},[67,741,142],{"emptyLinePlaceholder":141},[67,743,744],{"class":69,"line":279},[67,745,746],{"class":73},"# Embedder The model name can refer to the following link\n",[67,748,749],{"class":69,"line":290},[67,750,751],{"class":73},"# https://bailian.console.aliyun.com/?spm=a2c4g.11186623.0.0.2f2165b08fRk4l&tab=api#/api/?type=model&url=2846066\n",[67,753,754,756,758],{"class":69,"line":296},[67,755,265],{"class":153},[67,757,158],{"class":157},[67,759,270],{"class":84},[67,761,762],{"class":69,"line":307},[67,763,276],{"class":73},[67,765,766,768,770],{"class":69,"line":313},[67,767,282],{"class":153},[67,769,158],{"class":157},[67,771,287],{"class":84},[67,773,774],{"class":69,"line":324},[67,775,293],{"class":73},[67,777,778,780,782],{"class":69,"line":330},[67,779,299],{"class":153},[67,781,158],{"class":157},[67,783,684],{"class":84},[67,785,786],{"class":69,"line":341},[67,787,788],{"class":73},"# Embedder API Key (Using the API_KEY of Bailian)\n",[67,790,791,793,795],{"class":69,"line":347},[67,792,316],{"class":153},[67,794,158],{"class":157},[67,796,671],{"class":84},[67,798,799],{"class":69,"line":358},[67,800,327],{"class":73},[67,802,803,805,807],{"class":69,"line":363},[67,804,333],{"class":153},[67,806,158],{"class":157},[67,808,338],{"class":84},[67,810,811],{"class":69,"line":369},[67,812,344],{"class":73},[67,814,815,817,819],{"class":69,"line":375},[67,816,350],{"class":153},[67,818,158],{"class":157},[67,820,355],{"class":84},[67,822,823],{"class":69,"line":386},[67,824,142],{"emptyLinePlaceholder":141},[67,826,827],{"class":69,"line":392},[67,828,366],{"class":73},[67,830,831],{"class":69,"line":403},[67,832,372],{"class":73},[67,834,835,837,839],{"class":69,"line":414},[67,836,378],{"class":153},[67,838,158],{"class":157},[67,840,383],{"class":84},[67,842,843],{"class":69,"line":425},[67,844,389],{"class":73},[67,846,847,849,851],{"class":69,"line":435},[67,848,395],{"class":153},[67,850,158],{"class":157},[67,852,400],{"class":84},[67,854,855,857,859],{"class":69,"line":446},[67,856,406],{"class":153},[67,858,158],{"class":157},[67,860,411],{"class":84},[67,862,863,865,867],{"class":69,"line":451},[67,864,417],{"class":153},[67,866,158],{"class":157},[67,868,422],{"class":84},[67,870,871,873,875],{"class":69,"line":457},[67,872,428],{"class":153},[67,874,158],{"class":157},[67,876,411],{"class":84},[67,878,879,881,883],{"class":69,"line":467},[67,880,438],{"class":153},[67,882,158],{"class":157},[67,884,443],{"class":84},[67,886,887],{"class":69,"line":472},[67,888,142],{"emptyLinePlaceholder":141},[67,890,891],{"class":69,"line":478},[67,892,454],{"class":73},[67,894,895,897,899],{"class":69,"line":489},[67,896,460],{"class":153},[67,898,158],{"class":157},[67,900,443],{"class":84},[67,902,903],{"class":69,"line":495},[67,904,142],{"emptyLinePlaceholder":141},[67,906,908],{"class":69,"line":907},46,[67,909,475],{"class":73},[67,911,913,915,917],{"class":69,"line":912},47,[67,914,481],{"class":153},[67,916,158],{"class":157},[67,918,486],{"class":84},[67,920,922],{"class":69,"line":921},48,[67,923,142],{"emptyLinePlaceholder":141},[67,925,927,929,931,933,935,937,939,941,943,945,947,949,951,953,955,957,960,962,964,966,968,970,972,974,977,979,981,983,985,987,989,991,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038],{"class":69,"line":926},49,[67,928,498],{"class":153},[67,930,158],{"class":157},[67,932,503],{"class":84},[67,934,506],{"class":153},[67,936,509],{"class":80},[67,938,512],{"class":107},[67,940,515],{"class":157},[67,942,518],{"class":84},[67,944,521],{"class":157},[67,946,524],{"class":84},[67,948,515],{"class":157},[67,950,529],{"class":84},[67,952,521],{"class":157},[67,954,512],{"class":84},[67,956,515],{"class":157},[67,958,959],{"class":84},"https://dashscope.aliyuncs.com/compatible-mode/v1",[67,961,521],{"class":157},[67,963,524],{"class":84},[67,965,515],{"class":157},[67,967,547],{"class":84},[67,969,521],{"class":157},[67,971,512],{"class":84},[67,973,515],{"class":157},[67,975,976],{"class":84},"you_bailian_api_key",[67,978,521],{"class":157},[67,980,524],{"class":84},[67,982,515],{"class":157},[67,984,565],{"class":84},[67,986,521],{"class":157},[67,988,512],{"class":84},[67,990,515],{"class":157},[67,992,993],{"class":84},"qwen3-max-preview",[67,995,521],{"class":157},[67,997,524],{"class":84},[67,999,515],{"class":157},[67,1001,583],{"class":84},[67,1003,521],{"class":157},[67,1005,512],{"class":84},[67,1007,590],{"class":84},[67,1009,521],{"class":157},[67,1011,595],{"class":84},[67,1013,521],{"class":157},[67,1015,512],{"class":84},[67,1017,602],{"class":157},[67,1019,605],{"class":84},[67,1021,608],{"class":84},[67,1023,521],{"class":157},[67,1025,613],{"class":84},[67,1027,521],{"class":157},[67,1029,512],{"class":84},[67,1031,620],{"class":153},[67,1033,521],{"class":157},[67,1035,993],{"class":84},[67,1037,521],{"class":157},[67,1039,629],{"class":153},[11,1041,1042],{},[14,1043],{"alt":1044,"src":1045},"MemOS bailian","https://cdn.memt.ai/img/get_key_url_by_bailian_compressed.png",[19,1047,1048],{"style":21},"Bailian application API_KEY and BASE_URL example",[11,1050,1051,1052,131],{},"Configure dependency versions in docker/requirement.txt （negligible）, Complete Mode Reference ",[127,1053,1055],{"href":1054},"https://github.com/MemTensor/MemOS/blob/main/docker/requirements.txt","requirements.txt",[24,1057,1059],{"id":1058},"_4start-docker","4、Start Docker",[57,1061,1063],{"className":59,"code":1062,"language":61,"meta":62,"style":62}," # If Docker is not installed, please install the corresponding version. The download link is as follows:\n https://www.docker.com/\n\n #After installation, Docker can be started through the client or through the command line\n #Command line start\n sudo systemctl start docker\n\n# Check docker status\ndocker ps\n# Check docker images (optional)\ndocker images\n\n",[64,1064,1065,1070,1075,1079,1084,1089,1103,1107,1112,1120,1125],{"__ignoreMap":62},[67,1066,1067],{"class":69,"line":70},[67,1068,1069],{"class":73}," # If Docker is not installed, please install the corresponding version. The download link is as follows:\n",[67,1071,1072],{"class":69,"line":77},[67,1073,1074],{"class":80}," https://www.docker.com/\n",[67,1076,1077],{"class":69,"line":150},[67,1078,142],{"emptyLinePlaceholder":141},[67,1080,1081],{"class":69,"line":164},[67,1082,1083],{"class":73}," #After installation, Docker can be started through the client or through the command line\n",[67,1085,1086],{"class":69,"line":170},[67,1087,1088],{"class":73}," #Command line start\n",[67,1090,1091,1094,1097,1100],{"class":69,"line":181},[67,1092,1093],{"class":80}," sudo",[67,1095,1096],{"class":84}," systemctl",[67,1098,1099],{"class":84}," start",[67,1101,1102],{"class":84}," docker\n",[67,1104,1105],{"class":69,"line":187},[67,1106,142],{"emptyLinePlaceholder":141},[67,1108,1109],{"class":69,"line":198},[67,1110,1111],{"class":73},"# Check docker status\n",[67,1113,1114,1117],{"class":69,"line":203},[67,1115,1116],{"class":80},"docker",[67,1118,1119],{"class":84}," ps\n",[67,1121,1122],{"class":69,"line":209},[67,1123,1124],{"class":73},"# Check docker images (optional)\n",[67,1126,1127,1129],{"class":69,"line":219},[67,1128,1116],{"class":80},[67,1130,1131],{"class":84}," images\n",[24,1133,1135],{"id":1134},"method-1-docker-use-repository-dependency-package-imagestart-recommended-use","Method 1： Docker use repository dependency package image/start (Recommended use)",[1137,1138,1140,1156,1160,1164,1167,1344,1347,1503,1507,1527,1533,1536,1537,1546,1550],"steps",{"level":1139},"4",[57,1141,1143],{"className":59,"code":1142,"language":61,"meta":62,"style":62},"# Enter the Docker directory\ncd docker\n",[64,1144,1145,1150],{"__ignoreMap":62},[67,1146,1147],{"class":69,"line":70},[67,1148,1149],{"class":73},"# Enter the Docker directory\n",[67,1151,1152,1154],{"class":69,"line":77},[67,1153,108],{"class":107},[67,1155,1102],{"class":84},[113,1157,1159],{"id":1158},"reference-configuration-environment-variables-above-env-file-should-be-configured","Reference configuration environment variables above, .env file should be configured",[113,1161,1163],{"id":1162},"configure-dockerfilecd-docker","Configure Dockerfile(cd docker)",[11,1165,1166],{},"Contains quick mode and full mode, distinguishing between using simplified packages (x86 and arm) and full packages (x86 and arm)",[57,1168,1170],{"className":59,"code":1169,"language":61,"meta":62,"style":62},"● Simplified package: Simplify dependencies related to Nvidia that are too large in size, achieve lightweight mirroring, and make local deployment lighter and faster.\nurl: registry.cn-shanghai.aliyuncs.com/memtensor/memos-base:v1.0\nurl: registry.cn-shanghai.aliyuncs.com/memtensor/memos-base-arm:v1.0\n\n● Full package: Convert all MemOS dependencies into images, Experience complete functionality. By configuring Dockerfiles, you can directly build and start the package.\nurl: registry.cn-shanghai.aliyuncs.com/memtensor/memos-full-base:v1.0.0\nurl: registry.cn-shanghai.aliyuncs.com/memtensor/memos-full-base-arm:v1.0.0\n",[64,1171,1172,1245,1253,1260,1264,1330,1337],{"__ignoreMap":62},[67,1173,1174,1177,1180,1183,1186,1189,1192,1195,1198,1201,1204,1207,1210,1213,1216,1219,1222,1225,1228,1231,1234,1237,1240,1242],{"class":69,"line":70},[67,1175,1176],{"class":80},"●",[67,1178,1179],{"class":84}," Simplified",[67,1181,1182],{"class":84}," package:",[67,1184,1185],{"class":84}," Simplify",[67,1187,1188],{"class":84}," dependencies",[67,1190,1191],{"class":84}," related",[67,1193,1194],{"class":84}," to",[67,1196,1197],{"class":84}," Nvidia",[67,1199,1200],{"class":84}," that",[67,1202,1203],{"class":84}," are",[67,1205,1206],{"class":84}," too",[67,1208,1209],{"class":84}," large",[67,1211,1212],{"class":84}," in",[67,1214,1215],{"class":84}," size,",[67,1217,1218],{"class":84}," achieve",[67,1220,1221],{"class":84}," lightweight",[67,1223,1224],{"class":84}," mirroring,",[67,1226,1227],{"class":84}," and",[67,1229,1230],{"class":84}," make",[67,1232,1233],{"class":84}," local",[67,1235,1236],{"class":84}," deployment",[67,1238,1239],{"class":84}," lighter",[67,1241,1227],{"class":84},[67,1243,1244],{"class":84}," faster.\n",[67,1246,1247,1250],{"class":69,"line":77},[67,1248,1249],{"class":80},"url:",[67,1251,1252],{"class":84}," registry.cn-shanghai.aliyuncs.com/memtensor/memos-base:v1.0\n",[67,1254,1255,1257],{"class":69,"line":150},[67,1256,1249],{"class":80},[67,1258,1259],{"class":84}," registry.cn-shanghai.aliyuncs.com/memtensor/memos-base-arm:v1.0\n",[67,1261,1262],{"class":69,"line":164},[67,1263,142],{"emptyLinePlaceholder":141},[67,1265,1266,1268,1271,1273,1276,1279,1282,1284,1287,1290,1293,1296,1299,1302,1305,1308,1311,1314,1317,1320,1322,1324,1327],{"class":69,"line":170},[67,1267,1176],{"class":80},[67,1269,1270],{"class":84}," Full",[67,1272,1182],{"class":84},[67,1274,1275],{"class":84}," Convert",[67,1277,1278],{"class":84}," all",[67,1280,1281],{"class":84}," MemOS",[67,1283,1188],{"class":84},[67,1285,1286],{"class":84}," into",[67,1288,1289],{"class":84}," images,",[67,1291,1292],{"class":84}," Experience",[67,1294,1295],{"class":84}," complete",[67,1297,1298],{"class":84}," functionality.",[67,1300,1301],{"class":84}," By",[67,1303,1304],{"class":84}," configuring",[67,1306,1307],{"class":84}," Dockerfiles,",[67,1309,1310],{"class":84}," you",[67,1312,1313],{"class":84}," can",[67,1315,1316],{"class":84}," directly",[67,1318,1319],{"class":84}," build",[67,1321,1227],{"class":84},[67,1323,1099],{"class":84},[67,1325,1326],{"class":84}," the",[67,1328,1329],{"class":84}," package.\n",[67,1331,1332,1334],{"class":69,"line":181},[67,1333,1249],{"class":80},[67,1335,1336],{"class":84}," registry.cn-shanghai.aliyuncs.com/memtensor/memos-full-base:v1.0.0\n",[67,1338,1339,1341],{"class":69,"line":187},[67,1340,1249],{"class":80},[67,1342,1343],{"class":84}," registry.cn-shanghai.aliyuncs.com/memtensor/memos-full-base-arm:v1.0.0\n",[113,1345,1163],{"id":1346},"configure-dockerfilecd-docker-1",[57,1348,1350],{"className":59,"code":1349,"language":61,"meta":62,"style":62},"# The current example uses a simplified package url\nFROM registry.cn-shanghai.aliyuncs.com/memtensor/memos-base:v1.0\n\nWORKDIR /app\n\nENV HF_ENDPOINT=https://hf-mirror.com\n\nENV PYTHONPATH=/app/src\n\nCOPY src/ ./src/\n\nEXPOSE 8000\n\nCMD [\"uvicorn\", \"memos.api.server_api:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\", \"--reload\"]\n\n",[64,1351,1352,1357,1364,1368,1376,1380,1388,1392,1399,1403,1414,1418,1427,1431],{"__ignoreMap":62},[67,1353,1354],{"class":69,"line":70},[67,1355,1356],{"class":73},"# The current example uses a simplified package url\n",[67,1358,1359,1362],{"class":69,"line":77},[67,1360,1361],{"class":80},"FROM",[67,1363,1252],{"class":84},[67,1365,1366],{"class":69,"line":150},[67,1367,142],{"emptyLinePlaceholder":141},[67,1369,1370,1373],{"class":69,"line":164},[67,1371,1372],{"class":80},"WORKDIR",[67,1374,1375],{"class":84}," /app\n",[67,1377,1378],{"class":69,"line":170},[67,1379,142],{"emptyLinePlaceholder":141},[67,1381,1382,1385],{"class":69,"line":181},[67,1383,1384],{"class":80},"ENV",[67,1386,1387],{"class":84}," HF_ENDPOINT=https://hf-mirror.com\n",[67,1389,1390],{"class":69,"line":187},[67,1391,142],{"emptyLinePlaceholder":141},[67,1393,1394,1396],{"class":69,"line":198},[67,1395,1384],{"class":80},[67,1397,1398],{"class":84}," PYTHONPATH=/app/src\n",[67,1400,1401],{"class":69,"line":203},[67,1402,142],{"emptyLinePlaceholder":141},[67,1404,1405,1408,1411],{"class":69,"line":209},[67,1406,1407],{"class":80},"COPY",[67,1409,1410],{"class":84}," src/",[67,1412,1413],{"class":84}," ./src/\n",[67,1415,1416],{"class":69,"line":219},[67,1417,142],{"emptyLinePlaceholder":141},[67,1419,1420,1423],{"class":69,"line":225},[67,1421,1422],{"class":80},"EXPOSE",[67,1424,1426],{"class":1425},"sbssI"," 8000\n",[67,1428,1429],{"class":69,"line":235},[67,1430,142],{"emptyLinePlaceholder":141},[67,1432,1433,1436,1438,1440,1443,1445,1448,1450,1453,1455,1457,1459,1462,1464,1466,1468,1471,1473,1475,1477,1480,1482,1484,1486,1489,1491,1493,1495,1498,1500],{"class":69,"line":241},[67,1434,1435],{"class":80},"CMD",[67,1437,620],{"class":153},[67,1439,521],{"class":157},[67,1441,1442],{"class":84},"uvicorn",[67,1444,521],{"class":157},[67,1446,1447],{"class":153},", ",[67,1449,521],{"class":157},[67,1451,1452],{"class":84},"memos.api.server_api:app",[67,1454,521],{"class":157},[67,1456,524],{"class":84},[67,1458,515],{"class":157},[67,1460,1461],{"class":84},"--host",[67,1463,521],{"class":157},[67,1465,524],{"class":84},[67,1467,515],{"class":157},[67,1469,1470],{"class":84},"0.0.0.0",[67,1472,521],{"class":157},[67,1474,524],{"class":84},[67,1476,515],{"class":157},[67,1478,1479],{"class":84},"--port",[67,1481,521],{"class":157},[67,1483,524],{"class":84},[67,1485,515],{"class":157},[67,1487,1488],{"class":84},"8000",[67,1490,521],{"class":157},[67,1492,524],{"class":84},[67,1494,515],{"class":157},[67,1496,1497],{"class":84},"--reload",[67,1499,521],{"class":157},[67,1501,1502],{"class":84},"]\n",[113,1504,1506],{"id":1505},"build-and-start-service-using-docker-compose-up","Build and start service using docker compose up:",[57,1508,1510],{"className":59,"code":1509,"language":61,"meta":62,"style":62},"# Enter docker directory\ndocker compose up\n",[64,1511,1512,1517],{"__ignoreMap":62},[67,1513,1514],{"class":69,"line":70},[67,1515,1516],{"class":73},"# Enter docker directory\n",[67,1518,1519,1521,1524],{"class":69,"line":77},[67,1520,1116],{"class":80},[67,1522,1523],{"class":84}," compose",[67,1525,1526],{"class":84}," up\n",[11,1528,1529],{},[14,1530],{"alt":1531,"src":1532},"MemOS buildComposeupSuccess","https://cdn.memt.ai/img/memos_build_composeup_success_compressed.png",[19,1534,1535],{"style":21},"Example image, port as per docker custom configuration","  ",[113,1538,1540,1541,131],{"id":1539},"access-api-via-httplocalhost8000docs","Access API via ",[127,1542,1543],{"href":1543,"rel":1544},"http://localhost:8000/docs",[1545],"nofollow",[11,1547,1548],{},[14,1549],{"alt":16,"src":17},[113,1551,1553],{"id":1552},"test-cases-add-user-memory-query-user-memory-refer-to-docker-compose-up-test-cases","Test cases (Add user memory->Query user memory) Refer to Docker Compose up test cases",[24,1555,1557],{"id":1556},"method-2client-install-with-docker-compose-up","Method 2：Client Install with Docker Compose up",[1137,1559,1560,1566,1570,1586,1590,1639,1643,1682,1688,1692,1696,1705,1907,1915,2590],{"level":1139},[11,1561,1562,1563,1565],{},"Development Docker Compose up comes pre-configured with qdrant, neo4j.\nRunning the server requires the ",[64,1564,154],{}," environment variable.",[113,1567,1569],{"id":1568},"enter-docker-folder","Enter docker folder",[57,1571,1573],{"className":59,"code":1572,"language":61,"meta":62,"style":62},"# Enter docker folder from current directory\ncd docker\n",[64,1574,1575,1580],{"__ignoreMap":62},[67,1576,1577],{"class":69,"line":70},[67,1578,1579],{"class":73},"# Enter docker folder from current directory\n",[67,1581,1582,1584],{"class":69,"line":77},[67,1583,108],{"class":107},[67,1585,1102],{"class":84},[113,1587,1589],{"id":1588},"install-corresponding-dependency-modules","Install corresponding dependency modules",[57,1591,1593],{"className":59,"code":1592,"language":61,"meta":62,"style":62},"\npip install --upgrade pip && pip install --no-cache-dir -r requirements.txt\n# Install dependencies using Aliyun source\n# pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/\n\n",[64,1594,1595,1599,1629,1634],{"__ignoreMap":62},[67,1596,1597],{"class":69,"line":70},[67,1598,142],{"emptyLinePlaceholder":141},[67,1600,1601,1604,1607,1610,1613,1616,1618,1620,1623,1626],{"class":69,"line":77},[67,1602,1603],{"class":80},"pip",[67,1605,1606],{"class":84}," install",[67,1608,1609],{"class":84}," --upgrade",[67,1611,1612],{"class":84}," pip",[67,1614,1615],{"class":157}," &&",[67,1617,1612],{"class":80},[67,1619,1606],{"class":84},[67,1621,1622],{"class":84}," --no-cache-dir",[67,1624,1625],{"class":84}," -r",[67,1627,1628],{"class":84}," requirements.txt\n",[67,1630,1631],{"class":69,"line":150},[67,1632,1633],{"class":73},"# Install dependencies using Aliyun source\n",[67,1635,1636],{"class":69,"line":164},[67,1637,1638],{"class":73},"# pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/\n",[113,1640,1642],{"id":1641},"start-container-using-docker-compose-up-in-docker-directory-ensure-vpn-connects-normally","Start container using Docker Compose Up in docker directory (ensure vpn connects normally):",[57,1644,1646],{"className":59,"code":1645,"language":61,"meta":62,"style":62},"\n# Build required for first run\ndocker compose up --build\n# Not required for subsequent runs\ndocker compose up\n\n",[64,1647,1648,1652,1657,1669,1674],{"__ignoreMap":62},[67,1649,1650],{"class":69,"line":70},[67,1651,142],{"emptyLinePlaceholder":141},[67,1653,1654],{"class":69,"line":77},[67,1655,1656],{"class":73},"# Build required for first run\n",[67,1658,1659,1661,1663,1666],{"class":69,"line":150},[67,1660,1116],{"class":80},[67,1662,1523],{"class":84},[67,1664,1665],{"class":84}," up",[67,1667,1668],{"class":84}," --build\n",[67,1670,1671],{"class":69,"line":164},[67,1672,1673],{"class":73},"# Not required for subsequent runs\n",[67,1675,1676,1678,1680],{"class":69,"line":170},[67,1677,1116],{"class":80},[67,1679,1523],{"class":84},[67,1681,1526],{"class":84},[113,1683,1540,1685,131],{"id":1684},"access-api-via-httplocalhost8000docs-1",[127,1686,1543],{"href":1543,"rel":1687},[1545],[113,1689,1691],{"id":1690},"example-process","Example process",[122,1693,1695],{"id":1694},"query-user-memory-stop-if-none-add-user-memory-query-user-memory","(Query user memory (stop if none) -> Add user memory -> Query user memory)",[122,1697,1699,1700,1704],{"id":1698},"add-user-memory-httplocalhost8000productadd-post","Add User Memory ",[127,1701,1702],{"href":1702,"rel":1703},"http://localhost:8000/product/add",[1545]," (POST)",[57,1706,1708],{"className":59,"code":1707,"language":61,"meta":62,"style":62},"# Request params\n{\n  \"user_id\": \"8736b16e-1d20-4163-980b-a5063c3facdc\",\n  \"mem_cube_id\": \"b32d0977-435d-4828-a86f-4f47f8b55bca\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"I like strawberry\"\n    }\n  ],\n  \"memory_content\": \"\",\n  \"doc_path\": \"\",\n  \"source\": \"\",\n  \"user_profile\": false\n}\n# Response\n{\n    \"code\": 200,\n    \"message\": \"Memory created successfully\",\n    \"data\": null\n}\n",[64,1709,1710,1715,1720,1737,1753,1763,1768,1784,1799,1804,1809,1821,1832,1843,1853,1858,1863,1867,1877,1893,1903],{"__ignoreMap":62},[67,1711,1712],{"class":69,"line":70},[67,1713,1714],{"class":73},"# Request params\n",[67,1716,1717],{"class":69,"line":77},[67,1718,1719],{"class":157},"{\n",[67,1721,1722,1725,1727,1729,1732,1734],{"class":69,"line":150},[67,1723,1724],{"class":80},"  \"user_id\"",[67,1726,512],{"class":107},[67,1728,515],{"class":157},[67,1730,1731],{"class":84},"8736b16e-1d20-4163-980b-a5063c3facdc",[67,1733,521],{"class":157},[67,1735,1736],{"class":84},",\n",[67,1738,1739,1742,1744,1746,1749,1751],{"class":69,"line":164},[67,1740,1741],{"class":80},"  \"mem_cube_id\"",[67,1743,512],{"class":107},[67,1745,515],{"class":157},[67,1747,1748],{"class":84},"b32d0977-435d-4828-a86f-4f47f8b55bca",[67,1750,521],{"class":157},[67,1752,1736],{"class":84},[67,1754,1755,1758,1760],{"class":69,"line":170},[67,1756,1757],{"class":80},"  \"messages\"",[67,1759,512],{"class":107},[67,1761,1762],{"class":153}," [\n",[67,1764,1765],{"class":69,"line":181},[67,1766,1767],{"class":157},"    {\n",[67,1769,1770,1773,1775,1777,1780,1782],{"class":69,"line":187},[67,1771,1772],{"class":80},"      \"role\"",[67,1774,512],{"class":107},[67,1776,515],{"class":157},[67,1778,1779],{"class":84},"user",[67,1781,521],{"class":157},[67,1783,1736],{"class":84},[67,1785,1786,1789,1791,1793,1796],{"class":69,"line":198},[67,1787,1788],{"class":80},"      \"content\"",[67,1790,512],{"class":107},[67,1792,515],{"class":157},[67,1794,1795],{"class":84},"I like strawberry",[67,1797,1798],{"class":157},"\"\n",[67,1800,1801],{"class":69,"line":203},[67,1802,1803],{"class":157},"    }\n",[67,1805,1806],{"class":69,"line":209},[67,1807,1808],{"class":153},"  ],\n",[67,1810,1811,1814,1816,1819],{"class":69,"line":219},[67,1812,1813],{"class":80},"  \"memory_content\"",[67,1815,512],{"class":107},[67,1817,1818],{"class":157}," \"\"",[67,1820,1736],{"class":84},[67,1822,1823,1826,1828,1830],{"class":69,"line":225},[67,1824,1825],{"class":80},"  \"doc_path\"",[67,1827,512],{"class":107},[67,1829,1818],{"class":157},[67,1831,1736],{"class":84},[67,1833,1834,1837,1839,1841],{"class":69,"line":235},[67,1835,1836],{"class":80},"  \"source\"",[67,1838,512],{"class":107},[67,1840,1818],{"class":157},[67,1842,1736],{"class":84},[67,1844,1845,1848,1850],{"class":69,"line":241},[67,1846,1847],{"class":80},"  \"user_profile\"",[67,1849,512],{"class":107},[67,1851,1852],{"class":157}," false\n",[67,1854,1855],{"class":69,"line":251},[67,1856,1857],{"class":157},"}\n",[67,1859,1860],{"class":69,"line":256},[67,1861,1862],{"class":73},"# Response\n",[67,1864,1865],{"class":69,"line":262},[67,1866,1719],{"class":157},[67,1868,1869,1872,1874],{"class":69,"line":273},[67,1870,1871],{"class":80},"    \"code\"",[67,1873,512],{"class":107},[67,1875,1876],{"class":84}," 200,\n",[67,1878,1879,1882,1884,1886,1889,1891],{"class":69,"line":279},[67,1880,1881],{"class":80},"    \"message\"",[67,1883,512],{"class":107},[67,1885,515],{"class":157},[67,1887,1888],{"class":84},"Memory created successfully",[67,1890,521],{"class":157},[67,1892,1736],{"class":84},[67,1894,1895,1898,1900],{"class":69,"line":290},[67,1896,1897],{"class":80},"    \"data\"",[67,1899,512],{"class":107},[67,1901,1902],{"class":84}," null\n",[67,1904,1905],{"class":69,"line":296},[67,1906,1857],{"class":157},[122,1908,1910,1911,1704],{"id":1909},"query-user-memory-httplocalhost8000productsearch-post","Query User Memory ",[127,1912,1913],{"href":1913,"rel":1914},"http://localhost:8000/product/search",[1545],[57,1916,1918],{"className":59,"code":1917,"language":61,"meta":62,"style":62},"# Request params\n{\n  \"query\": \"What do I like\",\n  \"user_id\": \"8736b16e-1d20-4163-980b-a5063c3facdc\",\n  \"mem_cube_id\": \"b32d0977-435d-4828-a86f-4f47f8b55bca\"\n}\n# Response\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 viewpoint] User likes strawberries.\",\n                  \"metadata\": {\n                      \"user_id\": \"de8215e3-3beb-4afc-9b64-ae594d62f1ea\",\n                      \"session_id\": \"root_session\",\n                      \"status\": \"activated\",\n                      \"type\": \"fact\",\n                      \"key\": \"User preference for strawberries\",\n                      \"confidence\": 0.99,\n                      \"source\": null,\n                      \"tags\": [\n                          \"preference\",\n                          \"strawberry\"\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\": \"The user expressed a preference for strawberries, indicating their inclination towards dietary preferences.\",\n                      \"relativity\": 0.6349761312470591,\n                      \"vector_sync\": \"success\",\n                      \"ref_id\": \"[2f40be8f]\",\n                      \"id\": \"2f40be8f-736c-4a5f-aada-9489037769e0\",\n                      \"memory\": \"[user viewpoint] User likes strawberries.\"\n                  },\n                  \"ref_id\": \"[2f40be8f]\"\n              },\n              ...\n            }\n          }\n        ],\n        \"act_mem\": [],\n        \"para_mem\": []\n    }\n}\n\n\n\n# Response failure, troubleshooting\n# src/memos/api/config.py\n# Check \"neo4j_vec_db\" and \"EMBEDDING_DIMENSION\" configured in get_neo4j_community_config method\n",[64,1919,1920,1924,1928,1944,1958,1970,1974,1978,1982,1990,2005,2014,2023,2028,2044,2053,2058,2074,2090,2099,2115,2131,2147,2163,2179,2189,2199,2208,2215,2220,2225,2234,2250,2266,2276,2285,2301,2310,2315,2332,2342,2357,2370,2375,2380,2384,2400,2410,2426,2442,2458,2472,2480,2494,2502,2508,2514,2520,2526,2536,2547,2552,2557,2562,2567,2572,2578,2584],{"__ignoreMap":62},[67,1921,1922],{"class":69,"line":70},[67,1923,1714],{"class":73},[67,1925,1926],{"class":69,"line":77},[67,1927,1719],{"class":157},[67,1929,1930,1933,1935,1937,1940,1942],{"class":69,"line":150},[67,1931,1932],{"class":80},"  \"query\"",[67,1934,512],{"class":107},[67,1936,515],{"class":157},[67,1938,1939],{"class":84},"What do I like",[67,1941,521],{"class":157},[67,1943,1736],{"class":84},[67,1945,1946,1948,1950,1952,1954,1956],{"class":69,"line":164},[67,1947,1724],{"class":80},[67,1949,512],{"class":107},[67,1951,515],{"class":157},[67,1953,1731],{"class":84},[67,1955,521],{"class":157},[67,1957,1736],{"class":84},[67,1959,1960,1962,1964,1966,1968],{"class":69,"line":170},[67,1961,1741],{"class":80},[67,1963,512],{"class":107},[67,1965,515],{"class":157},[67,1967,1748],{"class":84},[67,1969,1798],{"class":157},[67,1971,1972],{"class":69,"line":181},[67,1973,1857],{"class":157},[67,1975,1976],{"class":69,"line":187},[67,1977,1862],{"class":73},[67,1979,1980],{"class":69,"line":198},[67,1981,1719],{"class":157},[67,1983,1984,1986,1988],{"class":69,"line":203},[67,1985,1871],{"class":80},[67,1987,512],{"class":107},[67,1989,1876],{"class":84},[67,1991,1992,1994,1996,1998,2001,2003],{"class":69,"line":209},[67,1993,1881],{"class":80},[67,1995,512],{"class":107},[67,1997,515],{"class":157},[67,1999,2000],{"class":84},"Search completed successfully",[67,2002,521],{"class":157},[67,2004,1736],{"class":84},[67,2006,2007,2009,2011],{"class":69,"line":219},[67,2008,1897],{"class":80},[67,2010,512],{"class":107},[67,2012,2013],{"class":84}," {\n",[67,2015,2016,2019,2021],{"class":69,"line":225},[67,2017,2018],{"class":80},"        \"text_mem\"",[67,2020,512],{"class":107},[67,2022,1762],{"class":153},[67,2024,2025],{"class":69,"line":235},[67,2026,2027],{"class":157},"          {\n",[67,2029,2030,2033,2035,2037,2040,2042],{"class":69,"line":241},[67,2031,2032],{"class":80},"            \"cube_id\"",[67,2034,512],{"class":107},[67,2036,515],{"class":157},[67,2038,2039],{"class":84},"7231eda8-6c57-4f6e-97ce-98b699eebb98",[67,2041,521],{"class":157},[67,2043,1736],{"class":84},[67,2045,2046,2049,2051],{"class":69,"line":251},[67,2047,2048],{"class":80},"            \"memories\"",[67,2050,512],{"class":107},[67,2052,1762],{"class":153},[67,2054,2055],{"class":69,"line":256},[67,2056,2057],{"class":157},"              {\n",[67,2059,2060,2063,2065,2067,2070,2072],{"class":69,"line":262},[67,2061,2062],{"class":80},"                  \"id\"",[67,2064,512],{"class":107},[67,2066,515],{"class":157},[67,2068,2069],{"class":84},"2f40be8f-736c-4a5f-aada-9489037769e0",[67,2071,521],{"class":157},[67,2073,1736],{"class":84},[67,2075,2076,2079,2081,2083,2086,2088],{"class":69,"line":273},[67,2077,2078],{"class":80},"                  \"memory\"",[67,2080,512],{"class":107},[67,2082,515],{"class":157},[67,2084,2085],{"class":84},"[user viewpoint] User likes strawberries.",[67,2087,521],{"class":157},[67,2089,1736],{"class":84},[67,2091,2092,2095,2097],{"class":69,"line":279},[67,2093,2094],{"class":80},"                  \"metadata\"",[67,2096,512],{"class":107},[67,2098,2013],{"class":84},[67,2100,2101,2104,2106,2108,2111,2113],{"class":69,"line":290},[67,2102,2103],{"class":80},"                      \"user_id\"",[67,2105,512],{"class":107},[67,2107,515],{"class":157},[67,2109,2110],{"class":84},"de8215e3-3beb-4afc-9b64-ae594d62f1ea",[67,2112,521],{"class":157},[67,2114,1736],{"class":84},[67,2116,2117,2120,2122,2124,2127,2129],{"class":69,"line":296},[67,2118,2119],{"class":80},"                      \"session_id\"",[67,2121,512],{"class":107},[67,2123,515],{"class":157},[67,2125,2126],{"class":84},"root_session",[67,2128,521],{"class":157},[67,2130,1736],{"class":84},[67,2132,2133,2136,2138,2140,2143,2145],{"class":69,"line":307},[67,2134,2135],{"class":80},"                      \"status\"",[67,2137,512],{"class":107},[67,2139,515],{"class":157},[67,2141,2142],{"class":84},"activated",[67,2144,521],{"class":157},[67,2146,1736],{"class":84},[67,2148,2149,2152,2154,2156,2159,2161],{"class":69,"line":313},[67,2150,2151],{"class":80},"                      \"type\"",[67,2153,512],{"class":107},[67,2155,515],{"class":157},[67,2157,2158],{"class":84},"fact",[67,2160,521],{"class":157},[67,2162,1736],{"class":84},[67,2164,2165,2168,2170,2172,2175,2177],{"class":69,"line":324},[67,2166,2167],{"class":80},"                      \"key\"",[67,2169,512],{"class":107},[67,2171,515],{"class":157},[67,2173,2174],{"class":84},"User preference for strawberries",[67,2176,521],{"class":157},[67,2178,1736],{"class":84},[67,2180,2181,2184,2186],{"class":69,"line":330},[67,2182,2183],{"class":80},"                      \"confidence\"",[67,2185,512],{"class":107},[67,2187,2188],{"class":84}," 0.99,\n",[67,2190,2191,2194,2196],{"class":69,"line":341},[67,2192,2193],{"class":80},"                      \"source\"",[67,2195,512],{"class":107},[67,2197,2198],{"class":84}," null,\n",[67,2200,2201,2204,2206],{"class":69,"line":347},[67,2202,2203],{"class":80},"                      \"tags\"",[67,2205,512],{"class":107},[67,2207,1762],{"class":153},[67,2209,2210,2213],{"class":69,"line":358},[67,2211,2212],{"class":80},"                          \"preference\"",[67,2214,1736],{"class":80},[67,2216,2217],{"class":69,"line":363},[67,2218,2219],{"class":80},"                          \"strawberry\"\n",[67,2221,2222],{"class":69,"line":369},[67,2223,2224],{"class":153},"                      ],\n",[67,2226,2227,2230,2232],{"class":69,"line":375},[67,2228,2229],{"class":80},"                      \"visibility\"",[67,2231,512],{"class":107},[67,2233,2198],{"class":84},[67,2235,2236,2239,2241,2243,2246,2248],{"class":69,"line":386},[67,2237,2238],{"class":80},"                      \"updated_at\"",[67,2240,512],{"class":107},[67,2242,515],{"class":157},[67,2244,2245],{"class":84},"2025-09-18T08:23:44.625479000+00:00",[67,2247,521],{"class":157},[67,2249,1736],{"class":84},[67,2251,2252,2255,2257,2259,2262,2264],{"class":69,"line":392},[67,2253,2254],{"class":80},"                      \"memory_type\"",[67,2256,512],{"class":107},[67,2258,515],{"class":157},[67,2260,2261],{"class":84},"UserMemory",[67,2263,521],{"class":157},[67,2265,1736],{"class":84},[67,2267,2268,2271,2273],{"class":69,"line":403},[67,2269,2270],{"class":80},"                      \"sources\"",[67,2272,512],{"class":107},[67,2274,2275],{"class":153}," [],\n",[67,2277,2278,2281,2283],{"class":69,"line":414},[67,2279,2280],{"class":80},"                      \"embedding\"",[67,2282,512],{"class":107},[67,2284,2275],{"class":153},[67,2286,2287,2290,2292,2294,2297,2299],{"class":69,"line":425},[67,2288,2289],{"class":80},"                      \"created_at\"",[67,2291,512],{"class":107},[67,2293,515],{"class":157},[67,2295,2296],{"class":84},"2025-09-18T08:23:44.625511000+00:00",[67,2298,521],{"class":157},[67,2300,1736],{"class":84},[67,2302,2303,2306,2308],{"class":69,"line":435},[67,2304,2305],{"class":80},"                      \"usage\"",[67,2307,512],{"class":107},[67,2309,1762],{"class":153},[67,2311,2312],{"class":69,"line":446},[67,2313,2314],{"class":80},"                          \"{\n",[67,2316,2317,2320,2323,2326,2329],{"class":69,"line":451},[67,2318,2319],{"class":80},"                            \"",[67,2321,2322],{"class":80},"time",[67,2324,2325],{"class":80},"\": \"",[67,2327,2328],{"class":80},"2025-09-18T08:24:17.759748",[67,2330,2331],{"class":80},"\", \n",[67,2333,2334,2336,2339],{"class":69,"line":457},[67,2335,2319],{"class":80},[67,2337,2338],{"class":80},"info",[67,2340,2341],{"class":80},"\": {\n",[67,2343,2344,2347,2350,2352,2354],{"class":69,"line":467},[67,2345,2346],{"class":80},"                              \"",[67,2348,2349],{"class":80},"user_id",[67,2351,2325],{"class":80},[67,2353,2110],{"class":80},[67,2355,2356],{"class":80},"\",\n",[67,2358,2359,2361,2364,2366,2368],{"class":69,"line":472},[67,2360,2346],{"class":80},[67,2362,2363],{"class":80},"session_id",[67,2365,2325],{"class":80},[67,2367,2126],{"class":80},[67,2369,1798],{"class":80},[67,2371,2372],{"class":69,"line":478},[67,2373,2374],{"class":80},"                            }\n",[67,2376,2377],{"class":69,"line":489},[67,2378,2379],{"class":80},"                          }\"\n",[67,2381,2382],{"class":69,"line":495},[67,2383,2224],{"class":153},[67,2385,2386,2389,2391,2393,2396,2398],{"class":69,"line":907},[67,2387,2388],{"class":80},"                      \"background\"",[67,2390,512],{"class":107},[67,2392,515],{"class":157},[67,2394,2395],{"class":84},"The user expressed a preference for strawberries, indicating their inclination towards dietary preferences.",[67,2397,521],{"class":157},[67,2399,1736],{"class":84},[67,2401,2402,2405,2407],{"class":69,"line":912},[67,2403,2404],{"class":80},"                      \"relativity\"",[67,2406,512],{"class":107},[67,2408,2409],{"class":84}," 0.6349761312470591,\n",[67,2411,2412,2415,2417,2419,2422,2424],{"class":69,"line":921},[67,2413,2414],{"class":80},"                      \"vector_sync\"",[67,2416,512],{"class":107},[67,2418,515],{"class":157},[67,2420,2421],{"class":84},"success",[67,2423,521],{"class":157},[67,2425,1736],{"class":84},[67,2427,2428,2431,2433,2435,2438,2440],{"class":69,"line":926},[67,2429,2430],{"class":80},"                      \"ref_id\"",[67,2432,512],{"class":107},[67,2434,515],{"class":157},[67,2436,2437],{"class":84},"[2f40be8f]",[67,2439,521],{"class":157},[67,2441,1736],{"class":84},[67,2443,2445,2448,2450,2452,2454,2456],{"class":69,"line":2444},50,[67,2446,2447],{"class":80},"                      \"id\"",[67,2449,512],{"class":107},[67,2451,515],{"class":157},[67,2453,2069],{"class":84},[67,2455,521],{"class":157},[67,2457,1736],{"class":84},[67,2459,2461,2464,2466,2468,2470],{"class":69,"line":2460},51,[67,2462,2463],{"class":80},"                      \"memory\"",[67,2465,512],{"class":107},[67,2467,515],{"class":157},[67,2469,2085],{"class":84},[67,2471,1798],{"class":157},[67,2473,2475,2478],{"class":69,"line":2474},52,[67,2476,2477],{"class":157},"                  }",[67,2479,1736],{"class":153},[67,2481,2483,2486,2488,2490,2492],{"class":69,"line":2482},53,[67,2484,2485],{"class":80},"                  \"ref_id\"",[67,2487,512],{"class":107},[67,2489,515],{"class":157},[67,2491,2437],{"class":84},[67,2493,1798],{"class":157},[67,2495,2497,2500],{"class":69,"line":2496},54,[67,2498,2499],{"class":157},"              }",[67,2501,1736],{"class":153},[67,2503,2505],{"class":69,"line":2504},55,[67,2506,2507],{"class":107},"              ...\n",[67,2509,2511],{"class":69,"line":2510},56,[67,2512,2513],{"class":157},"            }\n",[67,2515,2517],{"class":69,"line":2516},57,[67,2518,2519],{"class":153},"          }\n",[67,2521,2523],{"class":69,"line":2522},58,[67,2524,2525],{"class":153},"        ],\n",[67,2527,2529,2532,2534],{"class":69,"line":2528},59,[67,2530,2531],{"class":80},"        \"act_mem\"",[67,2533,512],{"class":107},[67,2535,2275],{"class":153},[67,2537,2539,2542,2544],{"class":69,"line":2538},60,[67,2540,2541],{"class":80},"        \"para_mem\"",[67,2543,512],{"class":107},[67,2545,2546],{"class":153}," []\n",[67,2548,2550],{"class":69,"line":2549},61,[67,2551,1803],{"class":153},[67,2553,2555],{"class":69,"line":2554},62,[67,2556,1857],{"class":153},[67,2558,2560],{"class":69,"line":2559},63,[67,2561,142],{"emptyLinePlaceholder":141},[67,2563,2565],{"class":69,"line":2564},64,[67,2566,142],{"emptyLinePlaceholder":141},[67,2568,2570],{"class":69,"line":2569},65,[67,2571,142],{"emptyLinePlaceholder":141},[67,2573,2575],{"class":69,"line":2574},66,[67,2576,2577],{"class":73},"# Response failure, troubleshooting\n",[67,2579,2581],{"class":69,"line":2580},67,[67,2582,2583],{"class":73},"# src/memos/api/config.py\n",[67,2585,2587],{"class":69,"line":2586},68,[67,2588,2589],{"class":73},"# Check \"neo4j_vec_db\" and \"EMBEDDING_DIMENSION\" configured in get_neo4j_community_config method\n",[113,2591,2593],{"id":2592},"modifications-to-server-code-or-library-code-will-automatically-reload-the-server","Modifications to server code or library code will automatically reload the server.",[24,2595,2597],{"id":2596},"method-3client-install-using-cli-commands","Method 3：Client Install using CLI commands",[1137,2599,2600,2604,2637,2641,2771,2775],{"level":1139},[113,2601,2603],{"id":2602},"install-dependencies","Install dependencies",[57,2605,2607],{"className":59,"code":2606,"language":61,"meta":62,"style":62},"# pip install --upgrade pip && pip install --no-cache-dir -r ./docker/requirements.txt\n# Install dependencies using Aliyun source\npip install --no-cache-dir -r ./docker/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/\n\n\n",[64,2608,2609,2614,2618],{"__ignoreMap":62},[67,2610,2611],{"class":69,"line":70},[67,2612,2613],{"class":73},"# pip install --upgrade pip && pip install --no-cache-dir -r ./docker/requirements.txt\n",[67,2615,2616],{"class":69,"line":77},[67,2617,1633],{"class":73},[67,2619,2620,2622,2624,2626,2628,2631,2634],{"class":69,"line":150},[67,2621,1603],{"class":80},[67,2623,1606],{"class":84},[67,2625,1622],{"class":84},[67,2627,1625],{"class":84},[67,2629,2630],{"class":84}," ./docker/requirements.txt",[67,2632,2633],{"class":84}," -i",[67,2635,2636],{"class":84}," https://mirrors.aliyun.com/pypi/simple/\n",[113,2638,2640],{"id":2639},"open-terminal-and-run-the-following-command-to-install","Open terminal and run the following command to install:",[57,2642,2644],{"className":59,"code":2643,"language":61,"meta":62,"style":62},"\n# Packages that might need manual installation currently. Need to find resources for these two packages\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# Check if installed successfully\ndocker images\n# Check if running\ndocker ps -a\n\n\n# Root directory\n uvicorn memos.api.server_api:app --host 0.0.0.0 --port 8000 --workers 1\n\n# If ModuleNotFoundError: No module named 'memos' appears during startup, it is due to path matching problem, please execute\nexport PYTHONPATH=/you-file-absolute-path/MemOS/src\n\n",[64,2645,2646,2650,2655,2660,2672,2683,2688,2694,2699,2709,2713,2717,2722,2748,2752,2757],{"__ignoreMap":62},[67,2647,2648],{"class":69,"line":70},[67,2649,142],{"emptyLinePlaceholder":141},[67,2651,2652],{"class":69,"line":77},[67,2653,2654],{"class":73},"# Packages that might need manual installation currently. Need to find resources for these two packages\n",[67,2656,2657],{"class":69,"line":150},[67,2658,2659],{"class":73},"# neo4j.5.26.4.tar   qdrant.v1.15.3.tar\n",[67,2661,2662,2664,2667,2669],{"class":69,"line":164},[67,2663,1116],{"class":80},[67,2665,2666],{"class":84}," load",[67,2668,2633],{"class":84},[67,2670,2671],{"class":84}," neo4j.5.26.4.tar\n",[67,2673,2674,2676,2678,2680],{"class":69,"line":170},[67,2675,1116],{"class":80},[67,2677,2666],{"class":84},[67,2679,2633],{"class":84},[67,2681,2682],{"class":84}," qdrant.v1.15.3.tar\n",[67,2684,2685],{"class":69,"line":181},[67,2686,2687],{"class":73},"# Check if installed successfully\n",[67,2689,2690,2692],{"class":69,"line":187},[67,2691,1116],{"class":80},[67,2693,1131],{"class":84},[67,2695,2696],{"class":69,"line":198},[67,2697,2698],{"class":73},"# Check if running\n",[67,2700,2701,2703,2706],{"class":69,"line":203},[67,2702,1116],{"class":80},[67,2704,2705],{"class":84}," ps",[67,2707,2708],{"class":84}," -a\n",[67,2710,2711],{"class":69,"line":209},[67,2712,142],{"emptyLinePlaceholder":141},[67,2714,2715],{"class":69,"line":219},[67,2716,142],{"emptyLinePlaceholder":141},[67,2718,2719],{"class":69,"line":225},[67,2720,2721],{"class":73},"# Root directory\n",[67,2723,2724,2727,2730,2733,2736,2739,2742,2745],{"class":69,"line":235},[67,2725,2726],{"class":80}," uvicorn",[67,2728,2729],{"class":84}," memos.api.server_api:app",[67,2731,2732],{"class":84}," --host",[67,2734,2735],{"class":1425}," 0.0.0.0",[67,2737,2738],{"class":84}," --port",[67,2740,2741],{"class":1425}," 8000",[67,2743,2744],{"class":84}," --workers",[67,2746,2747],{"class":1425}," 1\n",[67,2749,2750],{"class":69,"line":241},[67,2751,142],{"emptyLinePlaceholder":141},[67,2753,2754],{"class":69,"line":251},[67,2755,2756],{"class":73},"# If ModuleNotFoundError: No module named 'memos' appears during startup, it is due to path matching problem, please execute\n",[67,2758,2759,2763,2766,2768],{"class":69,"line":256},[67,2760,2762],{"class":2761},"spNyl","export",[67,2764,2765],{"class":153}," PYTHONPATH",[67,2767,158],{"class":157},[67,2769,2770],{"class":153},"/you-file-absolute-path/MemOS/src\n",[113,2772,2774],{"id":2773},"access-api","Access API",[11,2776,2777,2778,131],{},"After startup is complete, access API via ",[127,2779,1543],{"href":1543,"rel":2780},[1545],[24,2782,2784],{"id":2783},"method-4-without-docker","Method 4： Without Docker",[1137,2786,2787,2790,2794,2819,2823,3168,3172,3185,3189,3193,3216,3228],{"level":1139},[113,2788,1159],{"id":2789},"reference-configuration-environment-variables-above-env-file-should-be-configured-1",[113,2791,2793],{"id":2792},"install-poetry-for-dependency-management","Install Poetry for dependency management:",[57,2795,2797],{"className":59,"code":2796,"language":61,"meta":62,"style":62},"curl -sSL https://install.python-poetry.org | python3 - \n",[64,2798,2799],{"__ignoreMap":62},[67,2800,2801,2804,2807,2810,2813,2816],{"class":69,"line":70},[67,2802,2803],{"class":80},"curl",[67,2805,2806],{"class":84}," -sSL",[67,2808,2809],{"class":84}," https://install.python-poetry.org",[67,2811,2812],{"class":157}," |",[67,2814,2815],{"class":80}," python3",[67,2817,2818],{"class":84}," -\n",[113,2820,2822],{"id":2821},"poetry-environment-variable-configuration","Poetry environment variable configuration:",[57,2824,2826],{"className":59,"code":2825,"language":61,"meta":62,"style":62},"\n# To start using, you need to find Poetry's bin directory in \"PATH\" (/Users/jinyunyuan/.local/bin) environment variable\n# Modern macOS systems default Shell is zsh. You can confirm via following command\n1. Determine which Shell you are using\n\necho $SHELL\n# If output is /bin/zsh or /usr/bin/env zsh, then you are zsh.\n# (If your system version is older, might still be using bash, output will be /bin/bash)\n2. Open corresponding Shell config file\n# If using zsh (vast majority of cases):\n# Use nano editor (recommended for beginners)\nnano ~/.zshrc\n\n# Or use vim editor\n# vim ~/.zshrc\n# If using bash:\nnano ~/.bash_profile\n# Or\nnano ~/.bashrc\n\n3. Add PATH environment variable\n\n# At the very end of opened file, start a new line, paste installation prompt command:\nexport PATH=\"/you-path/.local/bin:$PATH\"\n\n4. Save and exit editor\n\n# If using nano:\n# Press Ctrl + O to write (save), press Enter to confirm filename.\n# Then press Ctrl + X to exit editor.\n\n# If using vim:\n# Press i to enter insert mode, paste code, then press ESC key to exit insert mode.\n# Input :wq, then press Enter to save and exit.\n\n5. Make configuration take effect immediately\n# Newly modified config file won't automatically take effect in currently open terminal window, you need to run one of the following commands to reload it:\n\n# For zsh:\nsource ~/.zshrc\n\n# For bash:\nsource ~/.bash_profile\n\n6. Verify if installation is successful\n# Now, you can execute test command in prompt to check if everything is ready:\npoetry --version\n# Success will show version number Poetry (version 2.2.0)\n\n",[64,2827,2828,2832,2837,2842,2863,2867,2875,2880,2885,2904,2909,2914,2922,2926,2931,2936,2941,2948,2953,2960,2964,2981,2985,2990,3008,3012,3028,3032,3037,3042,3047,3051,3056,3061,3066,3070,3090,3095,3099,3104,3111,3115,3120,3126,3130,3150,3155,3163],{"__ignoreMap":62},[67,2829,2830],{"class":69,"line":70},[67,2831,142],{"emptyLinePlaceholder":141},[67,2833,2834],{"class":69,"line":77},[67,2835,2836],{"class":73},"# To start using, you need to find Poetry's bin directory in \"PATH\" (/Users/jinyunyuan/.local/bin) environment variable\n",[67,2838,2839],{"class":69,"line":150},[67,2840,2841],{"class":73},"# Modern macOS systems default Shell is zsh. You can confirm via following command\n",[67,2843,2844,2847,2850,2853,2856,2858,2860],{"class":69,"line":164},[67,2845,2846],{"class":80},"1.",[67,2848,2849],{"class":84}," Determine",[67,2851,2852],{"class":84}," which",[67,2854,2855],{"class":84}," Shell",[67,2857,1310],{"class":84},[67,2859,1203],{"class":84},[67,2861,2862],{"class":84}," using\n",[67,2864,2865],{"class":69,"line":170},[67,2866,142],{"emptyLinePlaceholder":141},[67,2868,2869,2872],{"class":69,"line":181},[67,2870,2871],{"class":107},"echo",[67,2873,2874],{"class":153}," $SHELL\n",[67,2876,2877],{"class":69,"line":187},[67,2878,2879],{"class":73},"# If output is /bin/zsh or /usr/bin/env zsh, then you are zsh.\n",[67,2881,2882],{"class":69,"line":198},[67,2883,2884],{"class":73},"# (If your system version is older, might still be using bash, output will be /bin/bash)\n",[67,2886,2887,2890,2893,2896,2898,2901],{"class":69,"line":203},[67,2888,2889],{"class":80},"2.",[67,2891,2892],{"class":84}," Open",[67,2894,2895],{"class":84}," corresponding",[67,2897,2855],{"class":84},[67,2899,2900],{"class":84}," config",[67,2902,2903],{"class":84}," file\n",[67,2905,2906],{"class":69,"line":209},[67,2907,2908],{"class":73},"# If using zsh (vast majority of cases):\n",[67,2910,2911],{"class":69,"line":219},[67,2912,2913],{"class":73},"# Use nano editor (recommended for beginners)\n",[67,2915,2916,2919],{"class":69,"line":225},[67,2917,2918],{"class":80},"nano",[67,2920,2921],{"class":84}," ~/.zshrc\n",[67,2923,2924],{"class":69,"line":235},[67,2925,142],{"emptyLinePlaceholder":141},[67,2927,2928],{"class":69,"line":241},[67,2929,2930],{"class":73},"# Or use vim editor\n",[67,2932,2933],{"class":69,"line":251},[67,2934,2935],{"class":73},"# vim ~/.zshrc\n",[67,2937,2938],{"class":69,"line":256},[67,2939,2940],{"class":73},"# If using bash:\n",[67,2942,2943,2945],{"class":69,"line":262},[67,2944,2918],{"class":80},[67,2946,2947],{"class":84}," ~/.bash_profile\n",[67,2949,2950],{"class":69,"line":273},[67,2951,2952],{"class":73},"# Or\n",[67,2954,2955,2957],{"class":69,"line":279},[67,2956,2918],{"class":80},[67,2958,2959],{"class":84}," ~/.bashrc\n",[67,2961,2962],{"class":69,"line":290},[67,2963,142],{"emptyLinePlaceholder":141},[67,2965,2966,2969,2972,2975,2978],{"class":69,"line":296},[67,2967,2968],{"class":80},"3.",[67,2970,2971],{"class":84}," Add",[67,2973,2974],{"class":84}," PATH",[67,2976,2977],{"class":84}," environment",[67,2979,2980],{"class":84}," variable\n",[67,2982,2983],{"class":69,"line":307},[67,2984,142],{"emptyLinePlaceholder":141},[67,2986,2987],{"class":69,"line":313},[67,2988,2989],{"class":73},"# At the very end of opened file, start a new line, paste installation prompt command:\n",[67,2991,2992,2994,2996,2998,3000,3003,3006],{"class":69,"line":324},[67,2993,2762],{"class":2761},[67,2995,2974],{"class":153},[67,2997,158],{"class":157},[67,2999,521],{"class":157},[67,3001,3002],{"class":84},"/you-path/.local/bin:",[67,3004,3005],{"class":153},"$PATH",[67,3007,1798],{"class":157},[67,3009,3010],{"class":69,"line":330},[67,3011,142],{"emptyLinePlaceholder":141},[67,3013,3014,3017,3020,3022,3025],{"class":69,"line":341},[67,3015,3016],{"class":80},"4.",[67,3018,3019],{"class":84}," Save",[67,3021,1227],{"class":84},[67,3023,3024],{"class":84}," exit",[67,3026,3027],{"class":84}," editor\n",[67,3029,3030],{"class":69,"line":347},[67,3031,142],{"emptyLinePlaceholder":141},[67,3033,3034],{"class":69,"line":358},[67,3035,3036],{"class":73},"# If using nano:\n",[67,3038,3039],{"class":69,"line":363},[67,3040,3041],{"class":73},"# Press Ctrl + O to write (save), press Enter to confirm filename.\n",[67,3043,3044],{"class":69,"line":369},[67,3045,3046],{"class":73},"# Then press Ctrl + X to exit editor.\n",[67,3048,3049],{"class":69,"line":375},[67,3050,142],{"emptyLinePlaceholder":141},[67,3052,3053],{"class":69,"line":386},[67,3054,3055],{"class":73},"# If using vim:\n",[67,3057,3058],{"class":69,"line":392},[67,3059,3060],{"class":73},"# Press i to enter insert mode, paste code, then press ESC key to exit insert mode.\n",[67,3062,3063],{"class":69,"line":403},[67,3064,3065],{"class":73},"# Input :wq, then press Enter to save and exit.\n",[67,3067,3068],{"class":69,"line":414},[67,3069,142],{"emptyLinePlaceholder":141},[67,3071,3072,3075,3078,3081,3084,3087],{"class":69,"line":425},[67,3073,3074],{"class":80},"5.",[67,3076,3077],{"class":84}," Make",[67,3079,3080],{"class":84}," configuration",[67,3082,3083],{"class":84}," take",[67,3085,3086],{"class":84}," effect",[67,3088,3089],{"class":84}," immediately\n",[67,3091,3092],{"class":69,"line":435},[67,3093,3094],{"class":73},"# Newly modified config file won't automatically take effect in currently open terminal window, you need to run one of the following commands to reload it:\n",[67,3096,3097],{"class":69,"line":446},[67,3098,142],{"emptyLinePlaceholder":141},[67,3100,3101],{"class":69,"line":451},[67,3102,3103],{"class":73},"# For zsh:\n",[67,3105,3106,3109],{"class":69,"line":457},[67,3107,3108],{"class":107},"source",[67,3110,2921],{"class":84},[67,3112,3113],{"class":69,"line":467},[67,3114,142],{"emptyLinePlaceholder":141},[67,3116,3117],{"class":69,"line":472},[67,3118,3119],{"class":73},"# For bash:\n",[67,3121,3122,3124],{"class":69,"line":478},[67,3123,3108],{"class":107},[67,3125,2947],{"class":84},[67,3127,3128],{"class":69,"line":489},[67,3129,142],{"emptyLinePlaceholder":141},[67,3131,3132,3135,3138,3141,3144,3147],{"class":69,"line":495},[67,3133,3134],{"class":80},"6.",[67,3136,3137],{"class":84}," Verify",[67,3139,3140],{"class":84}," if",[67,3142,3143],{"class":84}," installation",[67,3145,3146],{"class":84}," is",[67,3148,3149],{"class":84}," successful\n",[67,3151,3152],{"class":69,"line":907},[67,3153,3154],{"class":73},"# Now, you can execute test command in prompt to check if everything is ready:\n",[67,3156,3157,3160],{"class":69,"line":912},[67,3158,3159],{"class":80},"poetry",[67,3161,3162],{"class":84}," --version\n",[67,3164,3165],{"class":69,"line":921},[67,3166,3167],{"class":73},"# Success will show version number Poetry (version 2.2.0)\n",[113,3169,3171],{"id":3170},"install-all-project-dependencies-and-development-tools","Install all project dependencies and development tools:",[57,3173,3175],{"className":59,"code":3174,"language":61,"meta":62,"style":62},"make install  \n",[64,3176,3177],{"__ignoreMap":62},[67,3178,3179,3182],{"class":69,"line":70},[67,3180,3181],{"class":80},"make",[67,3183,3184],{"class":84}," install\n",[113,3186,3188],{"id":3187},"first-start-neo4j-and-qdrant-in-docker","First start neo4j and qdrant in docker",[113,3190,3192],{"id":3191},"start-fastapi-server-in-momos-directory","Start FastAPI server (In MomOS directory):",[57,3194,3196],{"className":59,"code":3195,"language":61,"meta":62,"style":62},"uvicorn memos.api.product_api:app --host 0.0.0.0 --port 8000 --reload\n",[64,3197,3198],{"__ignoreMap":62},[67,3199,3200,3202,3205,3207,3209,3211,3213],{"class":69,"line":70},[67,3201,1442],{"class":80},[67,3203,3204],{"class":84}," memos.api.product_api:app",[67,3206,2732],{"class":84},[67,3208,2735],{"class":1425},[67,3210,2738],{"class":84},[67,3212,2741],{"class":1425},[67,3214,3215],{"class":84}," --reload\n",[113,3217,3219,3220,3223,3224],{"id":3218},"after-server-runs-you-can-use-openapi-docs-to-test-api-url-is-httplocalhost8000docs-or-http1270018000docs","After server runs, you can use OpenAPI docs to test API, URL is ",[127,3221,1543],{"href":1543,"rel":3222},[1545]," or ",[127,3225,3226],{"href":3226,"rel":3227},"http://127.0.0.1:8000/docs",[1545],[113,3229,3231],{"id":3230},"test-cases-register-user-add-user-memory-query-user-memory-refer-to-docker-compose-up-test-cases","Test cases (Register user->Add user memory->Query user memory) Refer to Docker Compose up test cases",[24,3233,3235],{"id":3234},"method-5start-using-pycharm","Method 5：Start using PyCharm",[113,3237,3239],{"id":3238},"run-server_api","Run server_api",[57,3241,3243],{"className":59,"code":3242,"language":61,"meta":62,"style":62},"1. Enter MemOS/docker/Dockerfile file, modify run configuration\n# Start the docker\nCMD [\"uvicorn\", \"memos.api.server_api:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8000\", \"--reload\"]\n\n2. Enter directory MemOS/src/memos/api directly run server_api.py\n\n",[64,3244,3245,3267,3272,3334,3338],{"__ignoreMap":62},[67,3246,3247,3249,3252,3255,3258,3261,3264],{"class":69,"line":70},[67,3248,2846],{"class":80},[67,3250,3251],{"class":84}," Enter",[67,3253,3254],{"class":84}," MemOS/docker/Dockerfile",[67,3256,3257],{"class":84}," file,",[67,3259,3260],{"class":84}," modify",[67,3262,3263],{"class":84}," run",[67,3265,3266],{"class":84}," configuration\n",[67,3268,3269],{"class":69,"line":77},[67,3270,3271],{"class":73},"# Start the docker\n",[67,3273,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332],{"class":69,"line":150},[67,3275,1435],{"class":80},[67,3277,620],{"class":153},[67,3279,521],{"class":157},[67,3281,1442],{"class":84},[67,3283,521],{"class":157},[67,3285,1447],{"class":153},[67,3287,521],{"class":157},[67,3289,1452],{"class":84},[67,3291,521],{"class":157},[67,3293,524],{"class":84},[67,3295,515],{"class":157},[67,3297,1461],{"class":84},[67,3299,521],{"class":157},[67,3301,524],{"class":84},[67,3303,515],{"class":157},[67,3305,1470],{"class":84},[67,3307,521],{"class":157},[67,3309,524],{"class":84},[67,3311,515],{"class":157},[67,3313,1479],{"class":84},[67,3315,521],{"class":157},[67,3317,524],{"class":84},[67,3319,515],{"class":157},[67,3321,1488],{"class":84},[67,3323,521],{"class":157},[67,3325,524],{"class":84},[67,3327,515],{"class":157},[67,3329,1497],{"class":84},[67,3331,521],{"class":157},[67,3333,1502],{"class":84},[67,3335,3336],{"class":69,"line":164},[67,3337,142],{"emptyLinePlaceholder":141},[67,3339,3340,3342,3344,3347,3350,3352,3354],{"class":69,"line":170},[67,3341,2889],{"class":80},[67,3343,3251],{"class":84},[67,3345,3346],{"class":84}," directory",[67,3348,3349],{"class":84}," MemOS/src/memos/api",[67,3351,1316],{"class":84},[67,3353,3263],{"class":84},[67,3355,3356],{"class":84}," server_api.py\n",[3358,3359,3360],"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":62,"searchDepth":77,"depth":77,"links":3362},[3363,3364],{"id":26,"depth":150,"text":27},{"id":50,"depth":77,"text":51,"children":3365},[3366,3367,3368,3369,3370,3371,3372,3373,3374],{"id":54,"depth":150,"text":55},{"id":91,"depth":150,"text":92},{"id":632,"depth":150,"text":633},{"id":1058,"depth":150,"text":1059},{"id":1134,"depth":150,"text":1135},{"id":1556,"depth":150,"text":1557},{"id":2596,"depth":150,"text":2597},{"id":2783,"depth":150,"text":2784},{"id":3234,"depth":150,"text":3235},"MemOS provides a REST API service written using FastAPI. Users can perform all operations via REST interfaces.","md",{},"/en/open_source/getting_started/rest_api_server",{"title":5,"description":62},"en/open_source/getting_started/rest_api_server","JEQiU42I4P3Uctm66c2aiySgTuhpZqHvkAJ1uT--L0g",[3383,3391],{"title":3384,"path":3385,"stem":3386,"icon":3387,"framework":6,"module":6,"class":3388,"target":-1,"active":3389,"defaultOpen":3389,"children":-1,"description":3390},"Architecture","/open_source/home/architecture","open_source/home/architecture","i-ri-building-2-line",[],false,"MemOS is made up of core modules that work together to turn your LLM into a truly memory-augmented system — from orchestration to storage to retrieval.",{"title":3392,"path":3393,"stem":3394,"icon":3395,"framework":6,"module":6,"class":3396,"target":-1,"active":3389,"defaultOpen":3389,"children":-1,"description":3397},"MemOS Examples","/open_source/getting_started/examples","open_source/getting_started/examples","i-ri-code-line",[],"Congratulations - you've mastered the Quick Start and built your first working memory! Now it's time to see how far you can take MemOS by combining different memory types and features. Use these curated examples to inspire your own agents, chatbots, or knowledge systems.",1770372083549]