[{"data":1,"prerenderedAt":1371},["ShallowReactive",2],{"\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fgeneral_textual_memory":3,"surround-\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fgeneral_textual_memory":1355},{"id":4,"title":5,"avatar":6,"banner":6,"body":7,"category":6,"desc":1348,"description":462,"extension":1349,"links":6,"meta":1350,"navigation":6,"path":1351,"seo":1352,"stem":1353,"__hash__":1354},"docs\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fgeneral_textual_memory.md","GeneralTextMemory: 通用明文记忆",null,{"type":8,"value":9,"toc":1332},"minimark",[10,14,99,101,109,175,181,338,341,344,363,368,449,454,456,488,490,613,615,621,629,635,637,1273,1292,1312,1314,1328],[11,12,13],"h2",{"id":13},"目录",[15,16,17,38,61,67,73,93],"ul",{},[18,19,20,25],"li",{},[21,22,24],"a",{"href":23},"#%E8%AE%B0%E5%BF%86%E7%BB%93%E6%9E%84","记忆结构",[15,26,27],{},[18,28,29],{},[21,30,32,33,37],{"href":31},"#%E5%85%83%E6%95%B0%E6%8D%AE%E5%9F%9F-textualmemorymetadata","元数据域 (",[34,35,36],"code",{},"TextualMemoryMetadata",")",[18,39,40,47],{},[21,41,43,44,37],{"href":42},"#api%E6%80%BB%E7%BB%93-generaltextmemory","API总结 (",[34,45,46],{},"GeneralTextMemory",[15,48,49,55],{},[18,50,51],{},[21,52,54],{"href":53},"#%E5%88%9D%E5%A7%8B%E5%8C%96","初始化",[18,56,57],{},[21,58,60],{"href":59},"#%E6%A0%B8%E5%BF%83%E6%96%B9%E6%B3%95","核心方法",[18,62,63],{},[21,64,66],{"href":65},"#%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8","文件存储",[18,68,69],{},[21,70,72],{"href":71},"#%E7%A4%BA%E4%BE%8B%E7%94%A8%E6%B3%95","示例用法",[18,74,75,79],{},[21,76,78],{"href":77},"#%E6%89%A9%E5%B1%95%E4%B8%8E%E8%BF%9B%E9%98%B6","扩展与进阶",[15,80,81,87],{},[18,82,83],{},[21,84,86],{"href":85},"#%E4%BA%92%E8%81%94%E7%BD%91%E6%A3%80%E7%B4%A2","互联网检索",[18,88,89],{},[21,90,92],{"href":91},"#multimodal-reader","MultiModal Reader",[18,94,95],{},[21,96,98],{"href":97},"#%E5%BC%80%E5%8F%91%E8%80%85%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9","开发者注意事项",[11,100,24],{"id":24},[102,103,104,105,108],"p",{},"每个记忆被表达为一个",[34,106,107],{},"TextualMemoryItem",":",[110,111,112,128],"table",{},[113,114,115],"thead",{},[116,117,118,122,125],"tr",{},[119,120,121],"th",{},"字段",[119,123,124],{},"类型",[119,126,127],{},"描述",[129,130,131,147,161],"tbody",{},[116,132,133,139,144],{},[134,135,136],"td",{},[34,137,138],{},"id",[134,140,141],{},[34,142,143],{},"str",[134,145,146],{},"UUID (如果省略则自动生成)",[116,148,149,154,158],{},[134,150,151],{},[34,152,153],{},"memory",[134,155,156],{},[34,157,143],{},[134,159,160],{},"记忆内容主体 (必填)",[116,162,163,168,172],{},[134,164,165],{},[34,166,167],{},"metadata",[134,169,170],{},[34,171,36],{},[134,173,174],{},"元数据（用于搜索\u002F过滤）",[176,177,32,179,37],"h3",{"id":178},"元数据域-textualmemorymetadata",[34,180,36],{},[110,182,183,193],{},[113,184,185],{},[116,186,187,189,191],{},[119,188,121],{},[119,190,124],{},[119,192,127],{},[129,194,195,220,235,259,274,289,303,324],{},[116,196,197,202,217],{},[134,198,199],{},[34,200,201],{},"type",[134,203,204,207,208,207,211,207,214],{},[34,205,206],{},"\"procedure\"",", ",[34,209,210],{},"\"fact\"",[34,212,213],{},"\"event\"",[34,215,216],{},"\"opinion\"",[134,218,219],{},"记忆类型",[116,221,222,227,232],{},[134,223,224],{},[34,225,226],{},"memory_time",[134,228,229],{},[34,230,231],{},"str (YYYY-MM-DD)",[134,233,234],{},"记忆所指的日期\u002F时间",[116,236,237,242,256],{},[134,238,239],{},[34,240,241],{},"source",[134,243,244,207,247,207,250,207,253],{},[34,245,246],{},"\"conversation\"",[34,248,249],{},"\"retrieved\"",[34,251,252],{},"\"web\"",[34,254,255],{},"\"file\"",[134,257,258],{},"记忆源",[116,260,261,266,271],{},[134,262,263],{},[34,264,265],{},"confidence",[134,267,268],{},[34,269,270],{},"float (0-100)",[134,272,273],{},"确定性\u002F可信度评分",[116,275,276,281,286],{},[134,277,278],{},[34,279,280],{},"entities",[134,282,283],{},[34,284,285],{},"list[str]",[134,287,288],{},"主要实体\u002F概念",[116,290,291,296,300],{},[134,292,293],{},[34,294,295],{},"tags",[134,297,298],{},[34,299,285],{},[134,301,302],{},"主题标签",[116,304,305,310,321],{},[134,306,307],{},[34,308,309],{},"visibility",[134,311,312,207,315,207,318],{},[34,313,314],{},"\"private\"",[34,316,317],{},"\"public\"",[34,319,320],{},"\"session\"",[134,322,323],{},"访问范围",[116,325,326,331,335],{},[134,327,328],{},[34,329,330],{},"updated_at",[134,332,333],{},[34,334,143],{},[134,336,337],{},"最近更新时间戳 (ISO 8601)",[102,339,340],{},"所有的值都经过验证，无效的值将引发错误。",[11,342,343],{"id":343},"搜索机制",[102,345,346,347,350,351,355,356,350,359,362],{},"与前文提到的",[34,348,349],{},"NaiveTextMemory"," 使用",[352,353,354],"strong",{},"关键词匹配算法","不同，",[34,357,358],{},"GeneralNaiveTextMemory",[352,360,361],{},"向量语义搜索","。",[102,364,365],{},[352,366,367],{},"与NaiveTextMemory的算法特点对比",[110,369,370,382],{},[113,371,372],{},[116,373,374,377,380],{},[119,375,376],{},"特性",[119,378,379],{},"关键词匹配",[119,381,361],{},[129,383,384,397,410,423,436],{},[116,385,386,391,394],{},[134,387,388],{},[352,389,390],{},"理解语义",[134,392,393],{},"❌ 不理解同义词",[134,395,396],{},"✅ 理解相似概念",[116,398,399,404,407],{},[134,400,401],{},[352,402,403],{},"资源占用",[134,405,406],{},"✅ 极低",[134,408,409],{},"⚠️ 需要嵌入模型和向量数据库",[116,411,412,417,420],{},[134,413,414],{},[352,415,416],{},"执行速度",[134,418,419],{},"✅ 快速（O(n)）",[134,421,422],{},"⚠️ 较慢（索引构建+查询）",[116,424,425,430,433],{},[134,426,427],{},[352,428,429],{},"适用规模",[134,431,432],{},"\u003C 1K 条记忆",[134,434,435],{},"10K - 100K 条记忆",[116,437,438,443,446],{},[134,439,440],{},[352,441,442],{},"可预测性",[134,444,445],{},"✅ 结果直观",[134,447,448],{},"⚠️ 黑盒模型",[11,450,43,452,37],{"id":451},"api总结-generaltextmemory",[34,453,46],{},[176,455,54],{"id":54},[457,458,463],"pre",{"className":459,"code":460,"language":461,"meta":462,"style":462},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","GeneralTextMemory(config: GeneralTextMemoryConfig)\n","python","",[34,464,465],{"__ignoreMap":462},[466,467,470,473,477,480,482,485],"span",{"class":468,"line":469},"line",1,[466,471,46],{"class":472},"s2Zo4",[466,474,476],{"class":475},"sMK4o","(",[466,478,479],{"class":472},"config",[466,481,108],{"class":475},[466,483,484],{"class":472}," GeneralTextMemoryConfig",[466,486,487],{"class":475},")\n",[176,489,60],{"id":60},[110,491,492,501],{},[113,493,494],{},[116,495,496,499],{},[119,497,498],{},"方法",[119,500,127],{},[129,502,503,513,523,533,543,553,563,573,583,593,603],{},[116,504,505,510],{},[134,506,507],{},[34,508,509],{},"extract(messages)",[134,511,512],{},"从消息列表中提取记忆 (基于LLM)",[116,514,515,520],{},[134,516,517],{},[34,518,519],{},"add(memories)",[134,521,522],{},"添加一个或多个记忆 (条目或字典)",[116,524,525,530],{},[134,526,527],{},[34,528,529],{},"search(query, top_k)",[134,531,532],{},"使用向量相似度检索top-k记忆",[116,534,535,540],{},[134,536,537],{},[34,538,539],{},"get(memory_id)",[134,541,542],{},"通过ID获取单个记忆",[116,544,545,550],{},[134,546,547],{},[34,548,549],{},"get_by_ids(ids)",[134,551,552],{},"通过ID获取多个记忆",[116,554,555,560],{},[134,556,557],{},[34,558,559],{},"get_all()",[134,561,562],{},"返回所有记忆",[116,564,565,570],{},[134,566,567],{},[34,568,569],{},"update(memory_id, new)",[134,571,572],{},"通过ID更新一个记忆",[116,574,575,580],{},[134,576,577],{},[34,578,579],{},"delete(ids)",[134,581,582],{},"通过ID删除记忆",[116,584,585,590],{},[134,586,587],{},[34,588,589],{},"delete_all()",[134,591,592],{},"删除所有记忆",[116,594,595,600],{},[134,596,597],{},[34,598,599],{},"dump(dir)",[134,601,602],{},"将所有记忆序列化到目录中的JSON文件",[116,604,605,610],{},[134,606,607],{},[34,608,609],{},"load(dir)",[134,611,612],{},"从存储的文件中加载记忆",[11,614,66],{"id":66},[102,616,617,618,620],{},"当调用 ",[34,619,599],{},", 系统会将记忆保存到：",[457,622,627],{"className":623,"code":625,"language":626},[624],"language-text","\u003Cdir>\u002F\u003Cconfig.memory_filename>\n","text",[34,628,625],{"__ignoreMap":462},[102,630,631,632,634],{},"该文件包含所有记忆条目的JSON列表，可以使用",[34,633,609],{},"重新加载.",[11,636,72],{"id":72},[457,638,640],{"className":459,"code":639,"language":461,"meta":462,"style":462},"import os\nfrom memos.configs.memory import MemoryConfigFactory\nfrom memos.memories.factory import MemoryFactory\n\nconfig = MemoryConfigFactory(\n    backend=\"general_text\",\n    config={\n        \"extractor_llm\": { ... },\n        \"vector_db\": { ... },\n        \"embedder\": { ... },\n    },\n)\nm = MemoryFactory.from_config(config)\n\n# 提取并添加记忆\nmemories = m.extract([\n    {\"role\": \"user\", \"content\": \"I love tomatoes.\"},\n    {\"role\": \"assistant\", \"content\": \"Great! Tomatoes are delicious.\"},\n])\nm.add(memories)\n\n# 通过id手动创建并添加一个记忆\nmemory_id = \"xxx\"\nm.add(\n  [\n        {\n            \"id\": memory_id,\n            \"memory\": \"User is Chinese.\",\n            ...\n        }\n    ]  \n)\n\n# 检索记忆\nresults = m.search(\"Tell me more about the user\", top_k=2)\n\n# 更新记忆\nm.update(memory_id, {\"memory\": \"User is Canadian.\", ...})\n\n# 删除记忆\nm.delete([memory_id])\n\n# 将所有记忆序列化到目录中的JSON文件\u002F从存储的文件中加载记忆\nm.dump(\"tmp\u002Fmem\")\nm.load(\"tmp\u002Fmem\")\n",[34,641,642,652,677,699,706,721,742,751,773,791,809,815,820,842,847,854,873,917,956,962,979,984,990,1006,1017,1023,1029,1046,1066,1072,1078,1087,1092,1097,1103,1140,1145,1151,1193,1198,1204,1221,1226,1232,1253],{"__ignoreMap":462},[466,643,644,648],{"class":468,"line":469},[466,645,647],{"class":646},"s7zQu","import",[466,649,651],{"class":650},"sTEyZ"," os\n",[466,653,655,658,661,664,667,669,672,674],{"class":468,"line":654},2,[466,656,657],{"class":646},"from",[466,659,660],{"class":650}," memos",[466,662,663],{"class":475},".",[466,665,666],{"class":650},"configs",[466,668,663],{"class":475},[466,670,671],{"class":650},"memory ",[466,673,647],{"class":646},[466,675,676],{"class":650}," MemoryConfigFactory\n",[466,678,680,682,684,686,689,691,694,696],{"class":468,"line":679},3,[466,681,657],{"class":646},[466,683,660],{"class":650},[466,685,663],{"class":475},[466,687,688],{"class":650},"memories",[466,690,663],{"class":475},[466,692,693],{"class":650},"factory ",[466,695,647],{"class":646},[466,697,698],{"class":650}," MemoryFactory\n",[466,700,702],{"class":468,"line":701},4,[466,703,705],{"emptyLinePlaceholder":704},true,"\n",[466,707,709,712,715,718],{"class":468,"line":708},5,[466,710,711],{"class":650},"config ",[466,713,714],{"class":475},"=",[466,716,717],{"class":472}," MemoryConfigFactory",[466,719,720],{"class":475},"(\n",[466,722,724,728,730,733,737,739],{"class":468,"line":723},6,[466,725,727],{"class":726},"sHdIc","    backend",[466,729,714],{"class":475},[466,731,732],{"class":475},"\"",[466,734,736],{"class":735},"sfazB","general_text",[466,738,732],{"class":475},[466,740,741],{"class":475},",\n",[466,743,745,748],{"class":468,"line":744},7,[466,746,747],{"class":726},"    config",[466,749,750],{"class":475},"={\n",[466,752,754,757,760,762,764,767,770],{"class":468,"line":753},8,[466,755,756],{"class":475},"        \"",[466,758,759],{"class":735},"extractor_llm",[466,761,732],{"class":475},[466,763,108],{"class":475},[466,765,766],{"class":475}," {",[466,768,769],{"class":472}," ... ",[466,771,772],{"class":475},"},\n",[466,774,776,778,781,783,785,787,789],{"class":468,"line":775},9,[466,777,756],{"class":475},[466,779,780],{"class":735},"vector_db",[466,782,732],{"class":475},[466,784,108],{"class":475},[466,786,766],{"class":475},[466,788,769],{"class":472},[466,790,772],{"class":475},[466,792,794,796,799,801,803,805,807],{"class":468,"line":793},10,[466,795,756],{"class":475},[466,797,798],{"class":735},"embedder",[466,800,732],{"class":475},[466,802,108],{"class":475},[466,804,766],{"class":475},[466,806,769],{"class":472},[466,808,772],{"class":475},[466,810,812],{"class":468,"line":811},11,[466,813,814],{"class":475},"    },\n",[466,816,818],{"class":468,"line":817},12,[466,819,487],{"class":475},[466,821,823,826,828,831,833,836,838,840],{"class":468,"line":822},13,[466,824,825],{"class":650},"m ",[466,827,714],{"class":475},[466,829,830],{"class":650}," MemoryFactory",[466,832,663],{"class":475},[466,834,835],{"class":472},"from_config",[466,837,476],{"class":475},[466,839,479],{"class":472},[466,841,487],{"class":475},[466,843,845],{"class":468,"line":844},14,[466,846,705],{"emptyLinePlaceholder":704},[466,848,850],{"class":468,"line":849},15,[466,851,853],{"class":852},"sHwdD","# 提取并添加记忆\n",[466,855,857,860,862,865,867,870],{"class":468,"line":856},16,[466,858,859],{"class":650},"memories ",[466,861,714],{"class":475},[466,863,864],{"class":650}," m",[466,866,663],{"class":475},[466,868,869],{"class":472},"extract",[466,871,872],{"class":475},"([\n",[466,874,876,879,881,884,886,888,891,894,896,899,901,904,906,908,910,913,915],{"class":468,"line":875},17,[466,877,878],{"class":475},"    {",[466,880,732],{"class":475},[466,882,883],{"class":735},"role",[466,885,732],{"class":475},[466,887,108],{"class":475},[466,889,890],{"class":475}," \"",[466,892,893],{"class":735},"user",[466,895,732],{"class":475},[466,897,898],{"class":475},",",[466,900,890],{"class":475},[466,902,903],{"class":735},"content",[466,905,732],{"class":475},[466,907,108],{"class":475},[466,909,890],{"class":475},[466,911,912],{"class":735},"I love tomatoes.",[466,914,732],{"class":475},[466,916,772],{"class":475},[466,918,920,922,924,926,928,930,932,935,937,939,941,943,945,947,949,952,954],{"class":468,"line":919},18,[466,921,878],{"class":475},[466,923,732],{"class":475},[466,925,883],{"class":735},[466,927,732],{"class":475},[466,929,108],{"class":475},[466,931,890],{"class":475},[466,933,934],{"class":735},"assistant",[466,936,732],{"class":475},[466,938,898],{"class":475},[466,940,890],{"class":475},[466,942,903],{"class":735},[466,944,732],{"class":475},[466,946,108],{"class":475},[466,948,890],{"class":475},[466,950,951],{"class":735},"Great! Tomatoes are delicious.",[466,953,732],{"class":475},[466,955,772],{"class":475},[466,957,959],{"class":468,"line":958},19,[466,960,961],{"class":475},"])\n",[466,963,965,968,970,973,975,977],{"class":468,"line":964},20,[466,966,967],{"class":650},"m",[466,969,663],{"class":475},[466,971,972],{"class":472},"add",[466,974,476],{"class":475},[466,976,688],{"class":472},[466,978,487],{"class":475},[466,980,982],{"class":468,"line":981},21,[466,983,705],{"emptyLinePlaceholder":704},[466,985,987],{"class":468,"line":986},22,[466,988,989],{"class":852},"# 通过id手动创建并添加一个记忆\n",[466,991,993,996,998,1000,1003],{"class":468,"line":992},23,[466,994,995],{"class":650},"memory_id ",[466,997,714],{"class":475},[466,999,890],{"class":475},[466,1001,1002],{"class":735},"xxx",[466,1004,1005],{"class":475},"\"\n",[466,1007,1009,1011,1013,1015],{"class":468,"line":1008},24,[466,1010,967],{"class":650},[466,1012,663],{"class":475},[466,1014,972],{"class":472},[466,1016,720],{"class":475},[466,1018,1020],{"class":468,"line":1019},25,[466,1021,1022],{"class":475},"  [\n",[466,1024,1026],{"class":468,"line":1025},26,[466,1027,1028],{"class":475},"        {\n",[466,1030,1032,1035,1037,1039,1041,1044],{"class":468,"line":1031},27,[466,1033,1034],{"class":475},"            \"",[466,1036,138],{"class":735},[466,1038,732],{"class":475},[466,1040,108],{"class":475},[466,1042,1043],{"class":472}," memory_id",[466,1045,741],{"class":475},[466,1047,1049,1051,1053,1055,1057,1059,1062,1064],{"class":468,"line":1048},28,[466,1050,1034],{"class":475},[466,1052,153],{"class":735},[466,1054,732],{"class":475},[466,1056,108],{"class":475},[466,1058,890],{"class":475},[466,1060,1061],{"class":735},"User is Chinese.",[466,1063,732],{"class":475},[466,1065,741],{"class":475},[466,1067,1069],{"class":468,"line":1068},29,[466,1070,1071],{"class":472},"            ...\n",[466,1073,1075],{"class":468,"line":1074},30,[466,1076,1077],{"class":475},"        }\n",[466,1079,1081,1084],{"class":468,"line":1080},31,[466,1082,1083],{"class":475},"    ]",[466,1085,1086],{"class":472},"  \n",[466,1088,1090],{"class":468,"line":1089},32,[466,1091,487],{"class":475},[466,1093,1095],{"class":468,"line":1094},33,[466,1096,705],{"emptyLinePlaceholder":704},[466,1098,1100],{"class":468,"line":1099},34,[466,1101,1102],{"class":852},"# 检索记忆\n",[466,1104,1106,1109,1111,1113,1115,1118,1120,1122,1125,1127,1129,1132,1134,1138],{"class":468,"line":1105},35,[466,1107,1108],{"class":650},"results ",[466,1110,714],{"class":475},[466,1112,864],{"class":650},[466,1114,663],{"class":475},[466,1116,1117],{"class":472},"search",[466,1119,476],{"class":475},[466,1121,732],{"class":475},[466,1123,1124],{"class":735},"Tell me more about the user",[466,1126,732],{"class":475},[466,1128,898],{"class":475},[466,1130,1131],{"class":726}," top_k",[466,1133,714],{"class":475},[466,1135,1137],{"class":1136},"sbssI","2",[466,1139,487],{"class":475},[466,1141,1143],{"class":468,"line":1142},36,[466,1144,705],{"emptyLinePlaceholder":704},[466,1146,1148],{"class":468,"line":1147},37,[466,1149,1150],{"class":852},"# 更新记忆\n",[466,1152,1154,1156,1158,1161,1163,1166,1168,1170,1172,1174,1176,1178,1180,1183,1185,1187,1190],{"class":468,"line":1153},38,[466,1155,967],{"class":650},[466,1157,663],{"class":475},[466,1159,1160],{"class":472},"update",[466,1162,476],{"class":475},[466,1164,1165],{"class":472},"memory_id",[466,1167,898],{"class":475},[466,1169,766],{"class":475},[466,1171,732],{"class":475},[466,1173,153],{"class":735},[466,1175,732],{"class":475},[466,1177,108],{"class":475},[466,1179,890],{"class":475},[466,1181,1182],{"class":735},"User is Canadian.",[466,1184,732],{"class":475},[466,1186,898],{"class":475},[466,1188,1189],{"class":472}," ...",[466,1191,1192],{"class":475},"})\n",[466,1194,1196],{"class":468,"line":1195},39,[466,1197,705],{"emptyLinePlaceholder":704},[466,1199,1201],{"class":468,"line":1200},40,[466,1202,1203],{"class":852},"# 删除记忆\n",[466,1205,1207,1209,1211,1214,1217,1219],{"class":468,"line":1206},41,[466,1208,967],{"class":650},[466,1210,663],{"class":475},[466,1212,1213],{"class":472},"delete",[466,1215,1216],{"class":475},"([",[466,1218,1165],{"class":472},[466,1220,961],{"class":475},[466,1222,1224],{"class":468,"line":1223},42,[466,1225,705],{"emptyLinePlaceholder":704},[466,1227,1229],{"class":468,"line":1228},43,[466,1230,1231],{"class":852},"# 将所有记忆序列化到目录中的JSON文件\u002F从存储的文件中加载记忆\n",[466,1233,1235,1237,1239,1242,1244,1246,1249,1251],{"class":468,"line":1234},44,[466,1236,967],{"class":650},[466,1238,663],{"class":475},[466,1240,1241],{"class":472},"dump",[466,1243,476],{"class":475},[466,1245,732],{"class":475},[466,1247,1248],{"class":735},"tmp\u002Fmem",[466,1250,732],{"class":475},[466,1252,487],{"class":475},[466,1254,1256,1258,1260,1263,1265,1267,1269,1271],{"class":468,"line":1255},45,[466,1257,967],{"class":650},[466,1259,663],{"class":475},[466,1261,1262],{"class":472},"load",[466,1264,476],{"class":475},[466,1266,732],{"class":475},[466,1268,1248],{"class":735},[466,1270,732],{"class":475},[466,1272,487],{"class":475},[1274,1275,1276],"note",{},[102,1277,1278,1281,1284,1285,1287,1288],{},[352,1279,1280],{},"扩展：互联网检索",[1282,1283],"br",{},"\nGeneralTextMemory 可以与互联网检索结合使用，从网页提取内容并添加到记忆库。",[1282,1286],{},"\n查看示例：",[21,1289,1291],{"href":1290},".\u002Ftree_textual_memory#%E4%BB%8E%E4%BA%92%E8%81%94%E7%BD%91%E6%A3%80%E7%B4%A2%E8%AE%B0%E5%BF%86%E5%8F%AF%E9%80%89","从互联网检索记忆",[1274,1293,1294],{},[102,1295,1296,1299,1301,1302,362,1305,1307,1308],{},[352,1297,1298],{},"进阶：使用 MultiModal Reader",[1282,1300],{},"\n如果需要处理图片、URL、文件等多模态内容，可以使用 ",[34,1303,1304],{},"MultiModalStructMemReader",[1282,1306],{},"\n查看完整示例：",[21,1309,1311],{"href":1310},".\u002Ftree_textual_memory#%E4%BD%BF%E7%94%A8-multimodalstructmemreader%E9%AB%98%E7%BA%A7","使用 MultiModalStructMemReader",[11,1313,98],{"id":98},[15,1315,1316,1319,1322],{},[18,1317,1318],{},"使用Qdrant（或兼容）向量DB进行快速相似度搜索",[18,1320,1321],{},"嵌入和提取模型是可配置的（支持olama\u002FOpenAI）",[18,1323,1324,1327],{},[34,1325,1326],{},"\u002Ftests","中的集成测试涵盖了所有方法。",[1329,1330,1331],"style",{},"html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .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 .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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":462,"searchDepth":654,"depth":654,"links":1333},[1334,1335,1339,1340,1345,1346,1347],{"id":13,"depth":654,"text":13},{"id":24,"depth":654,"text":24,"children":1336},[1337],{"id":178,"depth":679,"text":1338},"元数据域 (TextualMemoryMetadata)",{"id":343,"depth":654,"text":343},{"id":451,"depth":654,"text":1341,"children":1342},"API总结 (GeneralTextMemory)",[1343,1344],{"id":54,"depth":679,"text":54},{"id":60,"depth":679,"text":60},{"id":66,"depth":654,"text":66},{"id":72,"depth":654,"text":72},{"id":98,"depth":654,"text":98},"`GeneralTextMemory` 是MemOS中一个灵活的、基于向量的明文记忆模块，用于存储、搜索和管理非结构化知识。如果说 Naive 模块是‘关键词匹配’，那么 GeneralTextMemory 就是‘理解意思’的智能索引，它适用于会话代理、个人助理和任何需要语义记忆检索的系统。","md",{},"\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fgeneral_textual_memory",{"title":5,"description":462},"cn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fgeneral_textual_memory","rS4hfKLpvgqhHO3Rdqax_9mO9EmQpnOTal3_30GVozA",[1356,1364],{"title":1357,"path":1358,"stem":1359,"icon":1360,"framework":6,"module":6,"class":1361,"target":-1,"active":1362,"defaultOpen":1362,"children":-1,"description":1363},"简单明文记忆","\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fnaive_textual_memory","open_source\u002Fmodules\u002Fmemories\u002Fnaive_textual_memory","i-ri-file-text-line",[],false,"MemOS 中最轻量级的记忆模块，专为快速原型开发和简单场景设计。无需向量数据库，使用关键词匹配即可快速检索。让我们用最简单的方式开始使用 MemOS 记忆系统",{"title":1365,"path":1366,"stem":1367,"icon":1368,"framework":6,"module":6,"class":1369,"target":-1,"active":1362,"defaultOpen":1362,"children":-1,"description":1370},"偏好明文记忆","\u002Fcn\u002Fopen_source\u002Fmodules\u002Fmemories\u002Fpreference_textual_memory","open_source\u002Fmodules\u002Fmemories\u002Fpreference_textual_memory","i-ri-user-heart-line",[],"PreferenceTextMemory 是MemOS中用于存储和管理用户偏好的明文记忆模块。它适用于需要根据用户偏好进行记忆检索的场景。",1774339751309]