[{"data":1,"prerenderedAt":8454},["ShallowReactive",2],{"\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples":3,"surround-\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples":8438},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":8431,"description":93,"extension":8432,"links":6,"meta":8433,"navigation":6,"path":8434,"seo":8435,"stem":8436,"__hash__":8437},"docs\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples.md","MemOS 示例",null,{"type":8,"value":9,"toc":8403},"minimark",[10,55,60,65,75,79,84,87,670,674,677,685,688,702,705,708,1442,1445,2841,2845,2848,2856,2859,2864,2867,3537,3541,3544,3555,3558,3569,3572,5592,5596,5599,5610,5613,5636,5639,8363,8382,8385,8388,8396,8399],[11,12,13,23,31,39,47],"card-group",{},[14,15,19],"card",{"icon":16,"title":17,"to":18},"ri:play-line","最简Pipeline","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples#示例-1最简pipeline",[20,21,22],"p",{},"最小的可用Pipeline  — 添加、搜索明文记忆。",[14,24,28],{"icon":25,"title":26,"to":27},"ri:tree-line","多信息源的添加与检索","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples#示例-2多信息源记忆的添加与检索",[20,29,30],{},"添加文本、图片、文件、工具调用的多信息源messages到记忆，并能够检索它们。",[14,32,36],{"icon":33,"title":34,"to":35},"ri:apps-line","多Cube添加和检索","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples#示例-3多cube添加和检索",[20,37,38],{},"添加不同记忆到不同的Cube，在检索时同时召回它们。",[14,40,44],{"icon":41,"title":42,"to":43},"ri:database-2-line","仅 KVCacheMemory","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples#示例-4仅-kvcachememory",[20,45,46],{},"使用短期 KV cache加速会话，实现快速上下文注入。",[14,48,52],{"icon":49,"title":50,"to":51},"ri:calendar-check-line","记忆调度","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples#示例-5多忆调度",[20,53,54],{},"为多用户、多会话智能体运行动态记忆调用。",[56,57,59],"h2",{"id":58},"示例-1最简pipeline","示例 1：最简Pipeline",[61,62,64],"h3",{"id":63},"何时使用","何时使用：",[66,67,68,72],"ul",{},[69,70,71],"li",{},"你想要最小的入门可用示例。",[69,73,74],{},"你只需要将简单的明文记忆存储到数据库中，并能够检索它们。",[61,76,78],{"id":77},"关键点","关键点：",[66,80,81],{},[69,82,83],{},"支持基础的个人用户记忆添加、搜索。",[61,85,86],{"id":86},"完整示例代码",[88,89,94],"pre",{"className":90,"code":91,"language":92,"meta":93,"style":93},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import json\nfrom memos.api.routers.server_router import add_memories, search_memories\nfrom memos.api.product_models import APIADDRequest, APISearchRequest\n\nuser_id = \"test_user_1\"\nadd_req = APIADDRequest(\n    user_id=user_id,\n    writable_cube_ids=[\"cube_test_user_1\"],\n    messages = [\n      {\"role\": \"user\", \"content\": \"I’ve planned to travel to Guangzhou during the summer vacation. What chain hotels are available for accommodation?\"},\n      {\"role\": \"assistant\", \"content\": \"You can consider [7 Days Inn, Ji Hotel, Hilton], etc.\"},\n      {\"role\": \"user\", \"content\": \"I’ll choose 7 Days Inn.\"},\n      {\"role\": \"assistant\", \"content\": \"Okay, feel free to ask me if you have any other questions.\"}\n    ],\n    async_mode=\"sync\",\n    mode=\"fine\",\n)\n\nadd_rsp = add_memories(add_req)\nprint(\"add_memories rsp: \\n\\n\", add_rsp)\n\nsearch_req = APISearchRequest(\n    user_id=user_id,\n    readable_cube_ids=[\"cube_test_user_1\"],\n    query=\"Please recommend a hotel that I haven’t stayed at before.\",\n    include_preference=True,\n)\n\nsearch_rsp = search_memories(search_req).data\nprint(\"\\n\\nsearch_rsp: \\n\\n\", json.dumps(search_rsp, indent=2, ensure_ascii=False))\n","python","",[95,96,97,110,147,173,180,199,213,228,248,260,304,343,381,420,426,443,460,466,471,489,514,519,532,543,559,576,585,590,595,618],"code",{"__ignoreMap":93},[98,99,102,106],"span",{"class":100,"line":101},"line",1,[98,103,105],{"class":104},"s7zQu","import",[98,107,109],{"class":108},"sTEyZ"," json\n",[98,111,113,116,119,123,126,128,131,133,136,138,141,144],{"class":100,"line":112},2,[98,114,115],{"class":104},"from",[98,117,118],{"class":108}," memos",[98,120,122],{"class":121},"sMK4o",".",[98,124,125],{"class":108},"api",[98,127,122],{"class":121},[98,129,130],{"class":108},"routers",[98,132,122],{"class":121},[98,134,135],{"class":108},"server_router ",[98,137,105],{"class":104},[98,139,140],{"class":108}," add_memories",[98,142,143],{"class":121},",",[98,145,146],{"class":108}," search_memories\n",[98,148,150,152,154,156,158,160,163,165,168,170],{"class":100,"line":149},3,[98,151,115],{"class":104},[98,153,118],{"class":108},[98,155,122],{"class":121},[98,157,125],{"class":108},[98,159,122],{"class":121},[98,161,162],{"class":108},"product_models ",[98,164,105],{"class":104},[98,166,167],{"class":108}," APIADDRequest",[98,169,143],{"class":121},[98,171,172],{"class":108}," APISearchRequest\n",[98,174,176],{"class":100,"line":175},4,[98,177,179],{"emptyLinePlaceholder":178},true,"\n",[98,181,183,186,189,192,196],{"class":100,"line":182},5,[98,184,185],{"class":108},"user_id ",[98,187,188],{"class":121},"=",[98,190,191],{"class":121}," \"",[98,193,195],{"class":194},"sfazB","test_user_1",[98,197,198],{"class":121},"\"\n",[98,200,202,205,207,210],{"class":100,"line":201},6,[98,203,204],{"class":108},"add_req ",[98,206,188],{"class":121},[98,208,167],{"class":209},"s2Zo4",[98,211,212],{"class":121},"(\n",[98,214,216,220,222,225],{"class":100,"line":215},7,[98,217,219],{"class":218},"sHdIc","    user_id",[98,221,188],{"class":121},[98,223,224],{"class":209},"user_id",[98,226,227],{"class":121},",\n",[98,229,231,234,237,240,243,245],{"class":100,"line":230},8,[98,232,233],{"class":218},"    writable_cube_ids",[98,235,236],{"class":121},"=[",[98,238,239],{"class":121},"\"",[98,241,242],{"class":194},"cube_test_user_1",[98,244,239],{"class":121},[98,246,247],{"class":121},"],\n",[98,249,251,254,257],{"class":100,"line":250},9,[98,252,253],{"class":218},"    messages",[98,255,256],{"class":121}," =",[98,258,259],{"class":121}," [\n",[98,261,263,266,268,271,273,276,278,281,283,285,287,290,292,294,296,299,301],{"class":100,"line":262},10,[98,264,265],{"class":121},"      {",[98,267,239],{"class":121},[98,269,270],{"class":194},"role",[98,272,239],{"class":121},[98,274,275],{"class":121},":",[98,277,191],{"class":121},[98,279,280],{"class":194},"user",[98,282,239],{"class":121},[98,284,143],{"class":121},[98,286,191],{"class":121},[98,288,289],{"class":194},"content",[98,291,239],{"class":121},[98,293,275],{"class":121},[98,295,191],{"class":121},[98,297,298],{"class":194},"I’ve planned to travel to Guangzhou during the summer vacation. What chain hotels are available for accommodation?",[98,300,239],{"class":121},[98,302,303],{"class":121},"},\n",[98,305,307,309,311,313,315,317,319,322,324,326,328,330,332,334,336,339,341],{"class":100,"line":306},11,[98,308,265],{"class":121},[98,310,239],{"class":121},[98,312,270],{"class":194},[98,314,239],{"class":121},[98,316,275],{"class":121},[98,318,191],{"class":121},[98,320,321],{"class":194},"assistant",[98,323,239],{"class":121},[98,325,143],{"class":121},[98,327,191],{"class":121},[98,329,289],{"class":194},[98,331,239],{"class":121},[98,333,275],{"class":121},[98,335,191],{"class":121},[98,337,338],{"class":194},"You can consider [7 Days Inn, Ji Hotel, Hilton], etc.",[98,340,239],{"class":121},[98,342,303],{"class":121},[98,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,377,379],{"class":100,"line":345},12,[98,347,265],{"class":121},[98,349,239],{"class":121},[98,351,270],{"class":194},[98,353,239],{"class":121},[98,355,275],{"class":121},[98,357,191],{"class":121},[98,359,280],{"class":194},[98,361,239],{"class":121},[98,363,143],{"class":121},[98,365,191],{"class":121},[98,367,289],{"class":194},[98,369,239],{"class":121},[98,371,275],{"class":121},[98,373,191],{"class":121},[98,375,376],{"class":194},"I’ll choose 7 Days Inn.",[98,378,239],{"class":121},[98,380,303],{"class":121},[98,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,415,417],{"class":100,"line":383},13,[98,385,265],{"class":121},[98,387,239],{"class":121},[98,389,270],{"class":194},[98,391,239],{"class":121},[98,393,275],{"class":121},[98,395,191],{"class":121},[98,397,321],{"class":194},[98,399,239],{"class":121},[98,401,143],{"class":121},[98,403,191],{"class":121},[98,405,289],{"class":194},[98,407,239],{"class":121},[98,409,275],{"class":121},[98,411,191],{"class":121},[98,413,414],{"class":194},"Okay, feel free to ask me if you have any other questions.",[98,416,239],{"class":121},[98,418,419],{"class":121},"}\n",[98,421,423],{"class":100,"line":422},14,[98,424,425],{"class":121},"    ],\n",[98,427,429,432,434,436,439,441],{"class":100,"line":428},15,[98,430,431],{"class":218},"    async_mode",[98,433,188],{"class":121},[98,435,239],{"class":121},[98,437,438],{"class":194},"sync",[98,440,239],{"class":121},[98,442,227],{"class":121},[98,444,446,449,451,453,456,458],{"class":100,"line":445},16,[98,447,448],{"class":218},"    mode",[98,450,188],{"class":121},[98,452,239],{"class":121},[98,454,455],{"class":194},"fine",[98,457,239],{"class":121},[98,459,227],{"class":121},[98,461,463],{"class":100,"line":462},17,[98,464,465],{"class":121},")\n",[98,467,469],{"class":100,"line":468},18,[98,470,179],{"emptyLinePlaceholder":178},[98,472,474,477,479,481,484,487],{"class":100,"line":473},19,[98,475,476],{"class":108},"add_rsp ",[98,478,188],{"class":121},[98,480,140],{"class":209},[98,482,483],{"class":121},"(",[98,485,486],{"class":209},"add_req",[98,488,465],{"class":121},[98,490,492,495,497,499,502,505,507,509,512],{"class":100,"line":491},20,[98,493,494],{"class":209},"print",[98,496,483],{"class":121},[98,498,239],{"class":121},[98,500,501],{"class":194},"add_memories rsp: ",[98,503,504],{"class":108},"\\n\\n",[98,506,239],{"class":121},[98,508,143],{"class":121},[98,510,511],{"class":209}," add_rsp",[98,513,465],{"class":121},[98,515,517],{"class":100,"line":516},21,[98,518,179],{"emptyLinePlaceholder":178},[98,520,522,525,527,530],{"class":100,"line":521},22,[98,523,524],{"class":108},"search_req ",[98,526,188],{"class":121},[98,528,529],{"class":209}," APISearchRequest",[98,531,212],{"class":121},[98,533,535,537,539,541],{"class":100,"line":534},23,[98,536,219],{"class":218},[98,538,188],{"class":121},[98,540,224],{"class":209},[98,542,227],{"class":121},[98,544,546,549,551,553,555,557],{"class":100,"line":545},24,[98,547,548],{"class":218},"    readable_cube_ids",[98,550,236],{"class":121},[98,552,239],{"class":121},[98,554,242],{"class":194},[98,556,239],{"class":121},[98,558,247],{"class":121},[98,560,562,565,567,569,572,574],{"class":100,"line":561},25,[98,563,564],{"class":218},"    query",[98,566,188],{"class":121},[98,568,239],{"class":121},[98,570,571],{"class":194},"Please recommend a hotel that I haven’t stayed at before.",[98,573,239],{"class":121},[98,575,227],{"class":121},[98,577,579,582],{"class":100,"line":578},26,[98,580,581],{"class":218},"    include_preference",[98,583,584],{"class":121},"=True,\n",[98,586,588],{"class":100,"line":587},27,[98,589,465],{"class":121},[98,591,593],{"class":100,"line":592},28,[98,594,179],{"emptyLinePlaceholder":178},[98,596,598,601,603,606,608,611,614],{"class":100,"line":597},29,[98,599,600],{"class":108},"search_rsp ",[98,602,188],{"class":121},[98,604,605],{"class":209}," search_memories",[98,607,483],{"class":121},[98,609,610],{"class":209},"search_req",[98,612,613],{"class":121},").",[98,615,617],{"class":616},"swJcz","data\n",[98,619,621,623,625,627,629,632,634,636,638,641,643,646,648,651,653,656,658,662,664,667],{"class":100,"line":620},30,[98,622,494],{"class":209},[98,624,483],{"class":121},[98,626,239],{"class":121},[98,628,504],{"class":108},[98,630,631],{"class":194},"search_rsp: ",[98,633,504],{"class":108},[98,635,239],{"class":121},[98,637,143],{"class":121},[98,639,640],{"class":209}," json",[98,642,122],{"class":121},[98,644,645],{"class":209},"dumps",[98,647,483],{"class":121},[98,649,650],{"class":209},"search_rsp",[98,652,143],{"class":121},[98,654,655],{"class":218}," indent",[98,657,188],{"class":121},[98,659,661],{"class":660},"sbssI","2",[98,663,143],{"class":121},[98,665,666],{"class":218}," ensure_ascii",[98,668,669],{"class":121},"=False))\n",[56,671,673],{"id":672},"示例-2多信息源记忆的添加与检索","示例 2：多信息源记忆的添加与检索",[61,675,64],{"id":676},"何时使用-1",[66,678,679,682],{},[69,680,681],{},"除单纯的文本对话外，你需要将文件、图片内容或工具调用历史信息加入记忆",[69,683,684],{},"同时你想要检索这些多源信息的记忆",[61,686,78],{"id":687},"关键点-1",[66,689,690,693,696,699],{},[69,691,692],{},"多种信息来源的记忆添加",[69,694,695],{},"需要有可下载的文件、图片url",[69,697,698],{},"添加的信息需要严格符合OpenAI Messages格式",[69,700,701],{},"system prompt中的工具Schema需要包装在\u003Ctool_chema> \u003C\u002Ftool_schema>中",[61,703,86],{"id":704},"完整示例代码-1",[20,706,707],{},"添加文本+文件到记忆中",[88,709,711],{"className":90,"code":710,"language":92,"meta":93,"style":93},"import json\nfrom memos.api.routers.server_router import add_memories, search_memories\nfrom memos.api.product_models import APIADDRequest, APISearchRequest\n\nuser_id = \"test_user_2\"\nadd_req = APIADDRequest(\n    user_id=user_id,\n    writable_cube_ids=[\"cube_test_user_2\"],\n    messages = [\n        {\n            \"role\": \"user\",\n            \"content\": [\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Please read this file, summarize the key points, and provide a final conclusion.\"\n                },\n                {\n                    \"type\": \"file\",\n                    \"file\": {\n                    \"file_id\": \"file_123\",\n                    \"filename\": \"report.md\",\n                    \"file_data\": \"@http:\u002F\u002F139.196.232.20:9090\u002Fgraph-test\u002Falgorithm\u002F2025_11_13\u002F1763043889_1763043782_PM1%E8%BD%A6%E9%97%B4PMT%E9%9D%B4%E5%8E%8B%E8%BE%B9%E5%8E%8B%E5%8E%8B%E5%8A%9B%E6%97%A0%E6%B3%95%E5%BB%BA%E7%AB%8B%E6%95%85%E9%9A%9C%E6%8A%A5%E5%91%8A20240720.md\"\n                    }\n                },\n            ]\n        },\n        {\n            \"role\": \"assistant\",\n            \"content\": [\n                {\n                    \"type\": \"text\",\n                    \"text\": \"Final Summary: During the PMT boot-pressure startup test of the PM1 workshop on July 20, 2024, the drive could not run because the edge pressures on both sides failed to reach the 2.5-bar interlock requirement. After troubleshooting, the PLC output signals, hydraulic pipelines, and valves were all found to be normal. The root cause was ultimately identified as poor contact at the negative terminal of the proportional valve’s DC 24V power supply inside the PLC cabinet, caused by a short-jumpered terminal block. After re-connecting the negative incoming lines in parallel, the equipment returned to normal operation. It is recommended to replace terminal blocks in batches, inspect instruments with uncertain service life, and optimize the troubleshooting process by tracing common-mode issues from shared buses and power supply sources.\"\n                }\n            ]\n        }\n    ],\n    async_mode=\"sync\",\n    mode=\"fine\",\n)\n\nadd_rsp = add_memories(add_req)\nprint(\"add_memories rsp: \\n\\n\", add_rsp)\n\nsearch_req = APISearchRequest(\n    user_id=user_id,\n    readable_cube_ids=[\"cube_test_user_2\"],\n    query=\"Workshop PMT boot pressure startup test\",\n    include_preference=False,\n)\nsearch_rsp = search_memories(search_req).data\nprint(\"\\n\\nsearch_rsp: \\n\\n\", json.dumps(search_rsp, indent=2, ensure_ascii=False))\n",[95,712,713,719,745,767,771,784,794,804,819,827,832,851,863,868,889,906,911,915,934,947,967,987,1119,1124,1128,1133,1138,1142,1160,1172,1176,1195,1213,1219,1224,1230,1235,1250,1265,1270,1275,1290,1311,1316,1327,1338,1353,1369,1377,1382,1399],{"__ignoreMap":93},[98,714,715,717],{"class":100,"line":101},[98,716,105],{"class":104},[98,718,109],{"class":108},[98,720,721,723,725,727,729,731,733,735,737,739,741,743],{"class":100,"line":112},[98,722,115],{"class":104},[98,724,118],{"class":108},[98,726,122],{"class":121},[98,728,125],{"class":108},[98,730,122],{"class":121},[98,732,130],{"class":108},[98,734,122],{"class":121},[98,736,135],{"class":108},[98,738,105],{"class":104},[98,740,140],{"class":108},[98,742,143],{"class":121},[98,744,146],{"class":108},[98,746,747,749,751,753,755,757,759,761,763,765],{"class":100,"line":149},[98,748,115],{"class":104},[98,750,118],{"class":108},[98,752,122],{"class":121},[98,754,125],{"class":108},[98,756,122],{"class":121},[98,758,162],{"class":108},[98,760,105],{"class":104},[98,762,167],{"class":108},[98,764,143],{"class":121},[98,766,172],{"class":108},[98,768,769],{"class":100,"line":175},[98,770,179],{"emptyLinePlaceholder":178},[98,772,773,775,777,779,782],{"class":100,"line":182},[98,774,185],{"class":108},[98,776,188],{"class":121},[98,778,191],{"class":121},[98,780,781],{"class":194},"test_user_2",[98,783,198],{"class":121},[98,785,786,788,790,792],{"class":100,"line":201},[98,787,204],{"class":108},[98,789,188],{"class":121},[98,791,167],{"class":209},[98,793,212],{"class":121},[98,795,796,798,800,802],{"class":100,"line":215},[98,797,219],{"class":218},[98,799,188],{"class":121},[98,801,224],{"class":209},[98,803,227],{"class":121},[98,805,806,808,810,812,815,817],{"class":100,"line":230},[98,807,233],{"class":218},[98,809,236],{"class":121},[98,811,239],{"class":121},[98,813,814],{"class":194},"cube_test_user_2",[98,816,239],{"class":121},[98,818,247],{"class":121},[98,820,821,823,825],{"class":100,"line":250},[98,822,253],{"class":218},[98,824,256],{"class":121},[98,826,259],{"class":121},[98,828,829],{"class":100,"line":262},[98,830,831],{"class":121},"        {\n",[98,833,834,837,839,841,843,845,847,849],{"class":100,"line":306},[98,835,836],{"class":121},"            \"",[98,838,270],{"class":194},[98,840,239],{"class":121},[98,842,275],{"class":121},[98,844,191],{"class":121},[98,846,280],{"class":194},[98,848,239],{"class":121},[98,850,227],{"class":121},[98,852,853,855,857,859,861],{"class":100,"line":345},[98,854,836],{"class":121},[98,856,289],{"class":194},[98,858,239],{"class":121},[98,860,275],{"class":121},[98,862,259],{"class":121},[98,864,865],{"class":100,"line":383},[98,866,867],{"class":121},"                {\n",[98,869,870,873,876,878,880,882,885,887],{"class":100,"line":422},[98,871,872],{"class":121},"                    \"",[98,874,875],{"class":194},"type",[98,877,239],{"class":121},[98,879,275],{"class":121},[98,881,191],{"class":121},[98,883,884],{"class":194},"text",[98,886,239],{"class":121},[98,888,227],{"class":121},[98,890,891,893,895,897,899,901,904],{"class":100,"line":428},[98,892,872],{"class":121},[98,894,884],{"class":194},[98,896,239],{"class":121},[98,898,275],{"class":121},[98,900,191],{"class":121},[98,902,903],{"class":194},"Please read this file, summarize the key points, and provide a final conclusion.",[98,905,198],{"class":121},[98,907,908],{"class":100,"line":445},[98,909,910],{"class":121},"                },\n",[98,912,913],{"class":100,"line":462},[98,914,867],{"class":121},[98,916,917,919,921,923,925,927,930,932],{"class":100,"line":468},[98,918,872],{"class":121},[98,920,875],{"class":194},[98,922,239],{"class":121},[98,924,275],{"class":121},[98,926,191],{"class":121},[98,928,929],{"class":194},"file",[98,931,239],{"class":121},[98,933,227],{"class":121},[98,935,936,938,940,942,944],{"class":100,"line":473},[98,937,872],{"class":121},[98,939,929],{"class":194},[98,941,239],{"class":121},[98,943,275],{"class":121},[98,945,946],{"class":121}," {\n",[98,948,949,951,954,956,958,960,963,965],{"class":100,"line":491},[98,950,872],{"class":121},[98,952,953],{"class":194},"file_id",[98,955,239],{"class":121},[98,957,275],{"class":121},[98,959,191],{"class":121},[98,961,962],{"class":194},"file_123",[98,964,239],{"class":121},[98,966,227],{"class":121},[98,968,969,971,974,976,978,980,983,985],{"class":100,"line":516},[98,970,872],{"class":121},[98,972,973],{"class":194},"filename",[98,975,239],{"class":121},[98,977,275],{"class":121},[98,979,191],{"class":121},[98,981,982],{"class":194},"report.md",[98,984,239],{"class":121},[98,986,227],{"class":121},[98,988,989,991,994,996,998,1000,1003,1006,1009,1011,1014,1017,1020,1022,1025,1027,1030,1033,1036,1038,1041,1043,1045,1047,1049,1051,1053,1055,1057,1059,1062,1064,1067,1069,1072,1074,1077,1080,1083,1085,1088,1090,1092,1094,1097,1099,1102,1104,1107,1109,1111,1114,1117],{"class":100,"line":521},[98,990,872],{"class":121},[98,992,993],{"class":194},"file_data",[98,995,239],{"class":121},[98,997,275],{"class":121},[98,999,191],{"class":121},[98,1001,1002],{"class":194},"@http:\u002F\u002F139.196.232.20:9090\u002Fgraph-test\u002Falgorithm\u002F2025_11_13\u002F1763043889_1763043782_PM1",[98,1004,1005],{"class":660},"%E",[98,1007,1008],{"class":194},"8%BD%A6",[98,1010,1005],{"class":660},[98,1012,1013],{"class":194},"9",[98,1015,1016],{"class":660},"%97%",[98,1018,1019],{"class":194},"B4PMT",[98,1021,1005],{"class":660},[98,1023,1024],{"class":194},"9%9D%B4",[98,1026,1005],{"class":660},[98,1028,1029],{"class":194},"5",[98,1031,1032],{"class":660},"%8E",[98,1034,1035],{"class":194},"%8B",[98,1037,1005],{"class":660},[98,1039,1040],{"class":194},"8%BE%B9",[98,1042,1005],{"class":660},[98,1044,1029],{"class":194},[98,1046,1032],{"class":660},[98,1048,1035],{"class":194},[98,1050,1005],{"class":660},[98,1052,1029],{"class":194},[98,1054,1032],{"class":660},[98,1056,1035],{"class":194},[98,1058,1005],{"class":660},[98,1060,1061],{"class":194},"5%8A%9B",[98,1063,1005],{"class":660},[98,1065,1066],{"class":194},"6",[98,1068,1016],{"class":660},[98,1070,1071],{"class":194},"A0",[98,1073,1005],{"class":660},[98,1075,1076],{"class":194},"6%B3",[98,1078,1079],{"class":660},"%95%",[98,1081,1082],{"class":194},"E5%BB%BA",[98,1084,1005],{"class":660},[98,1086,1087],{"class":194},"7%AB%8B",[98,1089,1005],{"class":660},[98,1091,1066],{"class":194},[98,1093,1079],{"class":660},[98,1095,1096],{"class":194},"85",[98,1098,1005],{"class":660},[98,1100,1101],{"class":194},"9%9A%9C",[98,1103,1005],{"class":660},[98,1105,1106],{"class":194},"6%8A%A5",[98,1108,1005],{"class":660},[98,1110,1029],{"class":194},[98,1112,1113],{"class":660},"%91%",[98,1115,1116],{"class":194},"8A20240720.md",[98,1118,198],{"class":121},[98,1120,1121],{"class":100,"line":534},[98,1122,1123],{"class":121},"                    }\n",[98,1125,1126],{"class":100,"line":545},[98,1127,910],{"class":121},[98,1129,1130],{"class":100,"line":561},[98,1131,1132],{"class":121},"            ]\n",[98,1134,1135],{"class":100,"line":578},[98,1136,1137],{"class":121},"        },\n",[98,1139,1140],{"class":100,"line":587},[98,1141,831],{"class":121},[98,1143,1144,1146,1148,1150,1152,1154,1156,1158],{"class":100,"line":592},[98,1145,836],{"class":121},[98,1147,270],{"class":194},[98,1149,239],{"class":121},[98,1151,275],{"class":121},[98,1153,191],{"class":121},[98,1155,321],{"class":194},[98,1157,239],{"class":121},[98,1159,227],{"class":121},[98,1161,1162,1164,1166,1168,1170],{"class":100,"line":597},[98,1163,836],{"class":121},[98,1165,289],{"class":194},[98,1167,239],{"class":121},[98,1169,275],{"class":121},[98,1171,259],{"class":121},[98,1173,1174],{"class":100,"line":620},[98,1175,867],{"class":121},[98,1177,1179,1181,1183,1185,1187,1189,1191,1193],{"class":100,"line":1178},31,[98,1180,872],{"class":121},[98,1182,875],{"class":194},[98,1184,239],{"class":121},[98,1186,275],{"class":121},[98,1188,191],{"class":121},[98,1190,884],{"class":194},[98,1192,239],{"class":121},[98,1194,227],{"class":121},[98,1196,1198,1200,1202,1204,1206,1208,1211],{"class":100,"line":1197},32,[98,1199,872],{"class":121},[98,1201,884],{"class":194},[98,1203,239],{"class":121},[98,1205,275],{"class":121},[98,1207,191],{"class":121},[98,1209,1210],{"class":194},"Final Summary: During the PMT boot-pressure startup test of the PM1 workshop on July 20, 2024, the drive could not run because the edge pressures on both sides failed to reach the 2.5-bar interlock requirement. After troubleshooting, the PLC output signals, hydraulic pipelines, and valves were all found to be normal. The root cause was ultimately identified as poor contact at the negative terminal of the proportional valve’s DC 24V power supply inside the PLC cabinet, caused by a short-jumpered terminal block. After re-connecting the negative incoming lines in parallel, the equipment returned to normal operation. It is recommended to replace terminal blocks in batches, inspect instruments with uncertain service life, and optimize the troubleshooting process by tracing common-mode issues from shared buses and power supply sources.",[98,1212,198],{"class":121},[98,1214,1216],{"class":100,"line":1215},33,[98,1217,1218],{"class":121},"                }\n",[98,1220,1222],{"class":100,"line":1221},34,[98,1223,1132],{"class":121},[98,1225,1227],{"class":100,"line":1226},35,[98,1228,1229],{"class":121},"        }\n",[98,1231,1233],{"class":100,"line":1232},36,[98,1234,425],{"class":121},[98,1236,1238,1240,1242,1244,1246,1248],{"class":100,"line":1237},37,[98,1239,431],{"class":218},[98,1241,188],{"class":121},[98,1243,239],{"class":121},[98,1245,438],{"class":194},[98,1247,239],{"class":121},[98,1249,227],{"class":121},[98,1251,1253,1255,1257,1259,1261,1263],{"class":100,"line":1252},38,[98,1254,448],{"class":218},[98,1256,188],{"class":121},[98,1258,239],{"class":121},[98,1260,455],{"class":194},[98,1262,239],{"class":121},[98,1264,227],{"class":121},[98,1266,1268],{"class":100,"line":1267},39,[98,1269,465],{"class":121},[98,1271,1273],{"class":100,"line":1272},40,[98,1274,179],{"emptyLinePlaceholder":178},[98,1276,1278,1280,1282,1284,1286,1288],{"class":100,"line":1277},41,[98,1279,476],{"class":108},[98,1281,188],{"class":121},[98,1283,140],{"class":209},[98,1285,483],{"class":121},[98,1287,486],{"class":209},[98,1289,465],{"class":121},[98,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309],{"class":100,"line":1292},42,[98,1294,494],{"class":209},[98,1296,483],{"class":121},[98,1298,239],{"class":121},[98,1300,501],{"class":194},[98,1302,504],{"class":108},[98,1304,239],{"class":121},[98,1306,143],{"class":121},[98,1308,511],{"class":209},[98,1310,465],{"class":121},[98,1312,1314],{"class":100,"line":1313},43,[98,1315,179],{"emptyLinePlaceholder":178},[98,1317,1319,1321,1323,1325],{"class":100,"line":1318},44,[98,1320,524],{"class":108},[98,1322,188],{"class":121},[98,1324,529],{"class":209},[98,1326,212],{"class":121},[98,1328,1330,1332,1334,1336],{"class":100,"line":1329},45,[98,1331,219],{"class":218},[98,1333,188],{"class":121},[98,1335,224],{"class":209},[98,1337,227],{"class":121},[98,1339,1341,1343,1345,1347,1349,1351],{"class":100,"line":1340},46,[98,1342,548],{"class":218},[98,1344,236],{"class":121},[98,1346,239],{"class":121},[98,1348,814],{"class":194},[98,1350,239],{"class":121},[98,1352,247],{"class":121},[98,1354,1356,1358,1360,1362,1365,1367],{"class":100,"line":1355},47,[98,1357,564],{"class":218},[98,1359,188],{"class":121},[98,1361,239],{"class":121},[98,1363,1364],{"class":194},"Workshop PMT boot pressure startup test",[98,1366,239],{"class":121},[98,1368,227],{"class":121},[98,1370,1372,1374],{"class":100,"line":1371},48,[98,1373,581],{"class":218},[98,1375,1376],{"class":121},"=False,\n",[98,1378,1380],{"class":100,"line":1379},49,[98,1381,465],{"class":121},[98,1383,1385,1387,1389,1391,1393,1395,1397],{"class":100,"line":1384},50,[98,1386,600],{"class":108},[98,1388,188],{"class":121},[98,1390,605],{"class":209},[98,1392,483],{"class":121},[98,1394,610],{"class":209},[98,1396,613],{"class":121},[98,1398,617],{"class":616},[98,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440],{"class":100,"line":1401},51,[98,1403,494],{"class":209},[98,1405,483],{"class":121},[98,1407,239],{"class":121},[98,1409,504],{"class":108},[98,1411,631],{"class":194},[98,1413,504],{"class":108},[98,1415,239],{"class":121},[98,1417,143],{"class":121},[98,1419,640],{"class":209},[98,1421,122],{"class":121},[98,1423,645],{"class":209},[98,1425,483],{"class":121},[98,1427,650],{"class":209},[98,1429,143],{"class":121},[98,1431,655],{"class":218},[98,1433,188],{"class":121},[98,1435,661],{"class":660},[98,1437,143],{"class":121},[98,1439,666],{"class":218},[98,1441,669],{"class":121},[20,1443,1444],{},"添加多种混合信息源的messages到记忆中",[88,1446,1448],{"className":90,"code":1447,"language":92,"meta":93,"style":93},"import json\nfrom memos.api.routers.server_router import add_memories, search_memories\nfrom memos.api.product_models import APIADDRequest, APISearchRequest\n\nuser_id = \"test_user_2\"\nadd_req = APIADDRequest(\n    user_id=user_id,\n    writable_cube_ids=[\"cube_test_user_2\"],\n    messages = [\n  {\n    \"role\": \"system\",\n    \"content\": [\n      {\n        \"type\": \"text\",\n        \"text\": \"You are a professional industrial fault analysis assistant. Please read the PDF, images, and instructions provided by the user and provide a professional technical summary.\\n\\n\u003Ctool_schema>\\n[\\n  {\\n    \\\"name\\\": \\\"file_reader\\\",\\n    \\\"description\\\": \\\"Used to read the content of files uploaded by the user and return the text data (in JSON string format).\\\",\\n    \\\"parameters\\\": [\\n      {\\\"name\\\": \\\"file_id\\\", \\\"type\\\": \\\"string\\\", \\\"required\\\": true, \\\"description\\\": \\\"The file ID to be read\\\"}\\n    ],\\n    \\\"returns\\\": {\\\"type\\\": \\\"text\\\", \\\"description\\\": \\\"Returns the extracted text content of the file\\\"}\\n  }\\n]\\n\u003C\u002Ftool_schema>\"\n      }\n    ]\n  },\n  {\n    \"role\": \"user\",\n    \"content\": [\n      {\n        \"type\": \"text\",\n        \"text\": \"Please read this file and image, summarize the key points, and provide a final conclusion.\"\n      },\n      {\n        \"type\": \"file\",\n        \"file\": {\n          \"file_id\": \"file_123\",\n          \"filename\": \"report.pdf\",\n          \"file_data\": \"@http:\u002F\u002F139.196.232.20:9090\u002Fgraph-test\u002Falgorithm\u002F2025_11_13\u002F1763043889_1763043782_PM1%E8%BD%A6%E9%97%B4PMT%E9%9D%B4%E5%8E%8B%E8%BE%B9%E5%8E%8B%E5%8E%8B%E5%8A%9B%E6%97%A0%E6%B3%95%E5%BB%BA%E7%AB%8B%E6%95%85%E9%9A%9C%E6%8A%A5%E5%91%8A20240720.md\"\n        }\n      },\n      {\n        \"type\": \"image_url\",\n        \"image_url\": {\n          \"url\": \"https:\u002F\u002Fplay-groud-test-1.oss-cn-shanghai.aliyuncs.com\u002F%E5%9B%BE%E7%89%871.jpeg\"\n        }\n      }\n    ]\n  },\n  {\n    \"role\": \"assistant\",\n    \"tool_calls\": [\n      {\n        \"id\": \"call_file_reader_001\",\n        \"type\": \"function\",\n        \"function\": {\n          \"name\": \"file_reader\",\n          \"arguments\": \"{\\\"file_id\\\": \\\"file_123\\\"}\"\n        }\n      }\n    ]\n  },\n  {\n    \"role\": \"tool\",\n    \"tool_call_id\": \"call_file_reader_001\",\n    \"content\": [\n      {\n        \"type\": \"text\",\n        \"text\": \"{\\\"file_id\\\":\\\"file_123\\\",\\\"extracted_text\\\":\\\"PM1 workshop PMT boot pressure startup test record… Final fault cause: poor contact at the negative terminal of the DC 24V power supply circuit due to a short-jumped terminal block.\\\"}\"\n      }\n    ]\n  },\n  {\n    \"role\": \"assistant\",\n    \"content\": [\n      {\n        \"type\": \"text\",\n        \"text\": \"Final Summary: During the PMT boot-pressure startup test of the PM1 workshop on July 20, 2024, the drive could not run because the edge pressures on both sides failed to reach the 2.5-bar interlock requirement. After troubleshooting, the PLC output signals, hydraulic pipelines, and valves were all found to be normal. The root cause was ultimately identified as poor contact at the negative terminal of the proportional valve’s DC 24V power supply inside the PLC cabinet, caused by a short-jumpered terminal block. After re-connecting the negative incoming lines in parallel, the equipment returned to normal operation. It is recommended to replace terminal blocks in batches, inspect instruments with uncertain service life, and optimize the troubleshooting process by tracing common-mode issues from shared buses and power supply sources.\"\n      }\n    ]\n  }\n],\n    async_mode=\"sync\",\n    mode=\"fine\",\n)\n\nadd_rsp = add_memories(add_req)\n\nprint(\"add_memories rsp: \\n\\n\", add_rsp)\n\n\n\nsearch_req = APISearchRequest(\n    user_id=user_id,\n    readable_cube_ids=[\"cube_test_user_2\"],\n    query=\"Workshop PMT boot pressure startup test\",\n    include_preference=False,\n)\n\nsearch_rsp = search_memories(search_req).data\nprint(\"\\n\\nsearch_rsp: \\n\\n\", json.dumps(search_rsp, indent=2, ensure_ascii=False))\n",[95,1449,1450,1456,1482,1504,1508,1520,1530,1540,1554,1562,1567,1587,1599,1604,1623,1842,1847,1852,1857,1861,1879,1891,1895,1913,1930,1935,1939,1957,1969,1988,2007,2115,2119,2123,2127,2146,2158,2192,2196,2200,2204,2208,2212,2230,2243,2247,2267,2286,2298,2316,2350,2354,2359,2364,2369,2374,2394,2414,2427,2432,2451,2502,2507,2512,2517,2522,2541,2554,2559,2578,2595,2600,2605,2611,2616,2631,2646,2651,2656,2671,2676,2697,2702,2707,2712,2723,2734,2749,2764,2771,2776,2781,2798],{"__ignoreMap":93},[98,1451,1452,1454],{"class":100,"line":101},[98,1453,105],{"class":104},[98,1455,109],{"class":108},[98,1457,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480],{"class":100,"line":112},[98,1459,115],{"class":104},[98,1461,118],{"class":108},[98,1463,122],{"class":121},[98,1465,125],{"class":108},[98,1467,122],{"class":121},[98,1469,130],{"class":108},[98,1471,122],{"class":121},[98,1473,135],{"class":108},[98,1475,105],{"class":104},[98,1477,140],{"class":108},[98,1479,143],{"class":121},[98,1481,146],{"class":108},[98,1483,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502],{"class":100,"line":149},[98,1485,115],{"class":104},[98,1487,118],{"class":108},[98,1489,122],{"class":121},[98,1491,125],{"class":108},[98,1493,122],{"class":121},[98,1495,162],{"class":108},[98,1497,105],{"class":104},[98,1499,167],{"class":108},[98,1501,143],{"class":121},[98,1503,172],{"class":108},[98,1505,1506],{"class":100,"line":175},[98,1507,179],{"emptyLinePlaceholder":178},[98,1509,1510,1512,1514,1516,1518],{"class":100,"line":182},[98,1511,185],{"class":108},[98,1513,188],{"class":121},[98,1515,191],{"class":121},[98,1517,781],{"class":194},[98,1519,198],{"class":121},[98,1521,1522,1524,1526,1528],{"class":100,"line":201},[98,1523,204],{"class":108},[98,1525,188],{"class":121},[98,1527,167],{"class":209},[98,1529,212],{"class":121},[98,1531,1532,1534,1536,1538],{"class":100,"line":215},[98,1533,219],{"class":218},[98,1535,188],{"class":121},[98,1537,224],{"class":209},[98,1539,227],{"class":121},[98,1541,1542,1544,1546,1548,1550,1552],{"class":100,"line":230},[98,1543,233],{"class":218},[98,1545,236],{"class":121},[98,1547,239],{"class":121},[98,1549,814],{"class":194},[98,1551,239],{"class":121},[98,1553,247],{"class":121},[98,1555,1556,1558,1560],{"class":100,"line":250},[98,1557,253],{"class":218},[98,1559,256],{"class":121},[98,1561,259],{"class":121},[98,1563,1564],{"class":100,"line":262},[98,1565,1566],{"class":121},"  {\n",[98,1568,1569,1572,1574,1576,1578,1580,1583,1585],{"class":100,"line":306},[98,1570,1571],{"class":121},"    \"",[98,1573,270],{"class":194},[98,1575,239],{"class":121},[98,1577,275],{"class":121},[98,1579,191],{"class":121},[98,1581,1582],{"class":194},"system",[98,1584,239],{"class":121},[98,1586,227],{"class":121},[98,1588,1589,1591,1593,1595,1597],{"class":100,"line":345},[98,1590,1571],{"class":121},[98,1592,289],{"class":194},[98,1594,239],{"class":121},[98,1596,275],{"class":121},[98,1598,259],{"class":121},[98,1600,1601],{"class":100,"line":383},[98,1602,1603],{"class":121},"      {\n",[98,1605,1606,1609,1611,1613,1615,1617,1619,1621],{"class":100,"line":422},[98,1607,1608],{"class":121},"        \"",[98,1610,875],{"class":194},[98,1612,239],{"class":121},[98,1614,275],{"class":121},[98,1616,191],{"class":121},[98,1618,884],{"class":194},[98,1620,239],{"class":121},[98,1622,227],{"class":121},[98,1624,1625,1627,1629,1631,1633,1635,1638,1640,1643,1646,1649,1651,1654,1656,1659,1662,1665,1668,1670,1673,1675,1677,1679,1681,1684,1686,1688,1690,1693,1695,1697,1699,1701,1704,1706,1709,1711,1713,1715,1717,1719,1721,1723,1725,1727,1730,1732,1734,1736,1738,1740,1743,1745,1747,1749,1752,1754,1757,1759,1761,1763,1765,1767,1770,1772,1775,1777,1780,1782,1784,1787,1789,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1821,1823,1825,1827,1830,1832,1835,1837,1840],{"class":100,"line":428},[98,1626,1608],{"class":121},[98,1628,884],{"class":194},[98,1630,239],{"class":121},[98,1632,275],{"class":121},[98,1634,191],{"class":121},[98,1636,1637],{"class":194},"You are a professional industrial fault analysis assistant. Please read the PDF, images, and instructions provided by the user and provide a professional technical summary.",[98,1639,504],{"class":108},[98,1641,1642],{"class":194},"\u003Ctool_schema>",[98,1644,1645],{"class":108},"\\n",[98,1647,1648],{"class":194},"[",[98,1650,1645],{"class":108},[98,1652,1653],{"class":194},"  {",[98,1655,1645],{"class":108},[98,1657,1658],{"class":108},"    \\\"",[98,1660,1661],{"class":194},"name",[98,1663,1664],{"class":108},"\\\"",[98,1666,1667],{"class":194},": ",[98,1669,1664],{"class":108},[98,1671,1672],{"class":194},"file_reader",[98,1674,1664],{"class":108},[98,1676,143],{"class":194},[98,1678,1645],{"class":108},[98,1680,1658],{"class":108},[98,1682,1683],{"class":194},"description",[98,1685,1664],{"class":108},[98,1687,1667],{"class":194},[98,1689,1664],{"class":108},[98,1691,1692],{"class":194},"Used to read the content of files uploaded by the user and return the text data (in JSON string format).",[98,1694,1664],{"class":108},[98,1696,143],{"class":194},[98,1698,1645],{"class":108},[98,1700,1658],{"class":108},[98,1702,1703],{"class":194},"parameters",[98,1705,1664],{"class":108},[98,1707,1708],{"class":194},": [",[98,1710,1645],{"class":108},[98,1712,265],{"class":194},[98,1714,1664],{"class":108},[98,1716,1661],{"class":194},[98,1718,1664],{"class":108},[98,1720,1667],{"class":194},[98,1722,1664],{"class":108},[98,1724,953],{"class":194},[98,1726,1664],{"class":108},[98,1728,1729],{"class":194},", ",[98,1731,1664],{"class":108},[98,1733,875],{"class":194},[98,1735,1664],{"class":108},[98,1737,1667],{"class":194},[98,1739,1664],{"class":108},[98,1741,1742],{"class":194},"string",[98,1744,1664],{"class":108},[98,1746,1729],{"class":194},[98,1748,1664],{"class":108},[98,1750,1751],{"class":194},"required",[98,1753,1664],{"class":108},[98,1755,1756],{"class":194},": true, ",[98,1758,1664],{"class":108},[98,1760,1683],{"class":194},[98,1762,1664],{"class":108},[98,1764,1667],{"class":194},[98,1766,1664],{"class":108},[98,1768,1769],{"class":194},"The file ID to be read",[98,1771,1664],{"class":108},[98,1773,1774],{"class":194},"}",[98,1776,1645],{"class":108},[98,1778,1779],{"class":194},"    ],",[98,1781,1645],{"class":108},[98,1783,1658],{"class":108},[98,1785,1786],{"class":194},"returns",[98,1788,1664],{"class":108},[98,1790,1791],{"class":194},": {",[98,1793,1664],{"class":108},[98,1795,875],{"class":194},[98,1797,1664],{"class":108},[98,1799,1667],{"class":194},[98,1801,1664],{"class":108},[98,1803,884],{"class":194},[98,1805,1664],{"class":108},[98,1807,1729],{"class":194},[98,1809,1664],{"class":108},[98,1811,1683],{"class":194},[98,1813,1664],{"class":108},[98,1815,1667],{"class":194},[98,1817,1664],{"class":108},[98,1819,1820],{"class":194},"Returns the extracted text content of the file",[98,1822,1664],{"class":108},[98,1824,1774],{"class":194},[98,1826,1645],{"class":108},[98,1828,1829],{"class":194},"  }",[98,1831,1645],{"class":108},[98,1833,1834],{"class":194},"]",[98,1836,1645],{"class":108},[98,1838,1839],{"class":194},"\u003C\u002Ftool_schema>",[98,1841,198],{"class":121},[98,1843,1844],{"class":100,"line":445},[98,1845,1846],{"class":121},"      }\n",[98,1848,1849],{"class":100,"line":462},[98,1850,1851],{"class":121},"    ]\n",[98,1853,1854],{"class":100,"line":468},[98,1855,1856],{"class":121},"  },\n",[98,1858,1859],{"class":100,"line":473},[98,1860,1566],{"class":121},[98,1862,1863,1865,1867,1869,1871,1873,1875,1877],{"class":100,"line":491},[98,1864,1571],{"class":121},[98,1866,270],{"class":194},[98,1868,239],{"class":121},[98,1870,275],{"class":121},[98,1872,191],{"class":121},[98,1874,280],{"class":194},[98,1876,239],{"class":121},[98,1878,227],{"class":121},[98,1880,1881,1883,1885,1887,1889],{"class":100,"line":516},[98,1882,1571],{"class":121},[98,1884,289],{"class":194},[98,1886,239],{"class":121},[98,1888,275],{"class":121},[98,1890,259],{"class":121},[98,1892,1893],{"class":100,"line":521},[98,1894,1603],{"class":121},[98,1896,1897,1899,1901,1903,1905,1907,1909,1911],{"class":100,"line":534},[98,1898,1608],{"class":121},[98,1900,875],{"class":194},[98,1902,239],{"class":121},[98,1904,275],{"class":121},[98,1906,191],{"class":121},[98,1908,884],{"class":194},[98,1910,239],{"class":121},[98,1912,227],{"class":121},[98,1914,1915,1917,1919,1921,1923,1925,1928],{"class":100,"line":545},[98,1916,1608],{"class":121},[98,1918,884],{"class":194},[98,1920,239],{"class":121},[98,1922,275],{"class":121},[98,1924,191],{"class":121},[98,1926,1927],{"class":194},"Please read this file and image, summarize the key points, and provide a final conclusion.",[98,1929,198],{"class":121},[98,1931,1932],{"class":100,"line":561},[98,1933,1934],{"class":121},"      },\n",[98,1936,1937],{"class":100,"line":578},[98,1938,1603],{"class":121},[98,1940,1941,1943,1945,1947,1949,1951,1953,1955],{"class":100,"line":587},[98,1942,1608],{"class":121},[98,1944,875],{"class":194},[98,1946,239],{"class":121},[98,1948,275],{"class":121},[98,1950,191],{"class":121},[98,1952,929],{"class":194},[98,1954,239],{"class":121},[98,1956,227],{"class":121},[98,1958,1959,1961,1963,1965,1967],{"class":100,"line":592},[98,1960,1608],{"class":121},[98,1962,929],{"class":194},[98,1964,239],{"class":121},[98,1966,275],{"class":121},[98,1968,946],{"class":121},[98,1970,1971,1974,1976,1978,1980,1982,1984,1986],{"class":100,"line":597},[98,1972,1973],{"class":121},"          \"",[98,1975,953],{"class":194},[98,1977,239],{"class":121},[98,1979,275],{"class":121},[98,1981,191],{"class":121},[98,1983,962],{"class":194},[98,1985,239],{"class":121},[98,1987,227],{"class":121},[98,1989,1990,1992,1994,1996,1998,2000,2003,2005],{"class":100,"line":620},[98,1991,1973],{"class":121},[98,1993,973],{"class":194},[98,1995,239],{"class":121},[98,1997,275],{"class":121},[98,1999,191],{"class":121},[98,2001,2002],{"class":194},"report.pdf",[98,2004,239],{"class":121},[98,2006,227],{"class":121},[98,2008,2009,2011,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061,2063,2065,2067,2069,2071,2073,2075,2077,2079,2081,2083,2085,2087,2089,2091,2093,2095,2097,2099,2101,2103,2105,2107,2109,2111,2113],{"class":100,"line":1178},[98,2010,1973],{"class":121},[98,2012,993],{"class":194},[98,2014,239],{"class":121},[98,2016,275],{"class":121},[98,2018,191],{"class":121},[98,2020,1002],{"class":194},[98,2022,1005],{"class":660},[98,2024,1008],{"class":194},[98,2026,1005],{"class":660},[98,2028,1013],{"class":194},[98,2030,1016],{"class":660},[98,2032,1019],{"class":194},[98,2034,1005],{"class":660},[98,2036,1024],{"class":194},[98,2038,1005],{"class":660},[98,2040,1029],{"class":194},[98,2042,1032],{"class":660},[98,2044,1035],{"class":194},[98,2046,1005],{"class":660},[98,2048,1040],{"class":194},[98,2050,1005],{"class":660},[98,2052,1029],{"class":194},[98,2054,1032],{"class":660},[98,2056,1035],{"class":194},[98,2058,1005],{"class":660},[98,2060,1029],{"class":194},[98,2062,1032],{"class":660},[98,2064,1035],{"class":194},[98,2066,1005],{"class":660},[98,2068,1061],{"class":194},[98,2070,1005],{"class":660},[98,2072,1066],{"class":194},[98,2074,1016],{"class":660},[98,2076,1071],{"class":194},[98,2078,1005],{"class":660},[98,2080,1076],{"class":194},[98,2082,1079],{"class":660},[98,2084,1082],{"class":194},[98,2086,1005],{"class":660},[98,2088,1087],{"class":194},[98,2090,1005],{"class":660},[98,2092,1066],{"class":194},[98,2094,1079],{"class":660},[98,2096,1096],{"class":194},[98,2098,1005],{"class":660},[98,2100,1101],{"class":194},[98,2102,1005],{"class":660},[98,2104,1106],{"class":194},[98,2106,1005],{"class":660},[98,2108,1029],{"class":194},[98,2110,1113],{"class":660},[98,2112,1116],{"class":194},[98,2114,198],{"class":121},[98,2116,2117],{"class":100,"line":1197},[98,2118,1229],{"class":121},[98,2120,2121],{"class":100,"line":1215},[98,2122,1934],{"class":121},[98,2124,2125],{"class":100,"line":1221},[98,2126,1603],{"class":121},[98,2128,2129,2131,2133,2135,2137,2139,2142,2144],{"class":100,"line":1226},[98,2130,1608],{"class":121},[98,2132,875],{"class":194},[98,2134,239],{"class":121},[98,2136,275],{"class":121},[98,2138,191],{"class":121},[98,2140,2141],{"class":194},"image_url",[98,2143,239],{"class":121},[98,2145,227],{"class":121},[98,2147,2148,2150,2152,2154,2156],{"class":100,"line":1232},[98,2149,1608],{"class":121},[98,2151,2141],{"class":194},[98,2153,239],{"class":121},[98,2155,275],{"class":121},[98,2157,946],{"class":121},[98,2159,2160,2162,2165,2167,2169,2171,2174,2176,2179,2181,2184,2187,2190],{"class":100,"line":1237},[98,2161,1973],{"class":121},[98,2163,2164],{"class":194},"url",[98,2166,239],{"class":121},[98,2168,275],{"class":121},[98,2170,191],{"class":121},[98,2172,2173],{"class":194},"https:\u002F\u002Fplay-groud-test-1.oss-cn-shanghai.aliyuncs.com\u002F",[98,2175,1005],{"class":660},[98,2177,2178],{"class":194},"5%9B%BE",[98,2180,1005],{"class":660},[98,2182,2183],{"class":194},"7",[98,2185,2186],{"class":660},"%89%",[98,2188,2189],{"class":194},"871.jpeg",[98,2191,198],{"class":121},[98,2193,2194],{"class":100,"line":1252},[98,2195,1229],{"class":121},[98,2197,2198],{"class":100,"line":1267},[98,2199,1846],{"class":121},[98,2201,2202],{"class":100,"line":1272},[98,2203,1851],{"class":121},[98,2205,2206],{"class":100,"line":1277},[98,2207,1856],{"class":121},[98,2209,2210],{"class":100,"line":1292},[98,2211,1566],{"class":121},[98,2213,2214,2216,2218,2220,2222,2224,2226,2228],{"class":100,"line":1313},[98,2215,1571],{"class":121},[98,2217,270],{"class":194},[98,2219,239],{"class":121},[98,2221,275],{"class":121},[98,2223,191],{"class":121},[98,2225,321],{"class":194},[98,2227,239],{"class":121},[98,2229,227],{"class":121},[98,2231,2232,2234,2237,2239,2241],{"class":100,"line":1318},[98,2233,1571],{"class":121},[98,2235,2236],{"class":194},"tool_calls",[98,2238,239],{"class":121},[98,2240,275],{"class":121},[98,2242,259],{"class":121},[98,2244,2245],{"class":100,"line":1329},[98,2246,1603],{"class":121},[98,2248,2249,2251,2254,2256,2258,2260,2263,2265],{"class":100,"line":1340},[98,2250,1608],{"class":121},[98,2252,2253],{"class":194},"id",[98,2255,239],{"class":121},[98,2257,275],{"class":121},[98,2259,191],{"class":121},[98,2261,2262],{"class":194},"call_file_reader_001",[98,2264,239],{"class":121},[98,2266,227],{"class":121},[98,2268,2269,2271,2273,2275,2277,2279,2282,2284],{"class":100,"line":1355},[98,2270,1608],{"class":121},[98,2272,875],{"class":194},[98,2274,239],{"class":121},[98,2276,275],{"class":121},[98,2278,191],{"class":121},[98,2280,2281],{"class":194},"function",[98,2283,239],{"class":121},[98,2285,227],{"class":121},[98,2287,2288,2290,2292,2294,2296],{"class":100,"line":1371},[98,2289,1608],{"class":121},[98,2291,2281],{"class":194},[98,2293,239],{"class":121},[98,2295,275],{"class":121},[98,2297,946],{"class":121},[98,2299,2300,2302,2304,2306,2308,2310,2312,2314],{"class":100,"line":1379},[98,2301,1973],{"class":121},[98,2303,1661],{"class":194},[98,2305,239],{"class":121},[98,2307,275],{"class":121},[98,2309,191],{"class":121},[98,2311,1672],{"class":194},[98,2313,239],{"class":121},[98,2315,227],{"class":121},[98,2317,2318,2320,2323,2325,2327,2329,2332,2334,2336,2338,2340,2342,2344,2346,2348],{"class":100,"line":1384},[98,2319,1973],{"class":121},[98,2321,2322],{"class":194},"arguments",[98,2324,239],{"class":121},[98,2326,275],{"class":121},[98,2328,191],{"class":121},[98,2330,2331],{"class":194},"{",[98,2333,1664],{"class":108},[98,2335,953],{"class":194},[98,2337,1664],{"class":108},[98,2339,1667],{"class":194},[98,2341,1664],{"class":108},[98,2343,962],{"class":194},[98,2345,1664],{"class":108},[98,2347,1774],{"class":194},[98,2349,198],{"class":121},[98,2351,2352],{"class":100,"line":1401},[98,2353,1229],{"class":121},[98,2355,2357],{"class":100,"line":2356},52,[98,2358,1846],{"class":121},[98,2360,2362],{"class":100,"line":2361},53,[98,2363,1851],{"class":121},[98,2365,2367],{"class":100,"line":2366},54,[98,2368,1856],{"class":121},[98,2370,2372],{"class":100,"line":2371},55,[98,2373,1566],{"class":121},[98,2375,2377,2379,2381,2383,2385,2387,2390,2392],{"class":100,"line":2376},56,[98,2378,1571],{"class":121},[98,2380,270],{"class":194},[98,2382,239],{"class":121},[98,2384,275],{"class":121},[98,2386,191],{"class":121},[98,2388,2389],{"class":194},"tool",[98,2391,239],{"class":121},[98,2393,227],{"class":121},[98,2395,2397,2399,2402,2404,2406,2408,2410,2412],{"class":100,"line":2396},57,[98,2398,1571],{"class":121},[98,2400,2401],{"class":194},"tool_call_id",[98,2403,239],{"class":121},[98,2405,275],{"class":121},[98,2407,191],{"class":121},[98,2409,2262],{"class":194},[98,2411,239],{"class":121},[98,2413,227],{"class":121},[98,2415,2417,2419,2421,2423,2425],{"class":100,"line":2416},58,[98,2418,1571],{"class":121},[98,2420,289],{"class":194},[98,2422,239],{"class":121},[98,2424,275],{"class":121},[98,2426,259],{"class":121},[98,2428,2430],{"class":100,"line":2429},59,[98,2431,1603],{"class":121},[98,2433,2435,2437,2439,2441,2443,2445,2447,2449],{"class":100,"line":2434},60,[98,2436,1608],{"class":121},[98,2438,875],{"class":194},[98,2440,239],{"class":121},[98,2442,275],{"class":121},[98,2444,191],{"class":121},[98,2446,884],{"class":194},[98,2448,239],{"class":121},[98,2450,227],{"class":121},[98,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2487,2489,2491,2493,2496,2498,2500],{"class":100,"line":2453},61,[98,2455,1608],{"class":121},[98,2457,884],{"class":194},[98,2459,239],{"class":121},[98,2461,275],{"class":121},[98,2463,191],{"class":121},[98,2465,2331],{"class":194},[98,2467,1664],{"class":108},[98,2469,953],{"class":194},[98,2471,1664],{"class":108},[98,2473,275],{"class":194},[98,2475,1664],{"class":108},[98,2477,962],{"class":194},[98,2479,1664],{"class":108},[98,2481,143],{"class":194},[98,2483,1664],{"class":108},[98,2485,2486],{"class":194},"extracted_text",[98,2488,1664],{"class":108},[98,2490,275],{"class":194},[98,2492,1664],{"class":108},[98,2494,2495],{"class":194},"PM1 workshop PMT boot pressure startup test record… Final fault cause: poor contact at the negative terminal of the DC 24V power supply circuit due to a short-jumped terminal block.",[98,2497,1664],{"class":108},[98,2499,1774],{"class":194},[98,2501,198],{"class":121},[98,2503,2505],{"class":100,"line":2504},62,[98,2506,1846],{"class":121},[98,2508,2510],{"class":100,"line":2509},63,[98,2511,1851],{"class":121},[98,2513,2515],{"class":100,"line":2514},64,[98,2516,1856],{"class":121},[98,2518,2520],{"class":100,"line":2519},65,[98,2521,1566],{"class":121},[98,2523,2525,2527,2529,2531,2533,2535,2537,2539],{"class":100,"line":2524},66,[98,2526,1571],{"class":121},[98,2528,270],{"class":194},[98,2530,239],{"class":121},[98,2532,275],{"class":121},[98,2534,191],{"class":121},[98,2536,321],{"class":194},[98,2538,239],{"class":121},[98,2540,227],{"class":121},[98,2542,2544,2546,2548,2550,2552],{"class":100,"line":2543},67,[98,2545,1571],{"class":121},[98,2547,289],{"class":194},[98,2549,239],{"class":121},[98,2551,275],{"class":121},[98,2553,259],{"class":121},[98,2555,2557],{"class":100,"line":2556},68,[98,2558,1603],{"class":121},[98,2560,2562,2564,2566,2568,2570,2572,2574,2576],{"class":100,"line":2561},69,[98,2563,1608],{"class":121},[98,2565,875],{"class":194},[98,2567,239],{"class":121},[98,2569,275],{"class":121},[98,2571,191],{"class":121},[98,2573,884],{"class":194},[98,2575,239],{"class":121},[98,2577,227],{"class":121},[98,2579,2581,2583,2585,2587,2589,2591,2593],{"class":100,"line":2580},70,[98,2582,1608],{"class":121},[98,2584,884],{"class":194},[98,2586,239],{"class":121},[98,2588,275],{"class":121},[98,2590,191],{"class":121},[98,2592,1210],{"class":194},[98,2594,198],{"class":121},[98,2596,2598],{"class":100,"line":2597},71,[98,2599,1846],{"class":121},[98,2601,2603],{"class":100,"line":2602},72,[98,2604,1851],{"class":121},[98,2606,2608],{"class":100,"line":2607},73,[98,2609,2610],{"class":121},"  }\n",[98,2612,2614],{"class":100,"line":2613},74,[98,2615,247],{"class":121},[98,2617,2619,2621,2623,2625,2627,2629],{"class":100,"line":2618},75,[98,2620,431],{"class":218},[98,2622,188],{"class":121},[98,2624,239],{"class":121},[98,2626,438],{"class":194},[98,2628,239],{"class":121},[98,2630,227],{"class":121},[98,2632,2634,2636,2638,2640,2642,2644],{"class":100,"line":2633},76,[98,2635,448],{"class":218},[98,2637,188],{"class":121},[98,2639,239],{"class":121},[98,2641,455],{"class":194},[98,2643,239],{"class":121},[98,2645,227],{"class":121},[98,2647,2649],{"class":100,"line":2648},77,[98,2650,465],{"class":121},[98,2652,2654],{"class":100,"line":2653},78,[98,2655,179],{"emptyLinePlaceholder":178},[98,2657,2659,2661,2663,2665,2667,2669],{"class":100,"line":2658},79,[98,2660,476],{"class":108},[98,2662,188],{"class":121},[98,2664,140],{"class":209},[98,2666,483],{"class":121},[98,2668,486],{"class":209},[98,2670,465],{"class":121},[98,2672,2674],{"class":100,"line":2673},80,[98,2675,179],{"emptyLinePlaceholder":178},[98,2677,2679,2681,2683,2685,2687,2689,2691,2693,2695],{"class":100,"line":2678},81,[98,2680,494],{"class":209},[98,2682,483],{"class":121},[98,2684,239],{"class":121},[98,2686,501],{"class":194},[98,2688,504],{"class":108},[98,2690,239],{"class":121},[98,2692,143],{"class":121},[98,2694,511],{"class":209},[98,2696,465],{"class":121},[98,2698,2700],{"class":100,"line":2699},82,[98,2701,179],{"emptyLinePlaceholder":178},[98,2703,2705],{"class":100,"line":2704},83,[98,2706,179],{"emptyLinePlaceholder":178},[98,2708,2710],{"class":100,"line":2709},84,[98,2711,179],{"emptyLinePlaceholder":178},[98,2713,2715,2717,2719,2721],{"class":100,"line":2714},85,[98,2716,524],{"class":108},[98,2718,188],{"class":121},[98,2720,529],{"class":209},[98,2722,212],{"class":121},[98,2724,2726,2728,2730,2732],{"class":100,"line":2725},86,[98,2727,219],{"class":218},[98,2729,188],{"class":121},[98,2731,224],{"class":209},[98,2733,227],{"class":121},[98,2735,2737,2739,2741,2743,2745,2747],{"class":100,"line":2736},87,[98,2738,548],{"class":218},[98,2740,236],{"class":121},[98,2742,239],{"class":121},[98,2744,814],{"class":194},[98,2746,239],{"class":121},[98,2748,247],{"class":121},[98,2750,2752,2754,2756,2758,2760,2762],{"class":100,"line":2751},88,[98,2753,564],{"class":218},[98,2755,188],{"class":121},[98,2757,239],{"class":121},[98,2759,1364],{"class":194},[98,2761,239],{"class":121},[98,2763,227],{"class":121},[98,2765,2767,2769],{"class":100,"line":2766},89,[98,2768,581],{"class":218},[98,2770,1376],{"class":121},[98,2772,2774],{"class":100,"line":2773},90,[98,2775,465],{"class":121},[98,2777,2779],{"class":100,"line":2778},91,[98,2780,179],{"emptyLinePlaceholder":178},[98,2782,2784,2786,2788,2790,2792,2794,2796],{"class":100,"line":2783},92,[98,2785,600],{"class":108},[98,2787,188],{"class":121},[98,2789,605],{"class":209},[98,2791,483],{"class":121},[98,2793,610],{"class":209},[98,2795,613],{"class":121},[98,2797,617],{"class":616},[98,2799,2801,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821,2823,2825,2827,2829,2831,2833,2835,2837,2839],{"class":100,"line":2800},93,[98,2802,494],{"class":209},[98,2804,483],{"class":121},[98,2806,239],{"class":121},[98,2808,504],{"class":108},[98,2810,631],{"class":194},[98,2812,504],{"class":108},[98,2814,239],{"class":121},[98,2816,143],{"class":121},[98,2818,640],{"class":209},[98,2820,122],{"class":121},[98,2822,645],{"class":209},[98,2824,483],{"class":121},[98,2826,650],{"class":209},[98,2828,143],{"class":121},[98,2830,655],{"class":218},[98,2832,188],{"class":121},[98,2834,661],{"class":660},[98,2836,143],{"class":121},[98,2838,666],{"class":218},[98,2840,669],{"class":121},[56,2842,2844],{"id":2843},"示例-3多cube添加和检索","示例 3：多Cube添加和检索",[61,2846,64],{"id":2847},"何时使用-2",[66,2849,2850,2853],{},[69,2851,2852],{},"向彼此隔离的不同的Cube空间中添加记忆",[69,2854,2855],{},"你希望同时检索不同Cube空间中的记忆",[61,2857,78],{"id":2858},"关键点-2",[66,2860,2861],{},[69,2862,2863],{},"在检索时输入含有多个cube id的readable_cube_ids列表",[61,2865,86],{"id":2866},"完整示例代码-2",[88,2868,2870],{"className":90,"code":2869,"language":92,"meta":93,"style":93},"import json\nfrom memos.api.routers.server_router import add_memories, search_memories\nfrom memos.api.product_models import APIADDRequest, APISearchRequest\n\nuser_id = \"test_user_3\"\nadd_req = APIADDRequest(\n    user_id=user_id,\n    writable_cube_ids=[\"cube_test_user_3_1\"] ,\n    messages = [\n      {\"role\": \"user\", \"content\": \"I’ve planned to travel to Guangzhou during the summer vacation. What chain hotels are available for accommodation?\"},\n      {\"role\": \"assistant\", \"content\": \"You can consider [7 Days Inn, Ji Hotel, Hilton], etc.\"},\n      {\"role\": \"user\", \"content\": \"I’ll choose 7 Days Inn.\"},\n      {\"role\": \"assistant\", \"content\": \"Okay, feel free to ask me if you have any other questions.\"}\n    ],\n    async_mode=\"sync\",\n    mode=\"fine\",\n)\n\nadd_rsp = add_memories(add_req)\nprint(\"add_memories rsp: \\n\\n\", add_rsp)\n\nadd_req = APIADDRequest(\n    user_id=user_id,\n    writable_cube_ids=[\"cube_test_user_3_2\"] ,\n    messages = [\n      {\"role\": \"user\", \"content\": \"I love you, I need you.\"},\n      {\"role\": \"assistant\", \"content\": \"Wow, I love you too\"},\n    ],\n    async_mode=\"sync\",\n    mode=\"fine\",\n)\n\nadd_rsp = add_memories(add_req)\nprint(\"add_memories rsp: \\n\\n\", add_rsp)\n\nsearch_req = APISearchRequest(\n    user_id=user_id,\n    readable_cube_ids=[\"cube_test_user_3_1\", \"cube_test_user_3_2\"],\n    query=\"Please recommend a hotel, Love u u\",\n    include_preference=True,\n)\n\nsearch_rsp = search_memories(search_req).data\nprint(\"\\n\\nsearch_rsp: \\n\\n\", json.dumps(search_rsp, indent=2, ensure_ascii=False))\n",[95,2871,2872,2878,2904,2926,2930,2943,2953,2963,2981,2989,3025,3061,3097,3133,3137,3151,3165,3169,3173,3187,3207,3211,3221,3231,3248,3256,3293,3330,3334,3348,3362,3366,3370,3384,3404,3408,3418,3428,3450,3465,3471,3475,3479,3495],{"__ignoreMap":93},[98,2873,2874,2876],{"class":100,"line":101},[98,2875,105],{"class":104},[98,2877,109],{"class":108},[98,2879,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902],{"class":100,"line":112},[98,2881,115],{"class":104},[98,2883,118],{"class":108},[98,2885,122],{"class":121},[98,2887,125],{"class":108},[98,2889,122],{"class":121},[98,2891,130],{"class":108},[98,2893,122],{"class":121},[98,2895,135],{"class":108},[98,2897,105],{"class":104},[98,2899,140],{"class":108},[98,2901,143],{"class":121},[98,2903,146],{"class":108},[98,2905,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924],{"class":100,"line":149},[98,2907,115],{"class":104},[98,2909,118],{"class":108},[98,2911,122],{"class":121},[98,2913,125],{"class":108},[98,2915,122],{"class":121},[98,2917,162],{"class":108},[98,2919,105],{"class":104},[98,2921,167],{"class":108},[98,2923,143],{"class":121},[98,2925,172],{"class":108},[98,2927,2928],{"class":100,"line":175},[98,2929,179],{"emptyLinePlaceholder":178},[98,2931,2932,2934,2936,2938,2941],{"class":100,"line":182},[98,2933,185],{"class":108},[98,2935,188],{"class":121},[98,2937,191],{"class":121},[98,2939,2940],{"class":194},"test_user_3",[98,2942,198],{"class":121},[98,2944,2945,2947,2949,2951],{"class":100,"line":201},[98,2946,204],{"class":108},[98,2948,188],{"class":121},[98,2950,167],{"class":209},[98,2952,212],{"class":121},[98,2954,2955,2957,2959,2961],{"class":100,"line":215},[98,2956,219],{"class":218},[98,2958,188],{"class":121},[98,2960,224],{"class":209},[98,2962,227],{"class":121},[98,2964,2965,2967,2969,2971,2974,2976,2978],{"class":100,"line":230},[98,2966,233],{"class":218},[98,2968,236],{"class":121},[98,2970,239],{"class":121},[98,2972,2973],{"class":194},"cube_test_user_3_1",[98,2975,239],{"class":121},[98,2977,1834],{"class":121},[98,2979,2980],{"class":121}," ,\n",[98,2982,2983,2985,2987],{"class":100,"line":250},[98,2984,253],{"class":218},[98,2986,256],{"class":121},[98,2988,259],{"class":121},[98,2990,2991,2993,2995,2997,2999,3001,3003,3005,3007,3009,3011,3013,3015,3017,3019,3021,3023],{"class":100,"line":262},[98,2992,265],{"class":121},[98,2994,239],{"class":121},[98,2996,270],{"class":194},[98,2998,239],{"class":121},[98,3000,275],{"class":121},[98,3002,191],{"class":121},[98,3004,280],{"class":194},[98,3006,239],{"class":121},[98,3008,143],{"class":121},[98,3010,191],{"class":121},[98,3012,289],{"class":194},[98,3014,239],{"class":121},[98,3016,275],{"class":121},[98,3018,191],{"class":121},[98,3020,298],{"class":194},[98,3022,239],{"class":121},[98,3024,303],{"class":121},[98,3026,3027,3029,3031,3033,3035,3037,3039,3041,3043,3045,3047,3049,3051,3053,3055,3057,3059],{"class":100,"line":306},[98,3028,265],{"class":121},[98,3030,239],{"class":121},[98,3032,270],{"class":194},[98,3034,239],{"class":121},[98,3036,275],{"class":121},[98,3038,191],{"class":121},[98,3040,321],{"class":194},[98,3042,239],{"class":121},[98,3044,143],{"class":121},[98,3046,191],{"class":121},[98,3048,289],{"class":194},[98,3050,239],{"class":121},[98,3052,275],{"class":121},[98,3054,191],{"class":121},[98,3056,338],{"class":194},[98,3058,239],{"class":121},[98,3060,303],{"class":121},[98,3062,3063,3065,3067,3069,3071,3073,3075,3077,3079,3081,3083,3085,3087,3089,3091,3093,3095],{"class":100,"line":345},[98,3064,265],{"class":121},[98,3066,239],{"class":121},[98,3068,270],{"class":194},[98,3070,239],{"class":121},[98,3072,275],{"class":121},[98,3074,191],{"class":121},[98,3076,280],{"class":194},[98,3078,239],{"class":121},[98,3080,143],{"class":121},[98,3082,191],{"class":121},[98,3084,289],{"class":194},[98,3086,239],{"class":121},[98,3088,275],{"class":121},[98,3090,191],{"class":121},[98,3092,376],{"class":194},[98,3094,239],{"class":121},[98,3096,303],{"class":121},[98,3098,3099,3101,3103,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123,3125,3127,3129,3131],{"class":100,"line":383},[98,3100,265],{"class":121},[98,3102,239],{"class":121},[98,3104,270],{"class":194},[98,3106,239],{"class":121},[98,3108,275],{"class":121},[98,3110,191],{"class":121},[98,3112,321],{"class":194},[98,3114,239],{"class":121},[98,3116,143],{"class":121},[98,3118,191],{"class":121},[98,3120,289],{"class":194},[98,3122,239],{"class":121},[98,3124,275],{"class":121},[98,3126,191],{"class":121},[98,3128,414],{"class":194},[98,3130,239],{"class":121},[98,3132,419],{"class":121},[98,3134,3135],{"class":100,"line":422},[98,3136,425],{"class":121},[98,3138,3139,3141,3143,3145,3147,3149],{"class":100,"line":428},[98,3140,431],{"class":218},[98,3142,188],{"class":121},[98,3144,239],{"class":121},[98,3146,438],{"class":194},[98,3148,239],{"class":121},[98,3150,227],{"class":121},[98,3152,3153,3155,3157,3159,3161,3163],{"class":100,"line":445},[98,3154,448],{"class":218},[98,3156,188],{"class":121},[98,3158,239],{"class":121},[98,3160,455],{"class":194},[98,3162,239],{"class":121},[98,3164,227],{"class":121},[98,3166,3167],{"class":100,"line":462},[98,3168,465],{"class":121},[98,3170,3171],{"class":100,"line":468},[98,3172,179],{"emptyLinePlaceholder":178},[98,3174,3175,3177,3179,3181,3183,3185],{"class":100,"line":473},[98,3176,476],{"class":108},[98,3178,188],{"class":121},[98,3180,140],{"class":209},[98,3182,483],{"class":121},[98,3184,486],{"class":209},[98,3186,465],{"class":121},[98,3188,3189,3191,3193,3195,3197,3199,3201,3203,3205],{"class":100,"line":491},[98,3190,494],{"class":209},[98,3192,483],{"class":121},[98,3194,239],{"class":121},[98,3196,501],{"class":194},[98,3198,504],{"class":108},[98,3200,239],{"class":121},[98,3202,143],{"class":121},[98,3204,511],{"class":209},[98,3206,465],{"class":121},[98,3208,3209],{"class":100,"line":516},[98,3210,179],{"emptyLinePlaceholder":178},[98,3212,3213,3215,3217,3219],{"class":100,"line":521},[98,3214,204],{"class":108},[98,3216,188],{"class":121},[98,3218,167],{"class":209},[98,3220,212],{"class":121},[98,3222,3223,3225,3227,3229],{"class":100,"line":534},[98,3224,219],{"class":218},[98,3226,188],{"class":121},[98,3228,224],{"class":209},[98,3230,227],{"class":121},[98,3232,3233,3235,3237,3239,3242,3244,3246],{"class":100,"line":545},[98,3234,233],{"class":218},[98,3236,236],{"class":121},[98,3238,239],{"class":121},[98,3240,3241],{"class":194},"cube_test_user_3_2",[98,3243,239],{"class":121},[98,3245,1834],{"class":121},[98,3247,2980],{"class":121},[98,3249,3250,3252,3254],{"class":100,"line":561},[98,3251,253],{"class":218},[98,3253,256],{"class":121},[98,3255,259],{"class":121},[98,3257,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3289,3291],{"class":100,"line":578},[98,3259,265],{"class":121},[98,3261,239],{"class":121},[98,3263,270],{"class":194},[98,3265,239],{"class":121},[98,3267,275],{"class":121},[98,3269,191],{"class":121},[98,3271,280],{"class":194},[98,3273,239],{"class":121},[98,3275,143],{"class":121},[98,3277,191],{"class":121},[98,3279,289],{"class":194},[98,3281,239],{"class":121},[98,3283,275],{"class":121},[98,3285,191],{"class":121},[98,3287,3288],{"class":194},"I love you, I need you.",[98,3290,239],{"class":121},[98,3292,303],{"class":121},[98,3294,3295,3297,3299,3301,3303,3305,3307,3309,3311,3313,3315,3317,3319,3321,3323,3326,3328],{"class":100,"line":587},[98,3296,265],{"class":121},[98,3298,239],{"class":121},[98,3300,270],{"class":194},[98,3302,239],{"class":121},[98,3304,275],{"class":121},[98,3306,191],{"class":121},[98,3308,321],{"class":194},[98,3310,239],{"class":121},[98,3312,143],{"class":121},[98,3314,191],{"class":121},[98,3316,289],{"class":194},[98,3318,239],{"class":121},[98,3320,275],{"class":121},[98,3322,191],{"class":121},[98,3324,3325],{"class":194},"Wow, I love you too",[98,3327,239],{"class":121},[98,3329,303],{"class":121},[98,3331,3332],{"class":100,"line":592},[98,3333,425],{"class":121},[98,3335,3336,3338,3340,3342,3344,3346],{"class":100,"line":597},[98,3337,431],{"class":218},[98,3339,188],{"class":121},[98,3341,239],{"class":121},[98,3343,438],{"class":194},[98,3345,239],{"class":121},[98,3347,227],{"class":121},[98,3349,3350,3352,3354,3356,3358,3360],{"class":100,"line":620},[98,3351,448],{"class":218},[98,3353,188],{"class":121},[98,3355,239],{"class":121},[98,3357,455],{"class":194},[98,3359,239],{"class":121},[98,3361,227],{"class":121},[98,3363,3364],{"class":100,"line":1178},[98,3365,465],{"class":121},[98,3367,3368],{"class":100,"line":1197},[98,3369,179],{"emptyLinePlaceholder":178},[98,3371,3372,3374,3376,3378,3380,3382],{"class":100,"line":1215},[98,3373,476],{"class":108},[98,3375,188],{"class":121},[98,3377,140],{"class":209},[98,3379,483],{"class":121},[98,3381,486],{"class":209},[98,3383,465],{"class":121},[98,3385,3386,3388,3390,3392,3394,3396,3398,3400,3402],{"class":100,"line":1221},[98,3387,494],{"class":209},[98,3389,483],{"class":121},[98,3391,239],{"class":121},[98,3393,501],{"class":194},[98,3395,504],{"class":108},[98,3397,239],{"class":121},[98,3399,143],{"class":121},[98,3401,511],{"class":209},[98,3403,465],{"class":121},[98,3405,3406],{"class":100,"line":1226},[98,3407,179],{"emptyLinePlaceholder":178},[98,3409,3410,3412,3414,3416],{"class":100,"line":1232},[98,3411,524],{"class":108},[98,3413,188],{"class":121},[98,3415,529],{"class":209},[98,3417,212],{"class":121},[98,3419,3420,3422,3424,3426],{"class":100,"line":1237},[98,3421,219],{"class":218},[98,3423,188],{"class":121},[98,3425,224],{"class":209},[98,3427,227],{"class":121},[98,3429,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448],{"class":100,"line":1252},[98,3431,548],{"class":218},[98,3433,236],{"class":121},[98,3435,239],{"class":121},[98,3437,2973],{"class":194},[98,3439,239],{"class":121},[98,3441,143],{"class":121},[98,3443,191],{"class":121},[98,3445,3241],{"class":194},[98,3447,239],{"class":121},[98,3449,247],{"class":121},[98,3451,3452,3454,3456,3458,3461,3463],{"class":100,"line":1267},[98,3453,564],{"class":218},[98,3455,188],{"class":121},[98,3457,239],{"class":121},[98,3459,3460],{"class":194},"Please recommend a hotel, Love u u",[98,3462,239],{"class":121},[98,3464,227],{"class":121},[98,3466,3467,3469],{"class":100,"line":1272},[98,3468,581],{"class":218},[98,3470,584],{"class":121},[98,3472,3473],{"class":100,"line":1277},[98,3474,465],{"class":121},[98,3476,3477],{"class":100,"line":1292},[98,3478,179],{"emptyLinePlaceholder":178},[98,3480,3481,3483,3485,3487,3489,3491,3493],{"class":100,"line":1313},[98,3482,600],{"class":108},[98,3484,188],{"class":121},[98,3486,605],{"class":209},[98,3488,483],{"class":121},[98,3490,610],{"class":209},[98,3492,613],{"class":121},[98,3494,617],{"class":616},[98,3496,3497,3499,3501,3503,3505,3507,3509,3511,3513,3515,3517,3519,3521,3523,3525,3527,3529,3531,3533,3535],{"class":100,"line":1318},[98,3498,494],{"class":209},[98,3500,483],{"class":121},[98,3502,239],{"class":121},[98,3504,504],{"class":108},[98,3506,631],{"class":194},[98,3508,504],{"class":108},[98,3510,239],{"class":121},[98,3512,143],{"class":121},[98,3514,640],{"class":209},[98,3516,122],{"class":121},[98,3518,645],{"class":209},[98,3520,483],{"class":121},[98,3522,650],{"class":209},[98,3524,143],{"class":121},[98,3526,655],{"class":218},[98,3528,188],{"class":121},[98,3530,661],{"class":660},[98,3532,143],{"class":121},[98,3534,666],{"class":218},[98,3536,669],{"class":121},[56,3538,3540],{"id":3539},"示例-4仅-kvcachememory","示例 4：仅 KVCacheMemory",[61,3542,64],{"id":3543},"何时使用-3",[66,3545,3546,3549,3552],{},[69,3547,3548],{},"你想要短期工作记忆以加快多轮对话速度。",[69,3550,3551],{},"适合聊天机器人会话加速或提示复用。",[69,3553,3554],{},"最适合缓存隐藏状态 \u002F KV 对。",[61,3556,78],{"id":3557},"关键点-3",[66,3559,3560,3563,3566],{},[69,3561,3562],{},"使用 KVCacheMemory，不含显式明文记忆。",[69,3564,3565],{},"演示提取 → 添加 → 合并 → 获取 → 删除。",[69,3567,3568],{},"展示如何导出\u002F加载 KV cache。",[61,3570,86],{"id":3571},"完整示例代码-3",[88,3573,3575],{"className":90,"code":3574,"language":92,"meta":93,"style":93},"import json\nfrom transformers import DynamicCache\n\nfrom memos.memories.activation.item import KVCacheItem\nfrom memos.configs.memory import MemoryConfigFactory\nfrom memos.memories.factory import MemoryFactory\n\ndef get_cache_info(cache):\n    if not cache:\n        return None\n\n    num_layers = 0\n    total_size_bytes = 0\n\n    if hasattr(cache, \"layers\"):\n        num_layers = len(cache.layers)\n        for layer in cache.layers:\n            if hasattr(layer, \"key_cache\") and layer.key_cache is not None:\n                total_size_bytes += layer.key_cache.nelement() * layer.key_cache.element_size()\n            if hasattr(layer, \"value_cache\") and layer.value_cache is not None:\n                total_size_bytes += layer.value_cache.nelement() * layer.value_cache.element_size()\n\n            if hasattr(layer, \"keys\") and layer.keys is not None:\n                total_size_bytes += layer.keys.nelement() * layer.keys.element_size()\n            if hasattr(layer, \"values\") and layer.values is not None:\n                total_size_bytes += layer.values.nelement() * layer.values.element_size()\n\n    elif hasattr(cache, \"key_cache\") and hasattr(cache, \"value_cache\"):\n        num_layers = len(cache.key_cache)\n        for k, v in zip(cache.key_cache, cache.value_cache, strict=False):\n            if k is not None:\n                total_size_bytes += k.nelement() * k.element_size()\n            if v is not None:\n                total_size_bytes += v.nelement() * v.element_size()\n\n    return {\n        \"num_layers\": num_layers,\n        \"size_bytes\": total_size_bytes,\n        \"size_mb\": f\"{total_size_bytes \u002F (1024 * 1024):.2f} MB\",\n    }\n\n\ndef serialize_item(obj):\n    if isinstance(obj, list):\n        return [serialize_item(x) for x in obj]\n\n    if isinstance(obj, KVCacheItem):\n        return {\n            \"id\": obj.id,\n            \"metadata\": obj.metadata,\n            \"records\": obj.records.model_dump()\n            if hasattr(obj.records, \"model_dump\")\n            else obj.records,\n            \"memory\": get_cache_info(obj.memory),\n        }\n\n    if isinstance(obj, DynamicCache):\n        return get_cache_info(obj)\n\n    return str(obj)\n\n\n# 为 KVCacheMemory(HuggingFace 后端)创建配置\nconfig = MemoryConfigFactory(\n    backend=\"kv_cache\",\n    config={\n        \"extractor_llm\": {\n            \"backend\": \"huggingface\",\n            \"config\": {\n                \"model_name_or_path\": \"Qwen\u002FQwen3-0.6B\",\n                \"max_tokens\": 32,\n                \"add_generation_prompt\": True,\n                \"remove_think_prefix\": True,\n            },\n        },\n    },\n)\n\n# 实例化 KVCacheMemory\nkv_mem = MemoryFactory.from_config(config)\n\n# 提取一个 KVCacheItem(DynamicCache)\nprompt = [\n    {\"role\": \"user\", \"content\": \"What is MemOS?\"},\n    {\"role\": \"assistant\", \"content\": \"MemOS is a memory operating system for LLMs.\"},\n]\nprint(\"===== Extract KVCacheItem =====\")\ncache_item = kv_mem.extract(prompt)\nprint(json.dumps(serialize_item(cache_item), indent=2, default=str))\n\n# 将缓存添加到内存中\nkv_mem.add([cache_item])\nprint(\"All caches:\")\nprint(json.dumps(serialize_item(kv_mem.get_all()), indent=2, default=str))\n\n# 通过 ID 获取\nretrieved = kv_mem.get(cache_item.id)\nprint(\"Retrieved:\")\nprint(json.dumps(serialize_item(retrieved), indent=2, default=str))\n\n# 合并缓存\nitem2 = kv_mem.extract([{\"role\": \"user\", \"content\": \"Tell me a joke.\"}])\nkv_mem.add([item2])\nmerged = kv_mem.get_cache([cache_item.id, item2.id])\nprint(\"Merged cache:\")\nprint(json.dumps(serialize_item(merged), indent=2, default=str))\n\n# 删除其中一个\nkv_mem.delete([cache_item.id])\nprint(\"After delete:\")\nprint(json.dumps(serialize_item(kv_mem.get_all()), indent=2, default=str))\n\n# 导出和加载缓存\nkv_mem.dump(\"tmp\u002Fkv_mem\")\nprint(\"Dumped to tmp\u002Fkv_mem\")\nkv_mem.delete_all()\nkv_mem.load(\"tmp\u002Fkv_mem\")\nprint(\"Loaded caches:\")\nprint(json.dumps(serialize_item(kv_mem.get_all()), indent=2, default=str))\n",[95,3576,3577,3583,3595,3599,3625,3646,3666,3670,3687,3701,3709,3713,3723,3732,3736,3758,3778,3797,3839,3878,3913,3945,3949,3984,4016,4051,4083,4087,4126,4144,4185,4199,4223,4235,4260,4264,4271,4287,4303,4350,4355,4359,4363,4377,4396,4427,4431,4448,4454,4472,4491,4515,4539,4552,4576,4580,4584,4601,4613,4617,4630,4634,4638,4644,4656,4672,4680,4693,4713,4726,4747,4763,4777,4790,4795,4799,4804,4808,4812,4817,4838,4842,4847,4856,4894,4931,4935,4950,4972,5016,5020,5025,5043,5058,5103,5108,5114,5139,5155,5195,5200,5206,5257,5273,5307,5323,5363,5368,5374,5394,5410,5453,5458,5464,5485,5501,5513,5533,5549],{"__ignoreMap":93},[98,3578,3579,3581],{"class":100,"line":101},[98,3580,105],{"class":104},[98,3582,109],{"class":108},[98,3584,3585,3587,3590,3592],{"class":100,"line":112},[98,3586,115],{"class":104},[98,3588,3589],{"class":108}," transformers ",[98,3591,105],{"class":104},[98,3593,3594],{"class":108}," DynamicCache\n",[98,3596,3597],{"class":100,"line":149},[98,3598,179],{"emptyLinePlaceholder":178},[98,3600,3601,3603,3605,3607,3610,3612,3615,3617,3620,3622],{"class":100,"line":175},[98,3602,115],{"class":104},[98,3604,118],{"class":108},[98,3606,122],{"class":121},[98,3608,3609],{"class":108},"memories",[98,3611,122],{"class":121},[98,3613,3614],{"class":108},"activation",[98,3616,122],{"class":121},[98,3618,3619],{"class":108},"item ",[98,3621,105],{"class":104},[98,3623,3624],{"class":108}," KVCacheItem\n",[98,3626,3627,3629,3631,3633,3636,3638,3641,3643],{"class":100,"line":182},[98,3628,115],{"class":104},[98,3630,118],{"class":108},[98,3632,122],{"class":121},[98,3634,3635],{"class":108},"configs",[98,3637,122],{"class":121},[98,3639,3640],{"class":108},"memory ",[98,3642,105],{"class":104},[98,3644,3645],{"class":108}," MemoryConfigFactory\n",[98,3647,3648,3650,3652,3654,3656,3658,3661,3663],{"class":100,"line":201},[98,3649,115],{"class":104},[98,3651,118],{"class":108},[98,3653,122],{"class":121},[98,3655,3609],{"class":108},[98,3657,122],{"class":121},[98,3659,3660],{"class":108},"factory ",[98,3662,105],{"class":104},[98,3664,3665],{"class":108}," MemoryFactory\n",[98,3667,3668],{"class":100,"line":215},[98,3669,179],{"emptyLinePlaceholder":178},[98,3671,3672,3676,3679,3681,3684],{"class":100,"line":230},[98,3673,3675],{"class":3674},"spNyl","def",[98,3677,3678],{"class":209}," get_cache_info",[98,3680,483],{"class":121},[98,3682,3683],{"class":218},"cache",[98,3685,3686],{"class":121},"):\n",[98,3688,3689,3692,3695,3698],{"class":100,"line":250},[98,3690,3691],{"class":104},"    if",[98,3693,3694],{"class":121}," not",[98,3696,3697],{"class":108}," cache",[98,3699,3700],{"class":121},":\n",[98,3702,3703,3706],{"class":100,"line":262},[98,3704,3705],{"class":104},"        return",[98,3707,3708],{"class":121}," None\n",[98,3710,3711],{"class":100,"line":306},[98,3712,179],{"emptyLinePlaceholder":178},[98,3714,3715,3718,3720],{"class":100,"line":345},[98,3716,3717],{"class":108},"    num_layers ",[98,3719,188],{"class":121},[98,3721,3722],{"class":660}," 0\n",[98,3724,3725,3728,3730],{"class":100,"line":383},[98,3726,3727],{"class":108},"    total_size_bytes ",[98,3729,188],{"class":121},[98,3731,3722],{"class":660},[98,3733,3734],{"class":100,"line":422},[98,3735,179],{"emptyLinePlaceholder":178},[98,3737,3738,3740,3743,3745,3747,3749,3751,3754,3756],{"class":100,"line":428},[98,3739,3691],{"class":104},[98,3741,3742],{"class":209}," hasattr",[98,3744,483],{"class":121},[98,3746,3683],{"class":209},[98,3748,143],{"class":121},[98,3750,191],{"class":121},[98,3752,3753],{"class":194},"layers",[98,3755,239],{"class":121},[98,3757,3686],{"class":121},[98,3759,3760,3763,3765,3768,3770,3772,3774,3776],{"class":100,"line":445},[98,3761,3762],{"class":108},"        num_layers ",[98,3764,188],{"class":121},[98,3766,3767],{"class":209}," len",[98,3769,483],{"class":121},[98,3771,3683],{"class":209},[98,3773,122],{"class":121},[98,3775,3753],{"class":616},[98,3777,465],{"class":121},[98,3779,3780,3783,3786,3789,3791,3793,3795],{"class":100,"line":462},[98,3781,3782],{"class":104},"        for",[98,3784,3785],{"class":108}," layer ",[98,3787,3788],{"class":104},"in",[98,3790,3697],{"class":108},[98,3792,122],{"class":121},[98,3794,3753],{"class":616},[98,3796,3700],{"class":121},[98,3798,3799,3802,3804,3806,3809,3811,3813,3816,3818,3821,3824,3827,3829,3831,3834,3836],{"class":100,"line":468},[98,3800,3801],{"class":104},"            if",[98,3803,3742],{"class":209},[98,3805,483],{"class":121},[98,3807,3808],{"class":209},"layer",[98,3810,143],{"class":121},[98,3812,191],{"class":121},[98,3814,3815],{"class":194},"key_cache",[98,3817,239],{"class":121},[98,3819,3820],{"class":121},")",[98,3822,3823],{"class":121}," and",[98,3825,3826],{"class":108}," layer",[98,3828,122],{"class":121},[98,3830,3815],{"class":616},[98,3832,3833],{"class":121}," is",[98,3835,3694],{"class":121},[98,3837,3838],{"class":121}," None:\n",[98,3840,3841,3844,3847,3849,3851,3853,3855,3858,3861,3864,3866,3868,3870,3872,3875],{"class":100,"line":473},[98,3842,3843],{"class":108},"                total_size_bytes ",[98,3845,3846],{"class":121},"+=",[98,3848,3826],{"class":108},[98,3850,122],{"class":121},[98,3852,3815],{"class":616},[98,3854,122],{"class":121},[98,3856,3857],{"class":209},"nelement",[98,3859,3860],{"class":121},"()",[98,3862,3863],{"class":121}," *",[98,3865,3826],{"class":108},[98,3867,122],{"class":121},[98,3869,3815],{"class":616},[98,3871,122],{"class":121},[98,3873,3874],{"class":209},"element_size",[98,3876,3877],{"class":121},"()\n",[98,3879,3880,3882,3884,3886,3888,3890,3892,3895,3897,3899,3901,3903,3905,3907,3909,3911],{"class":100,"line":491},[98,3881,3801],{"class":104},[98,3883,3742],{"class":209},[98,3885,483],{"class":121},[98,3887,3808],{"class":209},[98,3889,143],{"class":121},[98,3891,191],{"class":121},[98,3893,3894],{"class":194},"value_cache",[98,3896,239],{"class":121},[98,3898,3820],{"class":121},[98,3900,3823],{"class":121},[98,3902,3826],{"class":108},[98,3904,122],{"class":121},[98,3906,3894],{"class":616},[98,3908,3833],{"class":121},[98,3910,3694],{"class":121},[98,3912,3838],{"class":121},[98,3914,3915,3917,3919,3921,3923,3925,3927,3929,3931,3933,3935,3937,3939,3941,3943],{"class":100,"line":516},[98,3916,3843],{"class":108},[98,3918,3846],{"class":121},[98,3920,3826],{"class":108},[98,3922,122],{"class":121},[98,3924,3894],{"class":616},[98,3926,122],{"class":121},[98,3928,3857],{"class":209},[98,3930,3860],{"class":121},[98,3932,3863],{"class":121},[98,3934,3826],{"class":108},[98,3936,122],{"class":121},[98,3938,3894],{"class":616},[98,3940,122],{"class":121},[98,3942,3874],{"class":209},[98,3944,3877],{"class":121},[98,3946,3947],{"class":100,"line":521},[98,3948,179],{"emptyLinePlaceholder":178},[98,3950,3951,3953,3955,3957,3959,3961,3963,3966,3968,3970,3972,3974,3976,3978,3980,3982],{"class":100,"line":534},[98,3952,3801],{"class":104},[98,3954,3742],{"class":209},[98,3956,483],{"class":121},[98,3958,3808],{"class":209},[98,3960,143],{"class":121},[98,3962,191],{"class":121},[98,3964,3965],{"class":194},"keys",[98,3967,239],{"class":121},[98,3969,3820],{"class":121},[98,3971,3823],{"class":121},[98,3973,3826],{"class":108},[98,3975,122],{"class":121},[98,3977,3965],{"class":616},[98,3979,3833],{"class":121},[98,3981,3694],{"class":121},[98,3983,3838],{"class":121},[98,3985,3986,3988,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014],{"class":100,"line":545},[98,3987,3843],{"class":108},[98,3989,3846],{"class":121},[98,3991,3826],{"class":108},[98,3993,122],{"class":121},[98,3995,3965],{"class":616},[98,3997,122],{"class":121},[98,3999,3857],{"class":209},[98,4001,3860],{"class":121},[98,4003,3863],{"class":121},[98,4005,3826],{"class":108},[98,4007,122],{"class":121},[98,4009,3965],{"class":616},[98,4011,122],{"class":121},[98,4013,3874],{"class":209},[98,4015,3877],{"class":121},[98,4017,4018,4020,4022,4024,4026,4028,4030,4033,4035,4037,4039,4041,4043,4045,4047,4049],{"class":100,"line":561},[98,4019,3801],{"class":104},[98,4021,3742],{"class":209},[98,4023,483],{"class":121},[98,4025,3808],{"class":209},[98,4027,143],{"class":121},[98,4029,191],{"class":121},[98,4031,4032],{"class":194},"values",[98,4034,239],{"class":121},[98,4036,3820],{"class":121},[98,4038,3823],{"class":121},[98,4040,3826],{"class":108},[98,4042,122],{"class":121},[98,4044,4032],{"class":616},[98,4046,3833],{"class":121},[98,4048,3694],{"class":121},[98,4050,3838],{"class":121},[98,4052,4053,4055,4057,4059,4061,4063,4065,4067,4069,4071,4073,4075,4077,4079,4081],{"class":100,"line":578},[98,4054,3843],{"class":108},[98,4056,3846],{"class":121},[98,4058,3826],{"class":108},[98,4060,122],{"class":121},[98,4062,4032],{"class":616},[98,4064,122],{"class":121},[98,4066,3857],{"class":209},[98,4068,3860],{"class":121},[98,4070,3863],{"class":121},[98,4072,3826],{"class":108},[98,4074,122],{"class":121},[98,4076,4032],{"class":616},[98,4078,122],{"class":121},[98,4080,3874],{"class":209},[98,4082,3877],{"class":121},[98,4084,4085],{"class":100,"line":587},[98,4086,179],{"emptyLinePlaceholder":178},[98,4088,4089,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116,4118,4120,4122,4124],{"class":100,"line":592},[98,4090,4091],{"class":104},"    elif",[98,4093,3742],{"class":209},[98,4095,483],{"class":121},[98,4097,3683],{"class":209},[98,4099,143],{"class":121},[98,4101,191],{"class":121},[98,4103,3815],{"class":194},[98,4105,239],{"class":121},[98,4107,3820],{"class":121},[98,4109,3823],{"class":121},[98,4111,3742],{"class":209},[98,4113,483],{"class":121},[98,4115,3683],{"class":209},[98,4117,143],{"class":121},[98,4119,191],{"class":121},[98,4121,3894],{"class":194},[98,4123,239],{"class":121},[98,4125,3686],{"class":121},[98,4127,4128,4130,4132,4134,4136,4138,4140,4142],{"class":100,"line":597},[98,4129,3762],{"class":108},[98,4131,188],{"class":121},[98,4133,3767],{"class":209},[98,4135,483],{"class":121},[98,4137,3683],{"class":209},[98,4139,122],{"class":121},[98,4141,3815],{"class":616},[98,4143,465],{"class":121},[98,4145,4146,4148,4151,4153,4156,4158,4161,4163,4165,4167,4169,4171,4173,4175,4177,4179,4182],{"class":100,"line":620},[98,4147,3782],{"class":104},[98,4149,4150],{"class":108}," k",[98,4152,143],{"class":121},[98,4154,4155],{"class":108}," v ",[98,4157,3788],{"class":104},[98,4159,4160],{"class":209}," zip",[98,4162,483],{"class":121},[98,4164,3683],{"class":209},[98,4166,122],{"class":121},[98,4168,3815],{"class":616},[98,4170,143],{"class":121},[98,4172,3697],{"class":209},[98,4174,122],{"class":121},[98,4176,3894],{"class":616},[98,4178,143],{"class":121},[98,4180,4181],{"class":218}," strict",[98,4183,4184],{"class":121},"=False):\n",[98,4186,4187,4189,4192,4195,4197],{"class":100,"line":1178},[98,4188,3801],{"class":104},[98,4190,4191],{"class":108}," k ",[98,4193,4194],{"class":121},"is",[98,4196,3694],{"class":121},[98,4198,3838],{"class":121},[98,4200,4201,4203,4205,4207,4209,4211,4213,4215,4217,4219,4221],{"class":100,"line":1197},[98,4202,3843],{"class":108},[98,4204,3846],{"class":121},[98,4206,4150],{"class":108},[98,4208,122],{"class":121},[98,4210,3857],{"class":209},[98,4212,3860],{"class":121},[98,4214,3863],{"class":121},[98,4216,4150],{"class":108},[98,4218,122],{"class":121},[98,4220,3874],{"class":209},[98,4222,3877],{"class":121},[98,4224,4225,4227,4229,4231,4233],{"class":100,"line":1215},[98,4226,3801],{"class":104},[98,4228,4155],{"class":108},[98,4230,4194],{"class":121},[98,4232,3694],{"class":121},[98,4234,3838],{"class":121},[98,4236,4237,4239,4241,4244,4246,4248,4250,4252,4254,4256,4258],{"class":100,"line":1221},[98,4238,3843],{"class":108},[98,4240,3846],{"class":121},[98,4242,4243],{"class":108}," v",[98,4245,122],{"class":121},[98,4247,3857],{"class":209},[98,4249,3860],{"class":121},[98,4251,3863],{"class":121},[98,4253,4243],{"class":108},[98,4255,122],{"class":121},[98,4257,3874],{"class":209},[98,4259,3877],{"class":121},[98,4261,4262],{"class":100,"line":1226},[98,4263,179],{"emptyLinePlaceholder":178},[98,4265,4266,4269],{"class":100,"line":1232},[98,4267,4268],{"class":104},"    return",[98,4270,946],{"class":121},[98,4272,4273,4275,4278,4280,4282,4285],{"class":100,"line":1237},[98,4274,1608],{"class":121},[98,4276,4277],{"class":194},"num_layers",[98,4279,239],{"class":121},[98,4281,275],{"class":121},[98,4283,4284],{"class":108}," num_layers",[98,4286,227],{"class":121},[98,4288,4289,4291,4294,4296,4298,4301],{"class":100,"line":1252},[98,4290,1608],{"class":121},[98,4292,4293],{"class":194},"size_bytes",[98,4295,239],{"class":121},[98,4297,275],{"class":121},[98,4299,4300],{"class":108}," total_size_bytes",[98,4302,227],{"class":121},[98,4304,4305,4307,4310,4312,4314,4317,4319,4321,4324,4327,4330,4333,4335,4338,4340,4343,4345,4348],{"class":100,"line":1267},[98,4306,1608],{"class":121},[98,4308,4309],{"class":194},"size_mb",[98,4311,239],{"class":121},[98,4313,275],{"class":121},[98,4315,4316],{"class":3674}," f",[98,4318,239],{"class":194},[98,4320,2331],{"class":660},[98,4322,4323],{"class":108},"total_size_bytes ",[98,4325,4326],{"class":121},"\u002F",[98,4328,4329],{"class":121}," (",[98,4331,4332],{"class":660},"1024",[98,4334,3863],{"class":121},[98,4336,4337],{"class":660}," 1024",[98,4339,3820],{"class":121},[98,4341,4342],{"class":3674},":.2f",[98,4344,1774],{"class":660},[98,4346,4347],{"class":194}," MB\"",[98,4349,227],{"class":121},[98,4351,4352],{"class":100,"line":1272},[98,4353,4354],{"class":121},"    }\n",[98,4356,4357],{"class":100,"line":1277},[98,4358,179],{"emptyLinePlaceholder":178},[98,4360,4361],{"class":100,"line":1292},[98,4362,179],{"emptyLinePlaceholder":178},[98,4364,4365,4367,4370,4372,4375],{"class":100,"line":1313},[98,4366,3675],{"class":3674},[98,4368,4369],{"class":209}," serialize_item",[98,4371,483],{"class":121},[98,4373,4374],{"class":218},"obj",[98,4376,3686],{"class":121},[98,4378,4379,4381,4384,4386,4388,4390,4394],{"class":100,"line":1318},[98,4380,3691],{"class":104},[98,4382,4383],{"class":209}," isinstance",[98,4385,483],{"class":121},[98,4387,4374],{"class":209},[98,4389,143],{"class":121},[98,4391,4393],{"class":4392},"sBMFI"," list",[98,4395,3686],{"class":121},[98,4397,4398,4400,4403,4406,4408,4411,4413,4416,4419,4421,4424],{"class":100,"line":1329},[98,4399,3705],{"class":104},[98,4401,4402],{"class":121}," [",[98,4404,4405],{"class":209},"serialize_item",[98,4407,483],{"class":121},[98,4409,4410],{"class":209},"x",[98,4412,3820],{"class":121},[98,4414,4415],{"class":104}," for",[98,4417,4418],{"class":108}," x ",[98,4420,3788],{"class":104},[98,4422,4423],{"class":108}," obj",[98,4425,4426],{"class":121},"]\n",[98,4428,4429],{"class":100,"line":1340},[98,4430,179],{"emptyLinePlaceholder":178},[98,4432,4433,4435,4437,4439,4441,4443,4446],{"class":100,"line":1355},[98,4434,3691],{"class":104},[98,4436,4383],{"class":209},[98,4438,483],{"class":121},[98,4440,4374],{"class":209},[98,4442,143],{"class":121},[98,4444,4445],{"class":209}," KVCacheItem",[98,4447,3686],{"class":121},[98,4449,4450,4452],{"class":100,"line":1371},[98,4451,3705],{"class":104},[98,4453,946],{"class":121},[98,4455,4456,4458,4460,4462,4464,4466,4468,4470],{"class":100,"line":1379},[98,4457,836],{"class":121},[98,4459,2253],{"class":194},[98,4461,239],{"class":121},[98,4463,275],{"class":121},[98,4465,4423],{"class":108},[98,4467,122],{"class":121},[98,4469,2253],{"class":616},[98,4471,227],{"class":121},[98,4473,4474,4476,4479,4481,4483,4485,4487,4489],{"class":100,"line":1384},[98,4475,836],{"class":121},[98,4477,4478],{"class":194},"metadata",[98,4480,239],{"class":121},[98,4482,275],{"class":121},[98,4484,4423],{"class":108},[98,4486,122],{"class":121},[98,4488,4478],{"class":616},[98,4490,227],{"class":121},[98,4492,4493,4495,4498,4500,4502,4504,4506,4508,4510,4513],{"class":100,"line":1401},[98,4494,836],{"class":121},[98,4496,4497],{"class":194},"records",[98,4499,239],{"class":121},[98,4501,275],{"class":121},[98,4503,4423],{"class":108},[98,4505,122],{"class":121},[98,4507,4497],{"class":616},[98,4509,122],{"class":121},[98,4511,4512],{"class":209},"model_dump",[98,4514,3877],{"class":121},[98,4516,4517,4519,4521,4523,4525,4527,4529,4531,4533,4535,4537],{"class":100,"line":2356},[98,4518,3801],{"class":104},[98,4520,3742],{"class":209},[98,4522,483],{"class":121},[98,4524,4374],{"class":209},[98,4526,122],{"class":121},[98,4528,4497],{"class":616},[98,4530,143],{"class":121},[98,4532,191],{"class":121},[98,4534,4512],{"class":194},[98,4536,239],{"class":121},[98,4538,465],{"class":121},[98,4540,4541,4544,4546,4548,4550],{"class":100,"line":2361},[98,4542,4543],{"class":104},"            else",[98,4545,4423],{"class":108},[98,4547,122],{"class":121},[98,4549,4497],{"class":616},[98,4551,227],{"class":121},[98,4553,4554,4556,4559,4561,4563,4565,4567,4569,4571,4573],{"class":100,"line":2366},[98,4555,836],{"class":121},[98,4557,4558],{"class":194},"memory",[98,4560,239],{"class":121},[98,4562,275],{"class":121},[98,4564,3678],{"class":209},[98,4566,483],{"class":121},[98,4568,4374],{"class":209},[98,4570,122],{"class":121},[98,4572,4558],{"class":616},[98,4574,4575],{"class":121},"),\n",[98,4577,4578],{"class":100,"line":2371},[98,4579,1229],{"class":121},[98,4581,4582],{"class":100,"line":2376},[98,4583,179],{"emptyLinePlaceholder":178},[98,4585,4586,4588,4590,4592,4594,4596,4599],{"class":100,"line":2396},[98,4587,3691],{"class":104},[98,4589,4383],{"class":209},[98,4591,483],{"class":121},[98,4593,4374],{"class":209},[98,4595,143],{"class":121},[98,4597,4598],{"class":209}," DynamicCache",[98,4600,3686],{"class":121},[98,4602,4603,4605,4607,4609,4611],{"class":100,"line":2416},[98,4604,3705],{"class":104},[98,4606,3678],{"class":209},[98,4608,483],{"class":121},[98,4610,4374],{"class":209},[98,4612,465],{"class":121},[98,4614,4615],{"class":100,"line":2429},[98,4616,179],{"emptyLinePlaceholder":178},[98,4618,4619,4621,4624,4626,4628],{"class":100,"line":2434},[98,4620,4268],{"class":104},[98,4622,4623],{"class":4392}," str",[98,4625,483],{"class":121},[98,4627,4374],{"class":209},[98,4629,465],{"class":121},[98,4631,4632],{"class":100,"line":2453},[98,4633,179],{"emptyLinePlaceholder":178},[98,4635,4636],{"class":100,"line":2504},[98,4637,179],{"emptyLinePlaceholder":178},[98,4639,4640],{"class":100,"line":2509},[98,4641,4643],{"class":4642},"sHwdD","# 为 KVCacheMemory(HuggingFace 后端)创建配置\n",[98,4645,4646,4649,4651,4654],{"class":100,"line":2514},[98,4647,4648],{"class":108},"config ",[98,4650,188],{"class":121},[98,4652,4653],{"class":209}," MemoryConfigFactory",[98,4655,212],{"class":121},[98,4657,4658,4661,4663,4665,4668,4670],{"class":100,"line":2519},[98,4659,4660],{"class":218},"    backend",[98,4662,188],{"class":121},[98,4664,239],{"class":121},[98,4666,4667],{"class":194},"kv_cache",[98,4669,239],{"class":121},[98,4671,227],{"class":121},[98,4673,4674,4677],{"class":100,"line":2524},[98,4675,4676],{"class":218},"    config",[98,4678,4679],{"class":121},"={\n",[98,4681,4682,4684,4687,4689,4691],{"class":100,"line":2543},[98,4683,1608],{"class":121},[98,4685,4686],{"class":194},"extractor_llm",[98,4688,239],{"class":121},[98,4690,275],{"class":121},[98,4692,946],{"class":121},[98,4694,4695,4697,4700,4702,4704,4706,4709,4711],{"class":100,"line":2556},[98,4696,836],{"class":121},[98,4698,4699],{"class":194},"backend",[98,4701,239],{"class":121},[98,4703,275],{"class":121},[98,4705,191],{"class":121},[98,4707,4708],{"class":194},"huggingface",[98,4710,239],{"class":121},[98,4712,227],{"class":121},[98,4714,4715,4717,4720,4722,4724],{"class":100,"line":2561},[98,4716,836],{"class":121},[98,4718,4719],{"class":194},"config",[98,4721,239],{"class":121},[98,4723,275],{"class":121},[98,4725,946],{"class":121},[98,4727,4728,4731,4734,4736,4738,4740,4743,4745],{"class":100,"line":2580},[98,4729,4730],{"class":121},"                \"",[98,4732,4733],{"class":194},"model_name_or_path",[98,4735,239],{"class":121},[98,4737,275],{"class":121},[98,4739,191],{"class":121},[98,4741,4742],{"class":194},"Qwen\u002FQwen3-0.6B",[98,4744,239],{"class":121},[98,4746,227],{"class":121},[98,4748,4749,4751,4754,4756,4758,4761],{"class":100,"line":2597},[98,4750,4730],{"class":121},[98,4752,4753],{"class":194},"max_tokens",[98,4755,239],{"class":121},[98,4757,275],{"class":121},[98,4759,4760],{"class":660}," 32",[98,4762,227],{"class":121},[98,4764,4765,4767,4770,4772,4774],{"class":100,"line":2602},[98,4766,4730],{"class":121},[98,4768,4769],{"class":194},"add_generation_prompt",[98,4771,239],{"class":121},[98,4773,275],{"class":121},[98,4775,4776],{"class":121}," True,\n",[98,4778,4779,4781,4784,4786,4788],{"class":100,"line":2607},[98,4780,4730],{"class":121},[98,4782,4783],{"class":194},"remove_think_prefix",[98,4785,239],{"class":121},[98,4787,275],{"class":121},[98,4789,4776],{"class":121},[98,4791,4792],{"class":100,"line":2613},[98,4793,4794],{"class":121},"            },\n",[98,4796,4797],{"class":100,"line":2618},[98,4798,1137],{"class":121},[98,4800,4801],{"class":100,"line":2633},[98,4802,4803],{"class":121},"    },\n",[98,4805,4806],{"class":100,"line":2648},[98,4807,465],{"class":121},[98,4809,4810],{"class":100,"line":2653},[98,4811,179],{"emptyLinePlaceholder":178},[98,4813,4814],{"class":100,"line":2658},[98,4815,4816],{"class":4642},"# 实例化 KVCacheMemory\n",[98,4818,4819,4822,4824,4827,4829,4832,4834,4836],{"class":100,"line":2673},[98,4820,4821],{"class":108},"kv_mem ",[98,4823,188],{"class":121},[98,4825,4826],{"class":108}," MemoryFactory",[98,4828,122],{"class":121},[98,4830,4831],{"class":209},"from_config",[98,4833,483],{"class":121},[98,4835,4719],{"class":209},[98,4837,465],{"class":121},[98,4839,4840],{"class":100,"line":2678},[98,4841,179],{"emptyLinePlaceholder":178},[98,4843,4844],{"class":100,"line":2699},[98,4845,4846],{"class":4642},"# 提取一个 KVCacheItem(DynamicCache)\n",[98,4848,4849,4852,4854],{"class":100,"line":2704},[98,4850,4851],{"class":108},"prompt ",[98,4853,188],{"class":121},[98,4855,259],{"class":121},[98,4857,4858,4861,4863,4865,4867,4869,4871,4873,4875,4877,4879,4881,4883,4885,4887,4890,4892],{"class":100,"line":2709},[98,4859,4860],{"class":121},"    {",[98,4862,239],{"class":121},[98,4864,270],{"class":194},[98,4866,239],{"class":121},[98,4868,275],{"class":121},[98,4870,191],{"class":121},[98,4872,280],{"class":194},[98,4874,239],{"class":121},[98,4876,143],{"class":121},[98,4878,191],{"class":121},[98,4880,289],{"class":194},[98,4882,239],{"class":121},[98,4884,275],{"class":121},[98,4886,191],{"class":121},[98,4888,4889],{"class":194},"What is MemOS?",[98,4891,239],{"class":121},[98,4893,303],{"class":121},[98,4895,4896,4898,4900,4902,4904,4906,4908,4910,4912,4914,4916,4918,4920,4922,4924,4927,4929],{"class":100,"line":2714},[98,4897,4860],{"class":121},[98,4899,239],{"class":121},[98,4901,270],{"class":194},[98,4903,239],{"class":121},[98,4905,275],{"class":121},[98,4907,191],{"class":121},[98,4909,321],{"class":194},[98,4911,239],{"class":121},[98,4913,143],{"class":121},[98,4915,191],{"class":121},[98,4917,289],{"class":194},[98,4919,239],{"class":121},[98,4921,275],{"class":121},[98,4923,191],{"class":121},[98,4925,4926],{"class":194},"MemOS is a memory operating system for LLMs.",[98,4928,239],{"class":121},[98,4930,303],{"class":121},[98,4932,4933],{"class":100,"line":2725},[98,4934,4426],{"class":121},[98,4936,4937,4939,4941,4943,4946,4948],{"class":100,"line":2736},[98,4938,494],{"class":209},[98,4940,483],{"class":121},[98,4942,239],{"class":121},[98,4944,4945],{"class":194},"===== Extract KVCacheItem =====",[98,4947,239],{"class":121},[98,4949,465],{"class":121},[98,4951,4952,4955,4957,4960,4962,4965,4967,4970],{"class":100,"line":2751},[98,4953,4954],{"class":108},"cache_item ",[98,4956,188],{"class":121},[98,4958,4959],{"class":108}," kv_mem",[98,4961,122],{"class":121},[98,4963,4964],{"class":209},"extract",[98,4966,483],{"class":121},[98,4968,4969],{"class":209},"prompt",[98,4971,465],{"class":121},[98,4973,4974,4976,4978,4981,4983,4985,4987,4989,4991,4994,4997,4999,5001,5003,5005,5008,5010,5013],{"class":100,"line":2766},[98,4975,494],{"class":209},[98,4977,483],{"class":121},[98,4979,4980],{"class":209},"json",[98,4982,122],{"class":121},[98,4984,645],{"class":209},[98,4986,483],{"class":121},[98,4988,4405],{"class":209},[98,4990,483],{"class":121},[98,4992,4993],{"class":209},"cache_item",[98,4995,4996],{"class":121},"),",[98,4998,655],{"class":218},[98,5000,188],{"class":121},[98,5002,661],{"class":660},[98,5004,143],{"class":121},[98,5006,5007],{"class":218}," default",[98,5009,188],{"class":121},[98,5011,5012],{"class":4392},"str",[98,5014,5015],{"class":121},"))\n",[98,5017,5018],{"class":100,"line":2773},[98,5019,179],{"emptyLinePlaceholder":178},[98,5021,5022],{"class":100,"line":2778},[98,5023,5024],{"class":4642},"# 将缓存添加到内存中\n",[98,5026,5027,5030,5032,5035,5038,5040],{"class":100,"line":2783},[98,5028,5029],{"class":108},"kv_mem",[98,5031,122],{"class":121},[98,5033,5034],{"class":209},"add",[98,5036,5037],{"class":121},"([",[98,5039,4993],{"class":209},[98,5041,5042],{"class":121},"])\n",[98,5044,5045,5047,5049,5051,5054,5056],{"class":100,"line":2800},[98,5046,494],{"class":209},[98,5048,483],{"class":121},[98,5050,239],{"class":121},[98,5052,5053],{"class":194},"All caches:",[98,5055,239],{"class":121},[98,5057,465],{"class":121},[98,5059,5061,5063,5065,5067,5069,5071,5073,5075,5077,5079,5081,5084,5087,5089,5091,5093,5095,5097,5099,5101],{"class":100,"line":5060},94,[98,5062,494],{"class":209},[98,5064,483],{"class":121},[98,5066,4980],{"class":209},[98,5068,122],{"class":121},[98,5070,645],{"class":209},[98,5072,483],{"class":121},[98,5074,4405],{"class":209},[98,5076,483],{"class":121},[98,5078,5029],{"class":209},[98,5080,122],{"class":121},[98,5082,5083],{"class":209},"get_all",[98,5085,5086],{"class":121},"()),",[98,5088,655],{"class":218},[98,5090,188],{"class":121},[98,5092,661],{"class":660},[98,5094,143],{"class":121},[98,5096,5007],{"class":218},[98,5098,188],{"class":121},[98,5100,5012],{"class":4392},[98,5102,5015],{"class":121},[98,5104,5106],{"class":100,"line":5105},95,[98,5107,179],{"emptyLinePlaceholder":178},[98,5109,5111],{"class":100,"line":5110},96,[98,5112,5113],{"class":4642},"# 通过 ID 获取\n",[98,5115,5117,5120,5122,5124,5126,5129,5131,5133,5135,5137],{"class":100,"line":5116},97,[98,5118,5119],{"class":108},"retrieved ",[98,5121,188],{"class":121},[98,5123,4959],{"class":108},[98,5125,122],{"class":121},[98,5127,5128],{"class":209},"get",[98,5130,483],{"class":121},[98,5132,4993],{"class":209},[98,5134,122],{"class":121},[98,5136,2253],{"class":616},[98,5138,465],{"class":121},[98,5140,5142,5144,5146,5148,5151,5153],{"class":100,"line":5141},98,[98,5143,494],{"class":209},[98,5145,483],{"class":121},[98,5147,239],{"class":121},[98,5149,5150],{"class":194},"Retrieved:",[98,5152,239],{"class":121},[98,5154,465],{"class":121},[98,5156,5158,5160,5162,5164,5166,5168,5170,5172,5174,5177,5179,5181,5183,5185,5187,5189,5191,5193],{"class":100,"line":5157},99,[98,5159,494],{"class":209},[98,5161,483],{"class":121},[98,5163,4980],{"class":209},[98,5165,122],{"class":121},[98,5167,645],{"class":209},[98,5169,483],{"class":121},[98,5171,4405],{"class":209},[98,5173,483],{"class":121},[98,5175,5176],{"class":209},"retrieved",[98,5178,4996],{"class":121},[98,5180,655],{"class":218},[98,5182,188],{"class":121},[98,5184,661],{"class":660},[98,5186,143],{"class":121},[98,5188,5007],{"class":218},[98,5190,188],{"class":121},[98,5192,5012],{"class":4392},[98,5194,5015],{"class":121},[98,5196,5198],{"class":100,"line":5197},100,[98,5199,179],{"emptyLinePlaceholder":178},[98,5201,5203],{"class":100,"line":5202},101,[98,5204,5205],{"class":4642},"# 合并缓存\n",[98,5207,5209,5212,5214,5216,5218,5220,5223,5225,5227,5229,5231,5233,5235,5237,5239,5241,5243,5245,5247,5249,5252,5254],{"class":100,"line":5208},102,[98,5210,5211],{"class":108},"item2 ",[98,5213,188],{"class":121},[98,5215,4959],{"class":108},[98,5217,122],{"class":121},[98,5219,4964],{"class":209},[98,5221,5222],{"class":121},"([{",[98,5224,239],{"class":121},[98,5226,270],{"class":194},[98,5228,239],{"class":121},[98,5230,275],{"class":121},[98,5232,191],{"class":121},[98,5234,280],{"class":194},[98,5236,239],{"class":121},[98,5238,143],{"class":121},[98,5240,191],{"class":121},[98,5242,289],{"class":194},[98,5244,239],{"class":121},[98,5246,275],{"class":121},[98,5248,191],{"class":121},[98,5250,5251],{"class":194},"Tell me a joke.",[98,5253,239],{"class":121},[98,5255,5256],{"class":121},"}])\n",[98,5258,5260,5262,5264,5266,5268,5271],{"class":100,"line":5259},103,[98,5261,5029],{"class":108},[98,5263,122],{"class":121},[98,5265,5034],{"class":209},[98,5267,5037],{"class":121},[98,5269,5270],{"class":209},"item2",[98,5272,5042],{"class":121},[98,5274,5276,5279,5281,5283,5285,5288,5290,5292,5294,5296,5298,5301,5303,5305],{"class":100,"line":5275},104,[98,5277,5278],{"class":108},"merged ",[98,5280,188],{"class":121},[98,5282,4959],{"class":108},[98,5284,122],{"class":121},[98,5286,5287],{"class":209},"get_cache",[98,5289,5037],{"class":121},[98,5291,4993],{"class":209},[98,5293,122],{"class":121},[98,5295,2253],{"class":616},[98,5297,143],{"class":121},[98,5299,5300],{"class":209}," item2",[98,5302,122],{"class":121},[98,5304,2253],{"class":616},[98,5306,5042],{"class":121},[98,5308,5310,5312,5314,5316,5319,5321],{"class":100,"line":5309},105,[98,5311,494],{"class":209},[98,5313,483],{"class":121},[98,5315,239],{"class":121},[98,5317,5318],{"class":194},"Merged cache:",[98,5320,239],{"class":121},[98,5322,465],{"class":121},[98,5324,5326,5328,5330,5332,5334,5336,5338,5340,5342,5345,5347,5349,5351,5353,5355,5357,5359,5361],{"class":100,"line":5325},106,[98,5327,494],{"class":209},[98,5329,483],{"class":121},[98,5331,4980],{"class":209},[98,5333,122],{"class":121},[98,5335,645],{"class":209},[98,5337,483],{"class":121},[98,5339,4405],{"class":209},[98,5341,483],{"class":121},[98,5343,5344],{"class":209},"merged",[98,5346,4996],{"class":121},[98,5348,655],{"class":218},[98,5350,188],{"class":121},[98,5352,661],{"class":660},[98,5354,143],{"class":121},[98,5356,5007],{"class":218},[98,5358,188],{"class":121},[98,5360,5012],{"class":4392},[98,5362,5015],{"class":121},[98,5364,5366],{"class":100,"line":5365},107,[98,5367,179],{"emptyLinePlaceholder":178},[98,5369,5371],{"class":100,"line":5370},108,[98,5372,5373],{"class":4642},"# 删除其中一个\n",[98,5375,5377,5379,5381,5384,5386,5388,5390,5392],{"class":100,"line":5376},109,[98,5378,5029],{"class":108},[98,5380,122],{"class":121},[98,5382,5383],{"class":209},"delete",[98,5385,5037],{"class":121},[98,5387,4993],{"class":209},[98,5389,122],{"class":121},[98,5391,2253],{"class":616},[98,5393,5042],{"class":121},[98,5395,5397,5399,5401,5403,5406,5408],{"class":100,"line":5396},110,[98,5398,494],{"class":209},[98,5400,483],{"class":121},[98,5402,239],{"class":121},[98,5404,5405],{"class":194},"After delete:",[98,5407,239],{"class":121},[98,5409,465],{"class":121},[98,5411,5413,5415,5417,5419,5421,5423,5425,5427,5429,5431,5433,5435,5437,5439,5441,5443,5445,5447,5449,5451],{"class":100,"line":5412},111,[98,5414,494],{"class":209},[98,5416,483],{"class":121},[98,5418,4980],{"class":209},[98,5420,122],{"class":121},[98,5422,645],{"class":209},[98,5424,483],{"class":121},[98,5426,4405],{"class":209},[98,5428,483],{"class":121},[98,5430,5029],{"class":209},[98,5432,122],{"class":121},[98,5434,5083],{"class":209},[98,5436,5086],{"class":121},[98,5438,655],{"class":218},[98,5440,188],{"class":121},[98,5442,661],{"class":660},[98,5444,143],{"class":121},[98,5446,5007],{"class":218},[98,5448,188],{"class":121},[98,5450,5012],{"class":4392},[98,5452,5015],{"class":121},[98,5454,5456],{"class":100,"line":5455},112,[98,5457,179],{"emptyLinePlaceholder":178},[98,5459,5461],{"class":100,"line":5460},113,[98,5462,5463],{"class":4642},"# 导出和加载缓存\n",[98,5465,5467,5469,5471,5474,5476,5478,5481,5483],{"class":100,"line":5466},114,[98,5468,5029],{"class":108},[98,5470,122],{"class":121},[98,5472,5473],{"class":209},"dump",[98,5475,483],{"class":121},[98,5477,239],{"class":121},[98,5479,5480],{"class":194},"tmp\u002Fkv_mem",[98,5482,239],{"class":121},[98,5484,465],{"class":121},[98,5486,5488,5490,5492,5494,5497,5499],{"class":100,"line":5487},115,[98,5489,494],{"class":209},[98,5491,483],{"class":121},[98,5493,239],{"class":121},[98,5495,5496],{"class":194},"Dumped to tmp\u002Fkv_mem",[98,5498,239],{"class":121},[98,5500,465],{"class":121},[98,5502,5504,5506,5508,5511],{"class":100,"line":5503},116,[98,5505,5029],{"class":108},[98,5507,122],{"class":121},[98,5509,5510],{"class":209},"delete_all",[98,5512,3877],{"class":121},[98,5514,5516,5518,5520,5523,5525,5527,5529,5531],{"class":100,"line":5515},117,[98,5517,5029],{"class":108},[98,5519,122],{"class":121},[98,5521,5522],{"class":209},"load",[98,5524,483],{"class":121},[98,5526,239],{"class":121},[98,5528,5480],{"class":194},[98,5530,239],{"class":121},[98,5532,465],{"class":121},[98,5534,5536,5538,5540,5542,5545,5547],{"class":100,"line":5535},118,[98,5537,494],{"class":209},[98,5539,483],{"class":121},[98,5541,239],{"class":121},[98,5543,5544],{"class":194},"Loaded caches:",[98,5546,239],{"class":121},[98,5548,465],{"class":121},[98,5550,5552,5554,5556,5558,5560,5562,5564,5566,5568,5570,5572,5574,5576,5578,5580,5582,5584,5586,5588,5590],{"class":100,"line":5551},119,[98,5553,494],{"class":209},[98,5555,483],{"class":121},[98,5557,4980],{"class":209},[98,5559,122],{"class":121},[98,5561,645],{"class":209},[98,5563,483],{"class":121},[98,5565,4405],{"class":209},[98,5567,483],{"class":121},[98,5569,5029],{"class":209},[98,5571,122],{"class":121},[98,5573,5083],{"class":209},[98,5575,5086],{"class":121},[98,5577,655],{"class":218},[98,5579,188],{"class":121},[98,5581,661],{"class":660},[98,5583,143],{"class":121},[98,5585,5007],{"class":218},[98,5587,188],{"class":121},[98,5589,5012],{"class":4392},[98,5591,5015],{"class":121},[56,5593,5595],{"id":5594},"示例-5记忆调度","示例 5：记忆调度",[61,5597,64],{"id":5598},"何时使用-4",[66,5600,5601,5604,5607],{},[69,5602,5603],{},"你希望自定义记忆调度逻辑或扩展后台任务，以异步触发的方式不断对记忆进行管理和优化。",[69,5605,5606],{},"适用于 SaaS 智能体或多会轮对话的LLM应用任务。",[69,5608,5609],{},"展示 MemScheduler的记忆管理任务设置与运行方式。",[61,5611,78],{"id":5612},"关键点-4",[66,5614,5615,5622,5633],{},[69,5616,5617,5618,5621],{},"通过 ",[95,5619,5620],{},"mem_scheduler.register_handlers"," 注册自定义回调。",[69,5623,5624,5625,5628,5629,5632],{},"使用 ",[95,5626,5627],{},"add_handler"," 和 ",[95,5630,5631],{},"chat_stream_playground"," 进行交互。",[69,5634,5635],{},"演示了如何获取和使用从环境量初始化完成的MemScheduler实例。",[61,5637,86],{"id":5638},"完整示例代码-4",[88,5640,5642],{"className":90,"code":5641,"language":92,"meta":93,"style":93},"import asyncio\nimport json\nimport os\nimport sys\nimport time\n\nfrom pathlib import Path\n\n\n# 在依赖路径的导入之前设置路径\nFILE_PATH = Path(__file__).absolute()\nBASE_DIR = FILE_PATH.parent.parent.parent\nsys.path.insert(0, str(BASE_DIR))  # 启用从任何工作目录执行\n\n# 在导入 server_router 之前设置环境变量，以确保组件正确初始化\nos.environ[\"ENABLE_CHAT_API\"] = \"true\"\n\nfrom memos.api.product_models import APIADDRequest, ChatPlaygroundRequest  # noqa: E402\n\n# 从 server_router 导入以进行初始化\nfrom memos.api.routers.server_router import (  # noqa: E402\n    add_handler,\n    chat_stream_playground,\n    mem_scheduler,\n)\nfrom memos.log import get_logger  # noqa: E402\nfrom memos.mem_scheduler.schemas.message_schemas import ScheduleMessageItem  # noqa: E402\nfrom memos.mem_scheduler.schemas.task_schemas import (  # noqa: E402\n    MEM_UPDATE_TASK_LABEL,\n    QUERY_TASK_LABEL,\n)\n\n\nlogger = get_logger(__name__)\n\n\ndef init_task():\n    conversations = [\n        {\"role\": \"user\", \"content\": \"I just adopted a golden retriever puppy yesterday.\"},\n        {\"role\": \"assistant\", \"content\": \"Congratulations! What did you name your new puppy?\"},\n        {\n            \"role\": \"user\",\n            \"content\": \"His name is Max. I live near Central Park in New York where we'll walk daily.\",\n        },\n        {\"role\": \"assistant\", \"content\": \"Max will love those walks! Any favorite treats for him?\"},\n        {\n            \"role\": \"user\",\n            \"content\": \"He loves peanut butter biscuits. Personally, I'm allergic to nuts though.\",\n        },\n        {\"role\": \"assistant\", \"content\": \"Good to know about your allergy. I'll note that.\"},\n        # 问题 1 (宠物) - 名字\n        {\"role\": \"user\", \"content\": \"What's my dog's name again?\"},\n        {\"role\": \"assistant\", \"content\": \"Your dog is named Max.\"},\n        # 问题 2 (宠物) - 品种\n        {\"role\": \"user\", \"content\": \"Can you remind me what breed Max is?\"},\n        {\"role\": \"assistant\", \"content\": \"Max is a golden retriever.\"},\n        # 问题 3 (宠物) - 零食\n        {\"role\": \"user\", \"content\": \"What treats does Max like?\"},\n        {\"role\": \"assistant\", \"content\": \"He loves peanut butter biscuits.\"},\n        # 问题 4 (地址)\n        {\"role\": \"user\", \"content\": \"Where did I say I live?\"},\n        {\"role\": \"assistant\", \"content\": \"You live near Central Park in New York.\"},\n        # 问题 5 (过敏)\n        {\"role\": \"user\", \"content\": \"What food should I avoid due to allergy?\"},\n        {\"role\": \"assistant\", \"content\": \"You're allergic to nuts.\"},\n        {\"role\": \"user\", \"content\": \"Perfect, just wanted to check what you remembered.\"},\n        {\"role\": \"assistant\", \"content\": \"Happy to help! Let me know if you need anything else.\"},\n    ]\n\n    questions = [\n        {\"question\": \"What's my dog's name again?\", \"category\": \"Pet\"},\n        {\"question\": \"Can you remind me what breed Max is?\", \"category\": \"Pet\"},\n        {\"question\": \"What treats does Max like?\", \"category\": \"Pet\"},\n        {\"question\": \"Where did I say I live?\", \"category\": \"Address\"},\n        {\"question\": \"What food should I avoid due to allergy?\", \"category\": \"Allergy\"},\n    ]\n    return conversations, questions\n\n\nworking_memories = []\n\n\n# 定义自定义查询处理函数\ndef custom_query_handler(messages: list[ScheduleMessageItem]):\n    for msg in messages:\n        # 打印用户输入内容\n        print(f\"\\n[scheduler] User input query: {msg.content}\")\n        # 手动构造带有 MEM_UPDATE 标签的新消息以触发记忆更新\n        new_msg = msg.model_copy(update={\"label\": MEM_UPDATE_TASK_LABEL})\n        # 提交消息给调度器处理\n        mem_scheduler.submit_messages([new_msg])\n\n\n# 定义自定义记忆更新处理函数\ndef custom_mem_update_handler(messages: list[ScheduleMessageItem]):\n    global working_memories\n    search_args = {}\n    top_k = 2\n    for msg in messages:\n        # 在文本记忆中搜索与当前内容相关的记忆（返回 top_k=2）\n        results = mem_scheduler.retriever.search(\n            query=msg.content,\n            user_id=msg.user_id,\n            mem_cube_id=msg.mem_cube_id,\n            mem_cube=mem_scheduler.current_mem_cube,\n            top_k=top_k,\n            method=mem_scheduler.search_method,\n            search_args=search_args,\n        )\n        working_memories.extend(results)\n        working_memories = working_memories[-5:]\n        for mem in results:\n            print(f\"\\n[scheduler] Retrieved memory: {mem.memory}\")\n\n\nasync def run_with_scheduler():\n    print(\"==== run_with_automatic_scheduler_init ====\")\n    conversations, questions = init_task()\n\n    # 使用 server_router 组件进行初始化\n    # 配置通过 init_server() 中的环境变量加载\n\n    user_id = \"user_1\"\n    mem_cube_id = \"mem_cube_5\"\n\n    print(f\"Adding conversations for user {user_id}...\")\n\n    # 使用 add_handler 添加记忆\n    add_req = APIADDRequest(\n        user_id=user_id,\n        writable_cube_ids=[mem_cube_id],\n        messages=conversations,\n        async_mode=\"sync\",  # 在此示例中使用同步模式以便立即添加\n    )\n    add_handler.handle_add_memories(add_req)\n\n    for item in questions:\n        print(\"===== Chat Start =====\")\n        query = item[\"question\"]\n        print(f\"Query:\\n {query}\\n\")\n\n        # 使用 chat_handler 进行聊天\n        chat_req = ChatPlaygroundRequest(\n            user_id=user_id,\n            query=query,\n            readable_cube_ids=[mem_cube_id],\n            writable_cube_ids=[mem_cube_id],\n        )\n        response = chat_stream_playground(chat_req)\n\n        answer = \"\"\n        buffer = \"\"\n        async for chunk in response.body_iterator:\n            if isinstance(chunk, bytes):\n                chunk = chunk.decode(\"utf-8\")\n            buffer += chunk\n            while \"\\n\\n\" in buffer:\n                msg, buffer = buffer.split(\"\\n\\n\", 1)\n                for line in msg.split(\"\\n\"):\n                    if line.startswith(\"data: \"):\n                        json_str = line[6:]\n                        try:\n                            data = json.loads(json_str)\n                            if data.get(\"type\") == \"text\":\n                                answer += data[\"data\"]\n                        except json.JSONDecodeError:\n                            pass\n        print(f\"\\nAnswer: {answer}\")\n\n\nif __name__ == \"__main__\":\n    mem_scheduler.register_handlers(\n        {\n            QUERY_TASK_LABEL: custom_query_handler,  # 查询任务\n            MEM_UPDATE_TASK_LABEL: custom_mem_update_handler,  # 记忆更新任务\n        }\n    )\n\n    asyncio.run(run_with_scheduler())\n\n    time.sleep(20)\n    mem_scheduler.stop()\n",[95,5643,5644,5651,5657,5664,5671,5678,5682,5694,5698,5702,5707,5729,5753,5788,5792,5797,5827,5831,5857,5861,5866,5891,5898,5905,5912,5916,5934,5962,5987,5994,6001,6005,6009,6013,6030,6034,6038,6048,6057,6095,6132,6136,6154,6173,6177,6214,6218,6236,6255,6259,6296,6301,6338,6375,6380,6417,6454,6459,6496,6533,6538,6575,6612,6617,6654,6691,6728,6765,6769,6773,6782,6821,6857,6893,6930,6967,6971,6983,6987,6991,7001,7005,7009,7014,7038,7053,7058,7090,7095,7133,7138,7155,7159,7163,7168,7189,7197,7207,7217,7229,7234,7256,7271,7286,7302,7318,7330,7346,7358,7363,7380,7398,7412,7443,7447,7451,7464,7480,7496,7500,7506,7512,7517,7532,7547,7552,7575,7580,7586,7598,7610,7622,7635,7654,7660,7676,7681,7696,7712,7733,7761,7766,7772,7785,7796,7807,7819,7831,7836,7854,7859,7870,7880,7903,7922,7949,7960,7980,8015,8042,8067,8083,8091,8113,8147,8168,8183,8189,8216,8221,8226,8247,8259,8264,8279,8294,8299,8304,8309,8328,8333,8351],{"__ignoreMap":93},[98,5645,5646,5648],{"class":100,"line":101},[98,5647,105],{"class":104},[98,5649,5650],{"class":108}," asyncio\n",[98,5652,5653,5655],{"class":100,"line":112},[98,5654,105],{"class":104},[98,5656,109],{"class":108},[98,5658,5659,5661],{"class":100,"line":149},[98,5660,105],{"class":104},[98,5662,5663],{"class":108}," os\n",[98,5665,5666,5668],{"class":100,"line":175},[98,5667,105],{"class":104},[98,5669,5670],{"class":108}," sys\n",[98,5672,5673,5675],{"class":100,"line":182},[98,5674,105],{"class":104},[98,5676,5677],{"class":108}," time\n",[98,5679,5680],{"class":100,"line":201},[98,5681,179],{"emptyLinePlaceholder":178},[98,5683,5684,5686,5689,5691],{"class":100,"line":215},[98,5685,115],{"class":104},[98,5687,5688],{"class":108}," pathlib ",[98,5690,105],{"class":104},[98,5692,5693],{"class":108}," Path\n",[98,5695,5696],{"class":100,"line":230},[98,5697,179],{"emptyLinePlaceholder":178},[98,5699,5700],{"class":100,"line":250},[98,5701,179],{"emptyLinePlaceholder":178},[98,5703,5704],{"class":100,"line":262},[98,5705,5706],{"class":4642},"# 在依赖路径的导入之前设置路径\n",[98,5708,5709,5712,5714,5717,5719,5722,5724,5727],{"class":100,"line":306},[98,5710,5711],{"class":108},"FILE_PATH ",[98,5713,188],{"class":121},[98,5715,5716],{"class":209}," Path",[98,5718,483],{"class":121},[98,5720,5721],{"class":108},"__file__",[98,5723,613],{"class":121},[98,5725,5726],{"class":209},"absolute",[98,5728,3877],{"class":121},[98,5730,5731,5734,5736,5739,5741,5744,5746,5748,5750],{"class":100,"line":345},[98,5732,5733],{"class":108},"BASE_DIR ",[98,5735,188],{"class":121},[98,5737,5738],{"class":108}," FILE_PATH",[98,5740,122],{"class":121},[98,5742,5743],{"class":616},"parent",[98,5745,122],{"class":121},[98,5747,5743],{"class":616},[98,5749,122],{"class":121},[98,5751,5752],{"class":616},"parent\n",[98,5754,5755,5758,5760,5763,5765,5768,5770,5773,5775,5777,5779,5782,5785],{"class":100,"line":383},[98,5756,5757],{"class":108},"sys",[98,5759,122],{"class":121},[98,5761,5762],{"class":616},"path",[98,5764,122],{"class":121},[98,5766,5767],{"class":209},"insert",[98,5769,483],{"class":121},[98,5771,5772],{"class":660},"0",[98,5774,143],{"class":121},[98,5776,4623],{"class":4392},[98,5778,483],{"class":121},[98,5780,5781],{"class":209},"BASE_DIR",[98,5783,5784],{"class":121},"))",[98,5786,5787],{"class":4642},"  # 启用从任何工作目录执行\n",[98,5789,5790],{"class":100,"line":422},[98,5791,179],{"emptyLinePlaceholder":178},[98,5793,5794],{"class":100,"line":428},[98,5795,5796],{"class":4642},"# 在导入 server_router 之前设置环境变量，以确保组件正确初始化\n",[98,5798,5799,5802,5804,5807,5809,5811,5814,5816,5818,5820,5822,5825],{"class":100,"line":445},[98,5800,5801],{"class":108},"os",[98,5803,122],{"class":121},[98,5805,5806],{"class":616},"environ",[98,5808,1648],{"class":121},[98,5810,239],{"class":121},[98,5812,5813],{"class":194},"ENABLE_CHAT_API",[98,5815,239],{"class":121},[98,5817,1834],{"class":121},[98,5819,256],{"class":121},[98,5821,191],{"class":121},[98,5823,5824],{"class":194},"true",[98,5826,198],{"class":121},[98,5828,5829],{"class":100,"line":462},[98,5830,179],{"emptyLinePlaceholder":178},[98,5832,5833,5835,5837,5839,5841,5843,5845,5847,5849,5851,5854],{"class":100,"line":468},[98,5834,115],{"class":104},[98,5836,118],{"class":108},[98,5838,122],{"class":121},[98,5840,125],{"class":108},[98,5842,122],{"class":121},[98,5844,162],{"class":108},[98,5846,105],{"class":104},[98,5848,167],{"class":108},[98,5850,143],{"class":121},[98,5852,5853],{"class":108}," ChatPlaygroundRequest  ",[98,5855,5856],{"class":4642},"# noqa: E402\n",[98,5858,5859],{"class":100,"line":473},[98,5860,179],{"emptyLinePlaceholder":178},[98,5862,5863],{"class":100,"line":491},[98,5864,5865],{"class":4642},"# 从 server_router 导入以进行初始化\n",[98,5867,5868,5870,5872,5874,5876,5878,5880,5882,5884,5886,5888],{"class":100,"line":516},[98,5869,115],{"class":104},[98,5871,118],{"class":108},[98,5873,122],{"class":121},[98,5875,125],{"class":108},[98,5877,122],{"class":121},[98,5879,130],{"class":108},[98,5881,122],{"class":121},[98,5883,135],{"class":108},[98,5885,105],{"class":104},[98,5887,4329],{"class":121},[98,5889,5890],{"class":4642},"  # noqa: E402\n",[98,5892,5893,5896],{"class":100,"line":521},[98,5894,5895],{"class":108},"    add_handler",[98,5897,227],{"class":121},[98,5899,5900,5903],{"class":100,"line":534},[98,5901,5902],{"class":108},"    chat_stream_playground",[98,5904,227],{"class":121},[98,5906,5907,5910],{"class":100,"line":545},[98,5908,5909],{"class":108},"    mem_scheduler",[98,5911,227],{"class":121},[98,5913,5914],{"class":100,"line":561},[98,5915,465],{"class":121},[98,5917,5918,5920,5922,5924,5927,5929,5932],{"class":100,"line":578},[98,5919,115],{"class":104},[98,5921,118],{"class":108},[98,5923,122],{"class":121},[98,5925,5926],{"class":108},"log ",[98,5928,105],{"class":104},[98,5930,5931],{"class":108}," get_logger  ",[98,5933,5856],{"class":4642},[98,5935,5936,5938,5940,5942,5945,5947,5950,5952,5955,5957,5960],{"class":100,"line":587},[98,5937,115],{"class":104},[98,5939,118],{"class":108},[98,5941,122],{"class":121},[98,5943,5944],{"class":108},"mem_scheduler",[98,5946,122],{"class":121},[98,5948,5949],{"class":108},"schemas",[98,5951,122],{"class":121},[98,5953,5954],{"class":108},"message_schemas ",[98,5956,105],{"class":104},[98,5958,5959],{"class":108}," ScheduleMessageItem  ",[98,5961,5856],{"class":4642},[98,5963,5964,5966,5968,5970,5972,5974,5976,5978,5981,5983,5985],{"class":100,"line":592},[98,5965,115],{"class":104},[98,5967,118],{"class":108},[98,5969,122],{"class":121},[98,5971,5944],{"class":108},[98,5973,122],{"class":121},[98,5975,5949],{"class":108},[98,5977,122],{"class":121},[98,5979,5980],{"class":108},"task_schemas ",[98,5982,105],{"class":104},[98,5984,4329],{"class":121},[98,5986,5890],{"class":4642},[98,5988,5989,5992],{"class":100,"line":597},[98,5990,5991],{"class":108},"    MEM_UPDATE_TASK_LABEL",[98,5993,227],{"class":121},[98,5995,5996,5999],{"class":100,"line":620},[98,5997,5998],{"class":108},"    QUERY_TASK_LABEL",[98,6000,227],{"class":121},[98,6002,6003],{"class":100,"line":1178},[98,6004,465],{"class":121},[98,6006,6007],{"class":100,"line":1197},[98,6008,179],{"emptyLinePlaceholder":178},[98,6010,6011],{"class":100,"line":1215},[98,6012,179],{"emptyLinePlaceholder":178},[98,6014,6015,6018,6020,6023,6025,6028],{"class":100,"line":1221},[98,6016,6017],{"class":108},"logger ",[98,6019,188],{"class":121},[98,6021,6022],{"class":209}," get_logger",[98,6024,483],{"class":121},[98,6026,6027],{"class":108},"__name__",[98,6029,465],{"class":121},[98,6031,6032],{"class":100,"line":1226},[98,6033,179],{"emptyLinePlaceholder":178},[98,6035,6036],{"class":100,"line":1232},[98,6037,179],{"emptyLinePlaceholder":178},[98,6039,6040,6042,6045],{"class":100,"line":1237},[98,6041,3675],{"class":3674},[98,6043,6044],{"class":209}," init_task",[98,6046,6047],{"class":121},"():\n",[98,6049,6050,6053,6055],{"class":100,"line":1252},[98,6051,6052],{"class":108},"    conversations ",[98,6054,188],{"class":121},[98,6056,259],{"class":121},[98,6058,6059,6062,6064,6066,6068,6070,6072,6074,6076,6078,6080,6082,6084,6086,6088,6091,6093],{"class":100,"line":1267},[98,6060,6061],{"class":121},"        {",[98,6063,239],{"class":121},[98,6065,270],{"class":194},[98,6067,239],{"class":121},[98,6069,275],{"class":121},[98,6071,191],{"class":121},[98,6073,280],{"class":194},[98,6075,239],{"class":121},[98,6077,143],{"class":121},[98,6079,191],{"class":121},[98,6081,289],{"class":194},[98,6083,239],{"class":121},[98,6085,275],{"class":121},[98,6087,191],{"class":121},[98,6089,6090],{"class":194},"I just adopted a golden retriever puppy yesterday.",[98,6092,239],{"class":121},[98,6094,303],{"class":121},[98,6096,6097,6099,6101,6103,6105,6107,6109,6111,6113,6115,6117,6119,6121,6123,6125,6128,6130],{"class":100,"line":1272},[98,6098,6061],{"class":121},[98,6100,239],{"class":121},[98,6102,270],{"class":194},[98,6104,239],{"class":121},[98,6106,275],{"class":121},[98,6108,191],{"class":121},[98,6110,321],{"class":194},[98,6112,239],{"class":121},[98,6114,143],{"class":121},[98,6116,191],{"class":121},[98,6118,289],{"class":194},[98,6120,239],{"class":121},[98,6122,275],{"class":121},[98,6124,191],{"class":121},[98,6126,6127],{"class":194},"Congratulations! What did you name your new puppy?",[98,6129,239],{"class":121},[98,6131,303],{"class":121},[98,6133,6134],{"class":100,"line":1277},[98,6135,831],{"class":121},[98,6137,6138,6140,6142,6144,6146,6148,6150,6152],{"class":100,"line":1292},[98,6139,836],{"class":121},[98,6141,270],{"class":194},[98,6143,239],{"class":121},[98,6145,275],{"class":121},[98,6147,191],{"class":121},[98,6149,280],{"class":194},[98,6151,239],{"class":121},[98,6153,227],{"class":121},[98,6155,6156,6158,6160,6162,6164,6166,6169,6171],{"class":100,"line":1313},[98,6157,836],{"class":121},[98,6159,289],{"class":194},[98,6161,239],{"class":121},[98,6163,275],{"class":121},[98,6165,191],{"class":121},[98,6167,6168],{"class":194},"His name is Max. I live near Central Park in New York where we'll walk daily.",[98,6170,239],{"class":121},[98,6172,227],{"class":121},[98,6174,6175],{"class":100,"line":1318},[98,6176,1137],{"class":121},[98,6178,6179,6181,6183,6185,6187,6189,6191,6193,6195,6197,6199,6201,6203,6205,6207,6210,6212],{"class":100,"line":1329},[98,6180,6061],{"class":121},[98,6182,239],{"class":121},[98,6184,270],{"class":194},[98,6186,239],{"class":121},[98,6188,275],{"class":121},[98,6190,191],{"class":121},[98,6192,321],{"class":194},[98,6194,239],{"class":121},[98,6196,143],{"class":121},[98,6198,191],{"class":121},[98,6200,289],{"class":194},[98,6202,239],{"class":121},[98,6204,275],{"class":121},[98,6206,191],{"class":121},[98,6208,6209],{"class":194},"Max will love those walks! Any favorite treats for him?",[98,6211,239],{"class":121},[98,6213,303],{"class":121},[98,6215,6216],{"class":100,"line":1340},[98,6217,831],{"class":121},[98,6219,6220,6222,6224,6226,6228,6230,6232,6234],{"class":100,"line":1355},[98,6221,836],{"class":121},[98,6223,270],{"class":194},[98,6225,239],{"class":121},[98,6227,275],{"class":121},[98,6229,191],{"class":121},[98,6231,280],{"class":194},[98,6233,239],{"class":121},[98,6235,227],{"class":121},[98,6237,6238,6240,6242,6244,6246,6248,6251,6253],{"class":100,"line":1371},[98,6239,836],{"class":121},[98,6241,289],{"class":194},[98,6243,239],{"class":121},[98,6245,275],{"class":121},[98,6247,191],{"class":121},[98,6249,6250],{"class":194},"He loves peanut butter biscuits. Personally, I'm allergic to nuts though.",[98,6252,239],{"class":121},[98,6254,227],{"class":121},[98,6256,6257],{"class":100,"line":1379},[98,6258,1137],{"class":121},[98,6260,6261,6263,6265,6267,6269,6271,6273,6275,6277,6279,6281,6283,6285,6287,6289,6292,6294],{"class":100,"line":1384},[98,6262,6061],{"class":121},[98,6264,239],{"class":121},[98,6266,270],{"class":194},[98,6268,239],{"class":121},[98,6270,275],{"class":121},[98,6272,191],{"class":121},[98,6274,321],{"class":194},[98,6276,239],{"class":121},[98,6278,143],{"class":121},[98,6280,191],{"class":121},[98,6282,289],{"class":194},[98,6284,239],{"class":121},[98,6286,275],{"class":121},[98,6288,191],{"class":121},[98,6290,6291],{"class":194},"Good to know about your allergy. I'll note that.",[98,6293,239],{"class":121},[98,6295,303],{"class":121},[98,6297,6298],{"class":100,"line":1401},[98,6299,6300],{"class":4642},"        # 问题 1 (宠物) - 名字\n",[98,6302,6303,6305,6307,6309,6311,6313,6315,6317,6319,6321,6323,6325,6327,6329,6331,6334,6336],{"class":100,"line":2356},[98,6304,6061],{"class":121},[98,6306,239],{"class":121},[98,6308,270],{"class":194},[98,6310,239],{"class":121},[98,6312,275],{"class":121},[98,6314,191],{"class":121},[98,6316,280],{"class":194},[98,6318,239],{"class":121},[98,6320,143],{"class":121},[98,6322,191],{"class":121},[98,6324,289],{"class":194},[98,6326,239],{"class":121},[98,6328,275],{"class":121},[98,6330,191],{"class":121},[98,6332,6333],{"class":194},"What's my dog's name again?",[98,6335,239],{"class":121},[98,6337,303],{"class":121},[98,6339,6340,6342,6344,6346,6348,6350,6352,6354,6356,6358,6360,6362,6364,6366,6368,6371,6373],{"class":100,"line":2361},[98,6341,6061],{"class":121},[98,6343,239],{"class":121},[98,6345,270],{"class":194},[98,6347,239],{"class":121},[98,6349,275],{"class":121},[98,6351,191],{"class":121},[98,6353,321],{"class":194},[98,6355,239],{"class":121},[98,6357,143],{"class":121},[98,6359,191],{"class":121},[98,6361,289],{"class":194},[98,6363,239],{"class":121},[98,6365,275],{"class":121},[98,6367,191],{"class":121},[98,6369,6370],{"class":194},"Your dog is named Max.",[98,6372,239],{"class":121},[98,6374,303],{"class":121},[98,6376,6377],{"class":100,"line":2366},[98,6378,6379],{"class":4642},"        # 问题 2 (宠物) - 品种\n",[98,6381,6382,6384,6386,6388,6390,6392,6394,6396,6398,6400,6402,6404,6406,6408,6410,6413,6415],{"class":100,"line":2371},[98,6383,6061],{"class":121},[98,6385,239],{"class":121},[98,6387,270],{"class":194},[98,6389,239],{"class":121},[98,6391,275],{"class":121},[98,6393,191],{"class":121},[98,6395,280],{"class":194},[98,6397,239],{"class":121},[98,6399,143],{"class":121},[98,6401,191],{"class":121},[98,6403,289],{"class":194},[98,6405,239],{"class":121},[98,6407,275],{"class":121},[98,6409,191],{"class":121},[98,6411,6412],{"class":194},"Can you remind me what breed Max is?",[98,6414,239],{"class":121},[98,6416,303],{"class":121},[98,6418,6419,6421,6423,6425,6427,6429,6431,6433,6435,6437,6439,6441,6443,6445,6447,6450,6452],{"class":100,"line":2376},[98,6420,6061],{"class":121},[98,6422,239],{"class":121},[98,6424,270],{"class":194},[98,6426,239],{"class":121},[98,6428,275],{"class":121},[98,6430,191],{"class":121},[98,6432,321],{"class":194},[98,6434,239],{"class":121},[98,6436,143],{"class":121},[98,6438,191],{"class":121},[98,6440,289],{"class":194},[98,6442,239],{"class":121},[98,6444,275],{"class":121},[98,6446,191],{"class":121},[98,6448,6449],{"class":194},"Max is a golden retriever.",[98,6451,239],{"class":121},[98,6453,303],{"class":121},[98,6455,6456],{"class":100,"line":2396},[98,6457,6458],{"class":4642},"        # 问题 3 (宠物) - 零食\n",[98,6460,6461,6463,6465,6467,6469,6471,6473,6475,6477,6479,6481,6483,6485,6487,6489,6492,6494],{"class":100,"line":2416},[98,6462,6061],{"class":121},[98,6464,239],{"class":121},[98,6466,270],{"class":194},[98,6468,239],{"class":121},[98,6470,275],{"class":121},[98,6472,191],{"class":121},[98,6474,280],{"class":194},[98,6476,239],{"class":121},[98,6478,143],{"class":121},[98,6480,191],{"class":121},[98,6482,289],{"class":194},[98,6484,239],{"class":121},[98,6486,275],{"class":121},[98,6488,191],{"class":121},[98,6490,6491],{"class":194},"What treats does Max like?",[98,6493,239],{"class":121},[98,6495,303],{"class":121},[98,6497,6498,6500,6502,6504,6506,6508,6510,6512,6514,6516,6518,6520,6522,6524,6526,6529,6531],{"class":100,"line":2429},[98,6499,6061],{"class":121},[98,6501,239],{"class":121},[98,6503,270],{"class":194},[98,6505,239],{"class":121},[98,6507,275],{"class":121},[98,6509,191],{"class":121},[98,6511,321],{"class":194},[98,6513,239],{"class":121},[98,6515,143],{"class":121},[98,6517,191],{"class":121},[98,6519,289],{"class":194},[98,6521,239],{"class":121},[98,6523,275],{"class":121},[98,6525,191],{"class":121},[98,6527,6528],{"class":194},"He loves peanut butter biscuits.",[98,6530,239],{"class":121},[98,6532,303],{"class":121},[98,6534,6535],{"class":100,"line":2434},[98,6536,6537],{"class":4642},"        # 问题 4 (地址)\n",[98,6539,6540,6542,6544,6546,6548,6550,6552,6554,6556,6558,6560,6562,6564,6566,6568,6571,6573],{"class":100,"line":2453},[98,6541,6061],{"class":121},[98,6543,239],{"class":121},[98,6545,270],{"class":194},[98,6547,239],{"class":121},[98,6549,275],{"class":121},[98,6551,191],{"class":121},[98,6553,280],{"class":194},[98,6555,239],{"class":121},[98,6557,143],{"class":121},[98,6559,191],{"class":121},[98,6561,289],{"class":194},[98,6563,239],{"class":121},[98,6565,275],{"class":121},[98,6567,191],{"class":121},[98,6569,6570],{"class":194},"Where did I say I live?",[98,6572,239],{"class":121},[98,6574,303],{"class":121},[98,6576,6577,6579,6581,6583,6585,6587,6589,6591,6593,6595,6597,6599,6601,6603,6605,6608,6610],{"class":100,"line":2504},[98,6578,6061],{"class":121},[98,6580,239],{"class":121},[98,6582,270],{"class":194},[98,6584,239],{"class":121},[98,6586,275],{"class":121},[98,6588,191],{"class":121},[98,6590,321],{"class":194},[98,6592,239],{"class":121},[98,6594,143],{"class":121},[98,6596,191],{"class":121},[98,6598,289],{"class":194},[98,6600,239],{"class":121},[98,6602,275],{"class":121},[98,6604,191],{"class":121},[98,6606,6607],{"class":194},"You live near Central Park in New York.",[98,6609,239],{"class":121},[98,6611,303],{"class":121},[98,6613,6614],{"class":100,"line":2509},[98,6615,6616],{"class":4642},"        # 问题 5 (过敏)\n",[98,6618,6619,6621,6623,6625,6627,6629,6631,6633,6635,6637,6639,6641,6643,6645,6647,6650,6652],{"class":100,"line":2514},[98,6620,6061],{"class":121},[98,6622,239],{"class":121},[98,6624,270],{"class":194},[98,6626,239],{"class":121},[98,6628,275],{"class":121},[98,6630,191],{"class":121},[98,6632,280],{"class":194},[98,6634,239],{"class":121},[98,6636,143],{"class":121},[98,6638,191],{"class":121},[98,6640,289],{"class":194},[98,6642,239],{"class":121},[98,6644,275],{"class":121},[98,6646,191],{"class":121},[98,6648,6649],{"class":194},"What food should I avoid due to allergy?",[98,6651,239],{"class":121},[98,6653,303],{"class":121},[98,6655,6656,6658,6660,6662,6664,6666,6668,6670,6672,6674,6676,6678,6680,6682,6684,6687,6689],{"class":100,"line":2519},[98,6657,6061],{"class":121},[98,6659,239],{"class":121},[98,6661,270],{"class":194},[98,6663,239],{"class":121},[98,6665,275],{"class":121},[98,6667,191],{"class":121},[98,6669,321],{"class":194},[98,6671,239],{"class":121},[98,6673,143],{"class":121},[98,6675,191],{"class":121},[98,6677,289],{"class":194},[98,6679,239],{"class":121},[98,6681,275],{"class":121},[98,6683,191],{"class":121},[98,6685,6686],{"class":194},"You're allergic to nuts.",[98,6688,239],{"class":121},[98,6690,303],{"class":121},[98,6692,6693,6695,6697,6699,6701,6703,6705,6707,6709,6711,6713,6715,6717,6719,6721,6724,6726],{"class":100,"line":2524},[98,6694,6061],{"class":121},[98,6696,239],{"class":121},[98,6698,270],{"class":194},[98,6700,239],{"class":121},[98,6702,275],{"class":121},[98,6704,191],{"class":121},[98,6706,280],{"class":194},[98,6708,239],{"class":121},[98,6710,143],{"class":121},[98,6712,191],{"class":121},[98,6714,289],{"class":194},[98,6716,239],{"class":121},[98,6718,275],{"class":121},[98,6720,191],{"class":121},[98,6722,6723],{"class":194},"Perfect, just wanted to check what you remembered.",[98,6725,239],{"class":121},[98,6727,303],{"class":121},[98,6729,6730,6732,6734,6736,6738,6740,6742,6744,6746,6748,6750,6752,6754,6756,6758,6761,6763],{"class":100,"line":2543},[98,6731,6061],{"class":121},[98,6733,239],{"class":121},[98,6735,270],{"class":194},[98,6737,239],{"class":121},[98,6739,275],{"class":121},[98,6741,191],{"class":121},[98,6743,321],{"class":194},[98,6745,239],{"class":121},[98,6747,143],{"class":121},[98,6749,191],{"class":121},[98,6751,289],{"class":194},[98,6753,239],{"class":121},[98,6755,275],{"class":121},[98,6757,191],{"class":121},[98,6759,6760],{"class":194},"Happy to help! Let me know if you need anything else.",[98,6762,239],{"class":121},[98,6764,303],{"class":121},[98,6766,6767],{"class":100,"line":2556},[98,6768,1851],{"class":121},[98,6770,6771],{"class":100,"line":2561},[98,6772,179],{"emptyLinePlaceholder":178},[98,6774,6775,6778,6780],{"class":100,"line":2580},[98,6776,6777],{"class":108},"    questions ",[98,6779,188],{"class":121},[98,6781,259],{"class":121},[98,6783,6784,6786,6788,6791,6793,6795,6797,6799,6801,6803,6805,6808,6810,6812,6814,6817,6819],{"class":100,"line":2597},[98,6785,6061],{"class":121},[98,6787,239],{"class":121},[98,6789,6790],{"class":194},"question",[98,6792,239],{"class":121},[98,6794,275],{"class":121},[98,6796,191],{"class":121},[98,6798,6333],{"class":194},[98,6800,239],{"class":121},[98,6802,143],{"class":121},[98,6804,191],{"class":121},[98,6806,6807],{"class":194},"category",[98,6809,239],{"class":121},[98,6811,275],{"class":121},[98,6813,191],{"class":121},[98,6815,6816],{"class":194},"Pet",[98,6818,239],{"class":121},[98,6820,303],{"class":121},[98,6822,6823,6825,6827,6829,6831,6833,6835,6837,6839,6841,6843,6845,6847,6849,6851,6853,6855],{"class":100,"line":2602},[98,6824,6061],{"class":121},[98,6826,239],{"class":121},[98,6828,6790],{"class":194},[98,6830,239],{"class":121},[98,6832,275],{"class":121},[98,6834,191],{"class":121},[98,6836,6412],{"class":194},[98,6838,239],{"class":121},[98,6840,143],{"class":121},[98,6842,191],{"class":121},[98,6844,6807],{"class":194},[98,6846,239],{"class":121},[98,6848,275],{"class":121},[98,6850,191],{"class":121},[98,6852,6816],{"class":194},[98,6854,239],{"class":121},[98,6856,303],{"class":121},[98,6858,6859,6861,6863,6865,6867,6869,6871,6873,6875,6877,6879,6881,6883,6885,6887,6889,6891],{"class":100,"line":2607},[98,6860,6061],{"class":121},[98,6862,239],{"class":121},[98,6864,6790],{"class":194},[98,6866,239],{"class":121},[98,6868,275],{"class":121},[98,6870,191],{"class":121},[98,6872,6491],{"class":194},[98,6874,239],{"class":121},[98,6876,143],{"class":121},[98,6878,191],{"class":121},[98,6880,6807],{"class":194},[98,6882,239],{"class":121},[98,6884,275],{"class":121},[98,6886,191],{"class":121},[98,6888,6816],{"class":194},[98,6890,239],{"class":121},[98,6892,303],{"class":121},[98,6894,6895,6897,6899,6901,6903,6905,6907,6909,6911,6913,6915,6917,6919,6921,6923,6926,6928],{"class":100,"line":2613},[98,6896,6061],{"class":121},[98,6898,239],{"class":121},[98,6900,6790],{"class":194},[98,6902,239],{"class":121},[98,6904,275],{"class":121},[98,6906,191],{"class":121},[98,6908,6570],{"class":194},[98,6910,239],{"class":121},[98,6912,143],{"class":121},[98,6914,191],{"class":121},[98,6916,6807],{"class":194},[98,6918,239],{"class":121},[98,6920,275],{"class":121},[98,6922,191],{"class":121},[98,6924,6925],{"class":194},"Address",[98,6927,239],{"class":121},[98,6929,303],{"class":121},[98,6931,6932,6934,6936,6938,6940,6942,6944,6946,6948,6950,6952,6954,6956,6958,6960,6963,6965],{"class":100,"line":2618},[98,6933,6061],{"class":121},[98,6935,239],{"class":121},[98,6937,6790],{"class":194},[98,6939,239],{"class":121},[98,6941,275],{"class":121},[98,6943,191],{"class":121},[98,6945,6649],{"class":194},[98,6947,239],{"class":121},[98,6949,143],{"class":121},[98,6951,191],{"class":121},[98,6953,6807],{"class":194},[98,6955,239],{"class":121},[98,6957,275],{"class":121},[98,6959,191],{"class":121},[98,6961,6962],{"class":194},"Allergy",[98,6964,239],{"class":121},[98,6966,303],{"class":121},[98,6968,6969],{"class":100,"line":2633},[98,6970,1851],{"class":121},[98,6972,6973,6975,6978,6980],{"class":100,"line":2648},[98,6974,4268],{"class":104},[98,6976,6977],{"class":108}," conversations",[98,6979,143],{"class":121},[98,6981,6982],{"class":108}," questions\n",[98,6984,6985],{"class":100,"line":2653},[98,6986,179],{"emptyLinePlaceholder":178},[98,6988,6989],{"class":100,"line":2658},[98,6990,179],{"emptyLinePlaceholder":178},[98,6992,6993,6996,6998],{"class":100,"line":2673},[98,6994,6995],{"class":108},"working_memories ",[98,6997,188],{"class":121},[98,6999,7000],{"class":121}," []\n",[98,7002,7003],{"class":100,"line":2678},[98,7004,179],{"emptyLinePlaceholder":178},[98,7006,7007],{"class":100,"line":2699},[98,7008,179],{"emptyLinePlaceholder":178},[98,7010,7011],{"class":100,"line":2704},[98,7012,7013],{"class":4642},"# 定义自定义查询处理函数\n",[98,7015,7016,7018,7021,7023,7026,7028,7030,7032,7035],{"class":100,"line":2709},[98,7017,3675],{"class":3674},[98,7019,7020],{"class":209}," custom_query_handler",[98,7022,483],{"class":121},[98,7024,7025],{"class":218},"messages",[98,7027,275],{"class":121},[98,7029,4393],{"class":108},[98,7031,1648],{"class":121},[98,7033,7034],{"class":108},"ScheduleMessageItem",[98,7036,7037],{"class":121},"]):\n",[98,7039,7040,7043,7046,7048,7051],{"class":100,"line":2714},[98,7041,7042],{"class":104},"    for",[98,7044,7045],{"class":108}," msg ",[98,7047,3788],{"class":104},[98,7049,7050],{"class":108}," messages",[98,7052,3700],{"class":121},[98,7054,7055],{"class":100,"line":2725},[98,7056,7057],{"class":4642},"        # 打印用户输入内容\n",[98,7059,7060,7063,7065,7068,7070,7072,7075,7077,7080,7082,7084,7086,7088],{"class":100,"line":2736},[98,7061,7062],{"class":209},"        print",[98,7064,483],{"class":121},[98,7066,7067],{"class":3674},"f",[98,7069,239],{"class":194},[98,7071,1645],{"class":108},[98,7073,7074],{"class":194},"[scheduler] User input query: ",[98,7076,2331],{"class":660},[98,7078,7079],{"class":209},"msg",[98,7081,122],{"class":121},[98,7083,289],{"class":616},[98,7085,1774],{"class":660},[98,7087,239],{"class":194},[98,7089,465],{"class":121},[98,7091,7092],{"class":100,"line":2751},[98,7093,7094],{"class":4642},"        # 手动构造带有 MEM_UPDATE 标签的新消息以触发记忆更新\n",[98,7096,7097,7100,7102,7105,7107,7110,7112,7115,7118,7120,7123,7125,7127,7130],{"class":100,"line":2766},[98,7098,7099],{"class":108},"        new_msg ",[98,7101,188],{"class":121},[98,7103,7104],{"class":108}," msg",[98,7106,122],{"class":121},[98,7108,7109],{"class":209},"model_copy",[98,7111,483],{"class":121},[98,7113,7114],{"class":218},"update",[98,7116,7117],{"class":121},"={",[98,7119,239],{"class":121},[98,7121,7122],{"class":194},"label",[98,7124,239],{"class":121},[98,7126,275],{"class":121},[98,7128,7129],{"class":209}," MEM_UPDATE_TASK_LABEL",[98,7131,7132],{"class":121},"})\n",[98,7134,7135],{"class":100,"line":2773},[98,7136,7137],{"class":4642},"        # 提交消息给调度器处理\n",[98,7139,7140,7143,7145,7148,7150,7153],{"class":100,"line":2778},[98,7141,7142],{"class":108},"        mem_scheduler",[98,7144,122],{"class":121},[98,7146,7147],{"class":209},"submit_messages",[98,7149,5037],{"class":121},[98,7151,7152],{"class":209},"new_msg",[98,7154,5042],{"class":121},[98,7156,7157],{"class":100,"line":2783},[98,7158,179],{"emptyLinePlaceholder":178},[98,7160,7161],{"class":100,"line":2800},[98,7162,179],{"emptyLinePlaceholder":178},[98,7164,7165],{"class":100,"line":5060},[98,7166,7167],{"class":4642},"# 定义自定义记忆更新处理函数\n",[98,7169,7170,7172,7175,7177,7179,7181,7183,7185,7187],{"class":100,"line":5105},[98,7171,3675],{"class":3674},[98,7173,7174],{"class":209}," custom_mem_update_handler",[98,7176,483],{"class":121},[98,7178,7025],{"class":218},[98,7180,275],{"class":121},[98,7182,4393],{"class":108},[98,7184,1648],{"class":121},[98,7186,7034],{"class":108},[98,7188,7037],{"class":121},[98,7190,7191,7194],{"class":100,"line":5110},[98,7192,7193],{"class":3674},"    global",[98,7195,7196],{"class":108}," working_memories\n",[98,7198,7199,7202,7204],{"class":100,"line":5116},[98,7200,7201],{"class":108},"    search_args ",[98,7203,188],{"class":121},[98,7205,7206],{"class":121}," {}\n",[98,7208,7209,7212,7214],{"class":100,"line":5141},[98,7210,7211],{"class":108},"    top_k ",[98,7213,188],{"class":121},[98,7215,7216],{"class":660}," 2\n",[98,7218,7219,7221,7223,7225,7227],{"class":100,"line":5157},[98,7220,7042],{"class":104},[98,7222,7045],{"class":108},[98,7224,3788],{"class":104},[98,7226,7050],{"class":108},[98,7228,3700],{"class":121},[98,7230,7231],{"class":100,"line":5197},[98,7232,7233],{"class":4642},"        # 在文本记忆中搜索与当前内容相关的记忆（返回 top_k=2）\n",[98,7235,7236,7239,7241,7244,7246,7249,7251,7254],{"class":100,"line":5202},[98,7237,7238],{"class":108},"        results ",[98,7240,188],{"class":121},[98,7242,7243],{"class":108}," mem_scheduler",[98,7245,122],{"class":121},[98,7247,7248],{"class":616},"retriever",[98,7250,122],{"class":121},[98,7252,7253],{"class":209},"search",[98,7255,212],{"class":121},[98,7257,7258,7261,7263,7265,7267,7269],{"class":100,"line":5208},[98,7259,7260],{"class":218},"            query",[98,7262,188],{"class":121},[98,7264,7079],{"class":209},[98,7266,122],{"class":121},[98,7268,289],{"class":616},[98,7270,227],{"class":121},[98,7272,7273,7276,7278,7280,7282,7284],{"class":100,"line":5259},[98,7274,7275],{"class":218},"            user_id",[98,7277,188],{"class":121},[98,7279,7079],{"class":209},[98,7281,122],{"class":121},[98,7283,224],{"class":616},[98,7285,227],{"class":121},[98,7287,7288,7291,7293,7295,7297,7300],{"class":100,"line":5275},[98,7289,7290],{"class":218},"            mem_cube_id",[98,7292,188],{"class":121},[98,7294,7079],{"class":209},[98,7296,122],{"class":121},[98,7298,7299],{"class":616},"mem_cube_id",[98,7301,227],{"class":121},[98,7303,7304,7307,7309,7311,7313,7316],{"class":100,"line":5309},[98,7305,7306],{"class":218},"            mem_cube",[98,7308,188],{"class":121},[98,7310,5944],{"class":209},[98,7312,122],{"class":121},[98,7314,7315],{"class":616},"current_mem_cube",[98,7317,227],{"class":121},[98,7319,7320,7323,7325,7328],{"class":100,"line":5325},[98,7321,7322],{"class":218},"            top_k",[98,7324,188],{"class":121},[98,7326,7327],{"class":209},"top_k",[98,7329,227],{"class":121},[98,7331,7332,7335,7337,7339,7341,7344],{"class":100,"line":5365},[98,7333,7334],{"class":218},"            method",[98,7336,188],{"class":121},[98,7338,5944],{"class":209},[98,7340,122],{"class":121},[98,7342,7343],{"class":616},"search_method",[98,7345,227],{"class":121},[98,7347,7348,7351,7353,7356],{"class":100,"line":5370},[98,7349,7350],{"class":218},"            search_args",[98,7352,188],{"class":121},[98,7354,7355],{"class":209},"search_args",[98,7357,227],{"class":121},[98,7359,7360],{"class":100,"line":5376},[98,7361,7362],{"class":121},"        )\n",[98,7364,7365,7368,7370,7373,7375,7378],{"class":100,"line":5396},[98,7366,7367],{"class":108},"        working_memories",[98,7369,122],{"class":121},[98,7371,7372],{"class":209},"extend",[98,7374,483],{"class":121},[98,7376,7377],{"class":209},"results",[98,7379,465],{"class":121},[98,7381,7382,7385,7387,7390,7393,7395],{"class":100,"line":5412},[98,7383,7384],{"class":108},"        working_memories ",[98,7386,188],{"class":121},[98,7388,7389],{"class":108}," working_memories",[98,7391,7392],{"class":121},"[-",[98,7394,1029],{"class":660},[98,7396,7397],{"class":121},":]\n",[98,7399,7400,7402,7405,7407,7410],{"class":100,"line":5455},[98,7401,3782],{"class":104},[98,7403,7404],{"class":108}," mem ",[98,7406,3788],{"class":104},[98,7408,7409],{"class":108}," results",[98,7411,3700],{"class":121},[98,7413,7414,7417,7419,7421,7423,7425,7428,7430,7433,7435,7437,7439,7441],{"class":100,"line":5460},[98,7415,7416],{"class":209},"            print",[98,7418,483],{"class":121},[98,7420,7067],{"class":3674},[98,7422,239],{"class":194},[98,7424,1645],{"class":108},[98,7426,7427],{"class":194},"[scheduler] Retrieved memory: ",[98,7429,2331],{"class":660},[98,7431,7432],{"class":209},"mem",[98,7434,122],{"class":121},[98,7436,4558],{"class":616},[98,7438,1774],{"class":660},[98,7440,239],{"class":194},[98,7442,465],{"class":121},[98,7444,7445],{"class":100,"line":5466},[98,7446,179],{"emptyLinePlaceholder":178},[98,7448,7449],{"class":100,"line":5487},[98,7450,179],{"emptyLinePlaceholder":178},[98,7452,7453,7456,7459,7462],{"class":100,"line":5503},[98,7454,7455],{"class":3674},"async",[98,7457,7458],{"class":3674}," def",[98,7460,7461],{"class":209}," run_with_scheduler",[98,7463,6047],{"class":121},[98,7465,7466,7469,7471,7473,7476,7478],{"class":100,"line":5515},[98,7467,7468],{"class":209},"    print",[98,7470,483],{"class":121},[98,7472,239],{"class":121},[98,7474,7475],{"class":194},"==== run_with_automatic_scheduler_init ====",[98,7477,239],{"class":121},[98,7479,465],{"class":121},[98,7481,7482,7485,7487,7490,7492,7494],{"class":100,"line":5535},[98,7483,7484],{"class":108},"    conversations",[98,7486,143],{"class":121},[98,7488,7489],{"class":108}," questions ",[98,7491,188],{"class":121},[98,7493,6044],{"class":209},[98,7495,3877],{"class":121},[98,7497,7498],{"class":100,"line":5551},[98,7499,179],{"emptyLinePlaceholder":178},[98,7501,7503],{"class":100,"line":7502},120,[98,7504,7505],{"class":4642},"    # 使用 server_router 组件进行初始化\n",[98,7507,7509],{"class":100,"line":7508},121,[98,7510,7511],{"class":4642},"    # 配置通过 init_server() 中的环境变量加载\n",[98,7513,7515],{"class":100,"line":7514},122,[98,7516,179],{"emptyLinePlaceholder":178},[98,7518,7520,7523,7525,7527,7530],{"class":100,"line":7519},123,[98,7521,7522],{"class":108},"    user_id ",[98,7524,188],{"class":121},[98,7526,191],{"class":121},[98,7528,7529],{"class":194},"user_1",[98,7531,198],{"class":121},[98,7533,7535,7538,7540,7542,7545],{"class":100,"line":7534},124,[98,7536,7537],{"class":108},"    mem_cube_id ",[98,7539,188],{"class":121},[98,7541,191],{"class":121},[98,7543,7544],{"class":194},"mem_cube_5",[98,7546,198],{"class":121},[98,7548,7550],{"class":100,"line":7549},125,[98,7551,179],{"emptyLinePlaceholder":178},[98,7553,7555,7557,7559,7561,7564,7566,7568,7570,7573],{"class":100,"line":7554},126,[98,7556,7468],{"class":209},[98,7558,483],{"class":121},[98,7560,7067],{"class":3674},[98,7562,7563],{"class":194},"\"Adding conversations for user ",[98,7565,2331],{"class":660},[98,7567,224],{"class":209},[98,7569,1774],{"class":660},[98,7571,7572],{"class":194},"...\"",[98,7574,465],{"class":121},[98,7576,7578],{"class":100,"line":7577},127,[98,7579,179],{"emptyLinePlaceholder":178},[98,7581,7583],{"class":100,"line":7582},128,[98,7584,7585],{"class":4642},"    # 使用 add_handler 添加记忆\n",[98,7587,7589,7592,7594,7596],{"class":100,"line":7588},129,[98,7590,7591],{"class":108},"    add_req ",[98,7593,188],{"class":121},[98,7595,167],{"class":209},[98,7597,212],{"class":121},[98,7599,7601,7604,7606,7608],{"class":100,"line":7600},130,[98,7602,7603],{"class":218},"        user_id",[98,7605,188],{"class":121},[98,7607,224],{"class":209},[98,7609,227],{"class":121},[98,7611,7613,7616,7618,7620],{"class":100,"line":7612},131,[98,7614,7615],{"class":218},"        writable_cube_ids",[98,7617,236],{"class":121},[98,7619,7299],{"class":209},[98,7621,247],{"class":121},[98,7623,7625,7628,7630,7633],{"class":100,"line":7624},132,[98,7626,7627],{"class":218},"        messages",[98,7629,188],{"class":121},[98,7631,7632],{"class":209},"conversations",[98,7634,227],{"class":121},[98,7636,7638,7641,7643,7645,7647,7649,7651],{"class":100,"line":7637},133,[98,7639,7640],{"class":218},"        async_mode",[98,7642,188],{"class":121},[98,7644,239],{"class":121},[98,7646,438],{"class":194},[98,7648,239],{"class":121},[98,7650,143],{"class":121},[98,7652,7653],{"class":4642},"  # 在此示例中使用同步模式以便立即添加\n",[98,7655,7657],{"class":100,"line":7656},134,[98,7658,7659],{"class":121},"    )\n",[98,7661,7663,7665,7667,7670,7672,7674],{"class":100,"line":7662},135,[98,7664,5895],{"class":108},[98,7666,122],{"class":121},[98,7668,7669],{"class":209},"handle_add_memories",[98,7671,483],{"class":121},[98,7673,486],{"class":209},[98,7675,465],{"class":121},[98,7677,7679],{"class":100,"line":7678},136,[98,7680,179],{"emptyLinePlaceholder":178},[98,7682,7684,7686,7689,7691,7694],{"class":100,"line":7683},137,[98,7685,7042],{"class":104},[98,7687,7688],{"class":108}," item ",[98,7690,3788],{"class":104},[98,7692,7693],{"class":108}," questions",[98,7695,3700],{"class":121},[98,7697,7699,7701,7703,7705,7708,7710],{"class":100,"line":7698},138,[98,7700,7062],{"class":209},[98,7702,483],{"class":121},[98,7704,239],{"class":121},[98,7706,7707],{"class":194},"===== Chat Start =====",[98,7709,239],{"class":121},[98,7711,465],{"class":121},[98,7713,7715,7718,7720,7723,7725,7727,7729,7731],{"class":100,"line":7714},139,[98,7716,7717],{"class":108},"        query ",[98,7719,188],{"class":121},[98,7721,7722],{"class":108}," item",[98,7724,1648],{"class":121},[98,7726,239],{"class":121},[98,7728,6790],{"class":194},[98,7730,239],{"class":121},[98,7732,4426],{"class":121},[98,7734,7736,7738,7740,7742,7745,7747,7750,7753,7755,7757,7759],{"class":100,"line":7735},140,[98,7737,7062],{"class":209},[98,7739,483],{"class":121},[98,7741,7067],{"class":3674},[98,7743,7744],{"class":194},"\"Query:",[98,7746,1645],{"class":108},[98,7748,7749],{"class":660}," {",[98,7751,7752],{"class":209},"query",[98,7754,1774],{"class":660},[98,7756,1645],{"class":108},[98,7758,239],{"class":194},[98,7760,465],{"class":121},[98,7762,7764],{"class":100,"line":7763},141,[98,7765,179],{"emptyLinePlaceholder":178},[98,7767,7769],{"class":100,"line":7768},142,[98,7770,7771],{"class":4642},"        # 使用 chat_handler 进行聊天\n",[98,7773,7775,7778,7780,7783],{"class":100,"line":7774},143,[98,7776,7777],{"class":108},"        chat_req ",[98,7779,188],{"class":121},[98,7781,7782],{"class":209}," ChatPlaygroundRequest",[98,7784,212],{"class":121},[98,7786,7788,7790,7792,7794],{"class":100,"line":7787},144,[98,7789,7275],{"class":218},[98,7791,188],{"class":121},[98,7793,224],{"class":209},[98,7795,227],{"class":121},[98,7797,7799,7801,7803,7805],{"class":100,"line":7798},145,[98,7800,7260],{"class":218},[98,7802,188],{"class":121},[98,7804,7752],{"class":209},[98,7806,227],{"class":121},[98,7808,7810,7813,7815,7817],{"class":100,"line":7809},146,[98,7811,7812],{"class":218},"            readable_cube_ids",[98,7814,236],{"class":121},[98,7816,7299],{"class":209},[98,7818,247],{"class":121},[98,7820,7822,7825,7827,7829],{"class":100,"line":7821},147,[98,7823,7824],{"class":218},"            writable_cube_ids",[98,7826,236],{"class":121},[98,7828,7299],{"class":209},[98,7830,247],{"class":121},[98,7832,7834],{"class":100,"line":7833},148,[98,7835,7362],{"class":121},[98,7837,7839,7842,7844,7847,7849,7852],{"class":100,"line":7838},149,[98,7840,7841],{"class":108},"        response ",[98,7843,188],{"class":121},[98,7845,7846],{"class":209}," chat_stream_playground",[98,7848,483],{"class":121},[98,7850,7851],{"class":209},"chat_req",[98,7853,465],{"class":121},[98,7855,7857],{"class":100,"line":7856},150,[98,7858,179],{"emptyLinePlaceholder":178},[98,7860,7862,7865,7867],{"class":100,"line":7861},151,[98,7863,7864],{"class":108},"        answer ",[98,7866,188],{"class":121},[98,7868,7869],{"class":121}," \"\"\n",[98,7871,7873,7876,7878],{"class":100,"line":7872},152,[98,7874,7875],{"class":108},"        buffer ",[98,7877,188],{"class":121},[98,7879,7869],{"class":121},[98,7881,7883,7886,7888,7891,7893,7896,7898,7901],{"class":100,"line":7882},153,[98,7884,7885],{"class":104},"        async",[98,7887,4415],{"class":104},[98,7889,7890],{"class":108}," chunk ",[98,7892,3788],{"class":104},[98,7894,7895],{"class":108}," response",[98,7897,122],{"class":121},[98,7899,7900],{"class":616},"body_iterator",[98,7902,3700],{"class":121},[98,7904,7906,7908,7910,7912,7915,7917,7920],{"class":100,"line":7905},154,[98,7907,3801],{"class":104},[98,7909,4383],{"class":209},[98,7911,483],{"class":121},[98,7913,7914],{"class":209},"chunk",[98,7916,143],{"class":121},[98,7918,7919],{"class":4392}," bytes",[98,7921,3686],{"class":121},[98,7923,7925,7928,7930,7933,7935,7938,7940,7942,7945,7947],{"class":100,"line":7924},155,[98,7926,7927],{"class":108},"                chunk ",[98,7929,188],{"class":121},[98,7931,7932],{"class":108}," chunk",[98,7934,122],{"class":121},[98,7936,7937],{"class":209},"decode",[98,7939,483],{"class":121},[98,7941,239],{"class":121},[98,7943,7944],{"class":194},"utf-8",[98,7946,239],{"class":121},[98,7948,465],{"class":121},[98,7950,7952,7955,7957],{"class":100,"line":7951},156,[98,7953,7954],{"class":108},"            buffer ",[98,7956,3846],{"class":121},[98,7958,7959],{"class":108}," chunk\n",[98,7961,7963,7966,7968,7970,7972,7975,7978],{"class":100,"line":7962},157,[98,7964,7965],{"class":104},"            while",[98,7967,191],{"class":121},[98,7969,504],{"class":108},[98,7971,239],{"class":121},[98,7973,7974],{"class":121}," in",[98,7976,7977],{"class":108}," buffer",[98,7979,3700],{"class":121},[98,7981,7983,7986,7988,7991,7993,7995,7997,8000,8002,8004,8006,8008,8010,8013],{"class":100,"line":7982},158,[98,7984,7985],{"class":108},"                msg",[98,7987,143],{"class":121},[98,7989,7990],{"class":108}," buffer ",[98,7992,188],{"class":121},[98,7994,7977],{"class":108},[98,7996,122],{"class":121},[98,7998,7999],{"class":209},"split",[98,8001,483],{"class":121},[98,8003,239],{"class":121},[98,8005,504],{"class":108},[98,8007,239],{"class":121},[98,8009,143],{"class":121},[98,8011,8012],{"class":660}," 1",[98,8014,465],{"class":121},[98,8016,8018,8021,8024,8026,8028,8030,8032,8034,8036,8038,8040],{"class":100,"line":8017},159,[98,8019,8020],{"class":104},"                for",[98,8022,8023],{"class":108}," line ",[98,8025,3788],{"class":104},[98,8027,7104],{"class":108},[98,8029,122],{"class":121},[98,8031,7999],{"class":209},[98,8033,483],{"class":121},[98,8035,239],{"class":121},[98,8037,1645],{"class":108},[98,8039,239],{"class":121},[98,8041,3686],{"class":121},[98,8043,8045,8048,8051,8053,8056,8058,8060,8063,8065],{"class":100,"line":8044},160,[98,8046,8047],{"class":104},"                    if",[98,8049,8050],{"class":108}," line",[98,8052,122],{"class":121},[98,8054,8055],{"class":209},"startswith",[98,8057,483],{"class":121},[98,8059,239],{"class":121},[98,8061,8062],{"class":194},"data: ",[98,8064,239],{"class":121},[98,8066,3686],{"class":121},[98,8068,8070,8073,8075,8077,8079,8081],{"class":100,"line":8069},161,[98,8071,8072],{"class":108},"                        json_str ",[98,8074,188],{"class":121},[98,8076,8050],{"class":108},[98,8078,1648],{"class":121},[98,8080,1066],{"class":660},[98,8082,7397],{"class":121},[98,8084,8086,8089],{"class":100,"line":8085},162,[98,8087,8088],{"class":104},"                        try",[98,8090,3700],{"class":121},[98,8092,8094,8097,8099,8101,8103,8106,8108,8111],{"class":100,"line":8093},163,[98,8095,8096],{"class":108},"                            data ",[98,8098,188],{"class":121},[98,8100,640],{"class":108},[98,8102,122],{"class":121},[98,8104,8105],{"class":209},"loads",[98,8107,483],{"class":121},[98,8109,8110],{"class":209},"json_str",[98,8112,465],{"class":121},[98,8114,8116,8119,8122,8124,8126,8128,8130,8132,8134,8136,8139,8141,8143,8145],{"class":100,"line":8115},164,[98,8117,8118],{"class":104},"                            if",[98,8120,8121],{"class":108}," data",[98,8123,122],{"class":121},[98,8125,5128],{"class":209},[98,8127,483],{"class":121},[98,8129,239],{"class":121},[98,8131,875],{"class":194},[98,8133,239],{"class":121},[98,8135,3820],{"class":121},[98,8137,8138],{"class":121}," ==",[98,8140,191],{"class":121},[98,8142,884],{"class":194},[98,8144,239],{"class":121},[98,8146,3700],{"class":121},[98,8148,8150,8153,8155,8157,8159,8161,8164,8166],{"class":100,"line":8149},165,[98,8151,8152],{"class":108},"                                answer ",[98,8154,3846],{"class":121},[98,8156,8121],{"class":108},[98,8158,1648],{"class":121},[98,8160,239],{"class":121},[98,8162,8163],{"class":194},"data",[98,8165,239],{"class":121},[98,8167,4426],{"class":121},[98,8169,8171,8174,8176,8178,8181],{"class":100,"line":8170},166,[98,8172,8173],{"class":104},"                        except",[98,8175,640],{"class":108},[98,8177,122],{"class":121},[98,8179,8180],{"class":616},"JSONDecodeError",[98,8182,3700],{"class":121},[98,8184,8186],{"class":100,"line":8185},167,[98,8187,8188],{"class":104},"                            pass\n",[98,8190,8192,8194,8196,8198,8200,8202,8205,8207,8210,8212,8214],{"class":100,"line":8191},168,[98,8193,7062],{"class":209},[98,8195,483],{"class":121},[98,8197,7067],{"class":3674},[98,8199,239],{"class":194},[98,8201,1645],{"class":108},[98,8203,8204],{"class":194},"Answer: ",[98,8206,2331],{"class":660},[98,8208,8209],{"class":209},"answer",[98,8211,1774],{"class":660},[98,8213,239],{"class":194},[98,8215,465],{"class":121},[98,8217,8219],{"class":100,"line":8218},169,[98,8220,179],{"emptyLinePlaceholder":178},[98,8222,8224],{"class":100,"line":8223},170,[98,8225,179],{"emptyLinePlaceholder":178},[98,8227,8229,8232,8235,8238,8240,8243,8245],{"class":100,"line":8228},171,[98,8230,8231],{"class":104},"if",[98,8233,8234],{"class":108}," __name__ ",[98,8236,8237],{"class":121},"==",[98,8239,191],{"class":121},[98,8241,8242],{"class":194},"__main__",[98,8244,239],{"class":121},[98,8246,3700],{"class":121},[98,8248,8250,8252,8254,8257],{"class":100,"line":8249},172,[98,8251,5909],{"class":108},[98,8253,122],{"class":121},[98,8255,8256],{"class":209},"register_handlers",[98,8258,212],{"class":121},[98,8260,8262],{"class":100,"line":8261},173,[98,8263,831],{"class":121},[98,8265,8267,8270,8272,8274,8276],{"class":100,"line":8266},174,[98,8268,8269],{"class":209},"            QUERY_TASK_LABEL",[98,8271,275],{"class":121},[98,8273,7020],{"class":209},[98,8275,143],{"class":121},[98,8277,8278],{"class":4642},"  # 查询任务\n",[98,8280,8282,8285,8287,8289,8291],{"class":100,"line":8281},175,[98,8283,8284],{"class":209},"            MEM_UPDATE_TASK_LABEL",[98,8286,275],{"class":121},[98,8288,7174],{"class":209},[98,8290,143],{"class":121},[98,8292,8293],{"class":4642},"  # 记忆更新任务\n",[98,8295,8297],{"class":100,"line":8296},176,[98,8298,1229],{"class":121},[98,8300,8302],{"class":100,"line":8301},177,[98,8303,7659],{"class":121},[98,8305,8307],{"class":100,"line":8306},178,[98,8308,179],{"emptyLinePlaceholder":178},[98,8310,8312,8315,8317,8320,8322,8325],{"class":100,"line":8311},179,[98,8313,8314],{"class":108},"    asyncio",[98,8316,122],{"class":121},[98,8318,8319],{"class":209},"run",[98,8321,483],{"class":121},[98,8323,8324],{"class":209},"run_with_scheduler",[98,8326,8327],{"class":121},"())\n",[98,8329,8331],{"class":100,"line":8330},180,[98,8332,179],{"emptyLinePlaceholder":178},[98,8334,8336,8339,8341,8344,8346,8349],{"class":100,"line":8335},181,[98,8337,8338],{"class":108},"    time",[98,8340,122],{"class":121},[98,8342,8343],{"class":209},"sleep",[98,8345,483],{"class":121},[98,8347,8348],{"class":660},"20",[98,8350,465],{"class":121},[98,8352,8354,8356,8358,8361],{"class":100,"line":8353},182,[98,8355,5909],{"class":108},[98,8357,122],{"class":121},[98,8359,8360],{"class":209},"stop",[98,8362,3877],{"class":121},[8364,8365,8366,8376,8379],"note",{},[20,8367,8368,8372,8375],{},[8369,8370,8371],"strong",{},"请注意",[8373,8374],"br",{},"\n使用 dump() 和 load() 来持久化你的记忆立方体。",[20,8377,8378],{},"务必确保你的向量数据库维度与你的嵌入器匹配。",[20,8380,8381],{},"如使用基于图的明文记忆功能，你需要安装 Neo4j Desktop。",[56,8383,8384],{"id":8384},"下一步",[20,8386,8387],{},"你才刚刚开始！接下来可以尝试：",[66,8389,8390,8393],{},[69,8391,8392],{},"选择与你使用场景匹配的示例。",[69,8394,8395],{},"组合模块以构建更智能、更持久的智能体！",[20,8397,8398],{},"还需要更多帮助？\n查看 API 文档或贡献你自己的示例吧！",[8400,8401,8402],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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}",{"title":93,"searchDepth":112,"depth":112,"links":8404},[8405,8410,8415,8420,8425,8430],{"id":58,"depth":112,"text":59,"children":8406},[8407,8408,8409],{"id":63,"depth":149,"text":64},{"id":77,"depth":149,"text":78},{"id":86,"depth":149,"text":86},{"id":672,"depth":112,"text":673,"children":8411},[8412,8413,8414],{"id":676,"depth":149,"text":64},{"id":687,"depth":149,"text":78},{"id":704,"depth":149,"text":86},{"id":2843,"depth":112,"text":2844,"children":8416},[8417,8418,8419],{"id":2847,"depth":149,"text":64},{"id":2858,"depth":149,"text":78},{"id":2866,"depth":149,"text":86},{"id":3539,"depth":112,"text":3540,"children":8421},[8422,8423,8424],{"id":3543,"depth":149,"text":64},{"id":3557,"depth":149,"text":78},{"id":3571,"depth":149,"text":86},{"id":5594,"depth":112,"text":5595,"children":8426},[8427,8428,8429],{"id":5598,"depth":149,"text":64},{"id":5612,"depth":149,"text":78},{"id":5638,"depth":149,"text":86},{"id":8384,"depth":112,"text":8384},"恭喜你——你已经掌握了快速入门并构建了第一个可用的记忆！现在是时候通过结合不同的记忆类型和功能，看看 MemOS 可以实现多大的可能性。使用这些精选示例来激发你自己的智能体、聊天机器人或知识系统的灵感。","md",{},"\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Fexamples",{"title":5,"description":93},"cn\u002Fopen_source\u002Fgetting_started\u002Fexamples","Etz6XPf1X8a_GcCfK4TvYklCRWU9CXqt6etIwp8-U4E",[8439,8447],{"title":8440,"path":8441,"stem":8442,"icon":8443,"framework":6,"module":6,"class":8444,"target":-1,"active":8445,"defaultOpen":8445,"children":-1,"description":8446},"REST API 服务","\u002Fcn\u002Fopen_source\u002Fgetting_started\u002Frest_api_server","open_source\u002Fgetting_started\u002Frest_api_server","i-ri-file-code-line",[],false,"MemOS 提供了一个使用 FastAPI 编写的 REST API 服务。用户可以通过 REST 接口执行所有操作。",{"title":8448,"path":8449,"stem":8450,"icon":8451,"framework":6,"module":6,"class":8452,"target":-1,"active":8445,"defaultOpen":8445,"children":-1,"description":8453},"API 开发指南","\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmos\u002Foverview","open_source\u002Fmodules\u002Fmos\u002Foverview","i-ri-eye-line",[],"MemOS v2.0 采用了更加模块化和解耦的架构。旧版的 MOS 类已被弃用，现在推荐使用 Components (组件) + Handlers (处理器) 的模式进行开发。",1774339750018]