修复了数据库无法读取记忆和知识的问题,以及图片保存问题

This commit is contained in:
SengokuCola
2025-03-12 15:32:25 +08:00
parent aab7fe1c5a
commit 3a61450642
6 changed files with 54 additions and 54 deletions

View File

@@ -246,7 +246,7 @@ class EmojiManager:
# 即使表情包已存在也检查是否需要同步到images集合 # 即使表情包已存在也检查是否需要同步到images集合
description = existing_emoji.get('discription') description = existing_emoji.get('discription')
# 检查是否在images集合中存在 # 检查是否在images集合中存在
existing_image = image_manager.db.db.images.find_one({'hash': image_hash}) existing_image = image_manager.db.images.find_one({'hash': image_hash})
if not existing_image: if not existing_image:
# 同步到images集合 # 同步到images集合
image_doc = { image_doc = {
@@ -256,7 +256,7 @@ class EmojiManager:
'description': description, 'description': description,
'timestamp': int(time.time()) 'timestamp': int(time.time())
} }
image_manager.db.db.images.update_one( image_manager.db.images.update_one(
{'hash': image_hash}, {'hash': image_hash},
{'$set': image_doc}, {'$set': image_doc},
upsert=True upsert=True
@@ -318,7 +318,7 @@ class EmojiManager:
'description': description, 'description': description,
'timestamp': int(time.time()) 'timestamp': int(time.time())
} }
image_manager.db.db.images.update_one( image_manager.db.images.update_one(
{'hash': image_hash}, {'hash': image_hash},
{'$set': image_doc}, {'$set': image_doc},
upsert=True upsert=True

View File

@@ -88,13 +88,13 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
list: 消息记录列表,每个记录包含时间和文本信息 list: 消息记录列表,每个记录包含时间和文本信息
""" """
chat_records = [] chat_records = []
closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) closest_record = db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)])
if closest_record: if closest_record:
closest_time = closest_record['time'] closest_time = closest_record['time']
chat_id = closest_record['chat_id'] # 获取chat_id chat_id = closest_record['chat_id'] # 获取chat_id
# 获取该时间戳之后的length条消息保持相同的chat_id # 获取该时间戳之后的length条消息保持相同的chat_id
chat_records = list(db.db.messages.find( chat_records = list(db.messages.find(
{ {
"time": {"$gt": closest_time}, "time": {"$gt": closest_time},
"chat_id": chat_id # 添加chat_id过滤 "chat_id": chat_id # 添加chat_id过滤
@@ -128,7 +128,7 @@ async def get_recent_group_messages(db, chat_id:str, limit: int = 12) -> list:
""" """
# 从数据库获取最近消息 # 从数据库获取最近消息
recent_messages = list(db.db.messages.find( recent_messages = list(db.messages.find(
{"chat_id": chat_id}, {"chat_id": chat_id},
).sort("time", -1).limit(limit)) ).sort("time", -1).limit(limit))
@@ -162,7 +162,7 @@ async def get_recent_group_messages(db, chat_id:str, limit: int = 12) -> list:
def get_recent_group_detailed_plain_text(db, chat_stream_id: int, limit: int = 12, combine=False): def get_recent_group_detailed_plain_text(db, chat_stream_id: int, limit: int = 12, combine=False):
recent_messages = list(db.db.messages.find( recent_messages = list(db.messages.find(
{"chat_id": chat_stream_id}, {"chat_id": chat_stream_id},
{ {
"time": 1, # 返回时间字段 "time": 1, # 返回时间字段

View File

@@ -349,7 +349,7 @@ class Hippocampus:
def sync_memory_to_db(self): def sync_memory_to_db(self):
"""检查并同步内存中的图结构与数据库""" """检查并同步内存中的图结构与数据库"""
# 获取数据库中所有节点和内存中所有节点 # 获取数据库中所有节点和内存中所有节点
db_nodes = list(self.memory_graph.db.db.graph_data.nodes.find()) db_nodes = list(self.memory_graph.db.graph_data.nodes.find())
memory_nodes = list(self.memory_graph.G.nodes(data=True)) memory_nodes = list(self.memory_graph.G.nodes(data=True))
# 转换数据库节点为字典格式,方便查找 # 转换数据库节点为字典格式,方便查找
@@ -377,7 +377,7 @@ class Hippocampus:
'created_time': created_time, 'created_time': created_time,
'last_modified': last_modified 'last_modified': last_modified
} }
self.memory_graph.db.db.graph_data.nodes.insert_one(node_data) self.memory_graph.db.graph_data.nodes.insert_one(node_data)
else: else:
# 获取数据库中节点的特征值 # 获取数据库中节点的特征值
db_node = db_nodes_dict[concept] db_node = db_nodes_dict[concept]
@@ -385,7 +385,7 @@ class Hippocampus:
# 如果特征值不同,则更新节点 # 如果特征值不同,则更新节点
if db_hash != memory_hash: if db_hash != memory_hash:
self.memory_graph.db.db.graph_data.nodes.update_one( self.memory_graph.db.graph_data.nodes.update_one(
{'concept': concept}, {'concept': concept},
{'$set': { {'$set': {
'memory_items': memory_items, 'memory_items': memory_items,
@@ -396,7 +396,7 @@ class Hippocampus:
) )
# 处理边的信息 # 处理边的信息
db_edges = list(self.memory_graph.db.db.graph_data.edges.find()) db_edges = list(self.memory_graph.db.graph_data.edges.find())
memory_edges = list(self.memory_graph.G.edges(data=True)) memory_edges = list(self.memory_graph.G.edges(data=True))
# 创建边的哈希值字典 # 创建边的哈希值字典
@@ -428,11 +428,11 @@ class Hippocampus:
'created_time': created_time, 'created_time': created_time,
'last_modified': last_modified 'last_modified': last_modified
} }
self.memory_graph.db.db.graph_data.edges.insert_one(edge_data) self.memory_graph.db.graph_data.edges.insert_one(edge_data)
else: else:
# 检查边的特征值是否变化 # 检查边的特征值是否变化
if db_edge_dict[edge_key]['hash'] != edge_hash: if db_edge_dict[edge_key]['hash'] != edge_hash:
self.memory_graph.db.db.graph_data.edges.update_one( self.memory_graph.db.graph_data.edges.update_one(
{'source': source, 'target': target}, {'source': source, 'target': target},
{'$set': { {'$set': {
'hash': edge_hash, 'hash': edge_hash,
@@ -451,7 +451,7 @@ class Hippocampus:
self.memory_graph.G.clear() self.memory_graph.G.clear()
# 从数据库加载所有节点 # 从数据库加载所有节点
nodes = list(self.memory_graph.db.db.graph_data.nodes.find()) nodes = list(self.memory_graph.db.graph_data.nodes.find())
for node in nodes: for node in nodes:
concept = node['concept'] concept = node['concept']
memory_items = node.get('memory_items', []) memory_items = node.get('memory_items', [])
@@ -468,7 +468,7 @@ class Hippocampus:
if 'last_modified' not in node: if 'last_modified' not in node:
update_data['last_modified'] = current_time update_data['last_modified'] = current_time
self.memory_graph.db.db.graph_data.nodes.update_one( self.memory_graph.db.graph_data.nodes.update_one(
{'concept': concept}, {'concept': concept},
{'$set': update_data} {'$set': update_data}
) )
@@ -485,7 +485,7 @@ class Hippocampus:
last_modified=last_modified) last_modified=last_modified)
# 从数据库加载所有边 # 从数据库加载所有边
edges = list(self.memory_graph.db.db.graph_data.edges.find()) edges = list(self.memory_graph.db.graph_data.edges.find())
for edge in edges: for edge in edges:
source = edge['source'] source = edge['source']
target = edge['target'] target = edge['target']
@@ -501,7 +501,7 @@ class Hippocampus:
if 'last_modified' not in edge: if 'last_modified' not in edge:
update_data['last_modified'] = current_time update_data['last_modified'] = current_time
self.memory_graph.db.db.graph_data.edges.update_one( self.memory_graph.db.graph_data.edges.update_one(
{'source': source, 'target': target}, {'source': source, 'target': target},
{'$set': update_data} {'$set': update_data}
) )

View File

@@ -56,13 +56,13 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
list: 消息记录字典列表,每个字典包含消息内容和时间信息 list: 消息记录字典列表,每个字典包含消息内容和时间信息
""" """
chat_records = [] chat_records = []
closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) closest_record = db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)])
if closest_record and closest_record.get('memorized', 0) < 4: if closest_record and closest_record.get('memorized', 0) < 4:
closest_time = closest_record['time'] closest_time = closest_record['time']
group_id = closest_record['group_id'] group_id = closest_record['group_id']
# 获取该时间戳之后的length条消息且groupid相同 # 获取该时间戳之后的length条消息且groupid相同
records = list(db.db.messages.find( records = list(db.messages.find(
{"time": {"$gt": closest_time}, "group_id": group_id} {"time": {"$gt": closest_time}, "group_id": group_id}
).sort('time', 1).limit(length)) ).sort('time', 1).limit(length))
@@ -74,7 +74,7 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
return '' return ''
# 更新memorized值 # 更新memorized值
db.db.messages.update_one( db.messages.update_one(
{"_id": record["_id"]}, {"_id": record["_id"]},
{"$set": {"memorized": current_memorized + 1}} {"$set": {"memorized": current_memorized + 1}}
) )
@@ -323,7 +323,7 @@ class Hippocampus:
self.memory_graph.G.clear() self.memory_graph.G.clear()
# 从数据库加载所有节点 # 从数据库加载所有节点
nodes = self.memory_graph.db.db.graph_data.nodes.find() nodes = self.memory_graph.db.graph_data.nodes.find()
for node in nodes: for node in nodes:
concept = node['concept'] concept = node['concept']
memory_items = node.get('memory_items', []) memory_items = node.get('memory_items', [])
@@ -334,7 +334,7 @@ class Hippocampus:
self.memory_graph.G.add_node(concept, memory_items=memory_items) self.memory_graph.G.add_node(concept, memory_items=memory_items)
# 从数据库加载所有边 # 从数据库加载所有边
edges = self.memory_graph.db.db.graph_data.edges.find() edges = self.memory_graph.db.graph_data.edges.find()
for edge in edges: for edge in edges:
source = edge['source'] source = edge['source']
target = edge['target'] target = edge['target']
@@ -371,7 +371,7 @@ class Hippocampus:
使用特征值(哈希值)快速判断是否需要更新 使用特征值(哈希值)快速判断是否需要更新
""" """
# 获取数据库中所有节点和内存中所有节点 # 获取数据库中所有节点和内存中所有节点
db_nodes = list(self.memory_graph.db.db.graph_data.nodes.find()) db_nodes = list(self.memory_graph.db.graph_data.nodes.find())
memory_nodes = list(self.memory_graph.G.nodes(data=True)) memory_nodes = list(self.memory_graph.G.nodes(data=True))
# 转换数据库节点为字典格式,方便查找 # 转换数据库节点为字典格式,方便查找
@@ -394,7 +394,7 @@ class Hippocampus:
'memory_items': memory_items, 'memory_items': memory_items,
'hash': memory_hash 'hash': memory_hash
} }
self.memory_graph.db.db.graph_data.nodes.insert_one(node_data) self.memory_graph.db.graph_data.nodes.insert_one(node_data)
else: else:
# 获取数据库中节点的特征值 # 获取数据库中节点的特征值
db_node = db_nodes_dict[concept] db_node = db_nodes_dict[concept]
@@ -403,7 +403,7 @@ class Hippocampus:
# 如果特征值不同,则更新节点 # 如果特征值不同,则更新节点
if db_hash != memory_hash: if db_hash != memory_hash:
# logger.info(f"更新节点内容: {concept}") # logger.info(f"更新节点内容: {concept}")
self.memory_graph.db.db.graph_data.nodes.update_one( self.memory_graph.db.graph_data.nodes.update_one(
{'concept': concept}, {'concept': concept},
{'$set': { {'$set': {
'memory_items': memory_items, 'memory_items': memory_items,
@@ -416,10 +416,10 @@ class Hippocampus:
for db_node in db_nodes: for db_node in db_nodes:
if db_node['concept'] not in memory_concepts: if db_node['concept'] not in memory_concepts:
# logger.info(f"删除多余节点: {db_node['concept']}") # logger.info(f"删除多余节点: {db_node['concept']}")
self.memory_graph.db.db.graph_data.nodes.delete_one({'concept': db_node['concept']}) self.memory_graph.db.graph_data.nodes.delete_one({'concept': db_node['concept']})
# 处理边的信息 # 处理边的信息
db_edges = list(self.memory_graph.db.db.graph_data.edges.find()) db_edges = list(self.memory_graph.db.graph_data.edges.find())
memory_edges = list(self.memory_graph.G.edges()) memory_edges = list(self.memory_graph.G.edges())
# 创建边的哈希值字典 # 创建边的哈希值字典
@@ -445,12 +445,12 @@ class Hippocampus:
'num': 1, 'num': 1,
'hash': edge_hash 'hash': edge_hash
} }
self.memory_graph.db.db.graph_data.edges.insert_one(edge_data) self.memory_graph.db.graph_data.edges.insert_one(edge_data)
else: else:
# 检查边的特征值是否变化 # 检查边的特征值是否变化
if db_edge_dict[edge_key]['hash'] != edge_hash: if db_edge_dict[edge_key]['hash'] != edge_hash:
logger.info(f"更新边: {source} - {target}") logger.info(f"更新边: {source} - {target}")
self.memory_graph.db.db.graph_data.edges.update_one( self.memory_graph.db.graph_data.edges.update_one(
{'source': source, 'target': target}, {'source': source, 'target': target},
{'$set': {'hash': edge_hash}} {'$set': {'hash': edge_hash}}
) )
@@ -461,7 +461,7 @@ class Hippocampus:
if edge_key not in memory_edge_set: if edge_key not in memory_edge_set:
source, target = edge_key source, target = edge_key
logger.info(f"删除多余边: {source} - {target}") logger.info(f"删除多余边: {source} - {target}")
self.memory_graph.db.db.graph_data.edges.delete_one({ self.memory_graph.db.graph_data.edges.delete_one({
'source': source, 'source': source,
'target': target 'target': target
}) })
@@ -487,9 +487,9 @@ class Hippocampus:
topic: 要删除的节点概念 topic: 要删除的节点概念
""" """
# 删除节点 # 删除节点
self.memory_graph.db.db.graph_data.nodes.delete_one({'concept': topic}) self.memory_graph.db.graph_data.nodes.delete_one({'concept': topic})
# 删除所有涉及该节点的边 # 删除所有涉及该节点的边
self.memory_graph.db.db.graph_data.edges.delete_many({ self.memory_graph.db.graph_data.edges.delete_many({
'$or': [ '$or': [
{'source': topic}, {'source': topic},
{'target': topic} {'target': topic}

View File

@@ -115,13 +115,13 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
list: 消息记录字典列表,每个字典包含消息内容和时间信息 list: 消息记录字典列表,每个字典包含消息内容和时间信息
""" """
chat_records = [] chat_records = []
closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) closest_record = db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)])
if closest_record and closest_record.get('memorized', 0) < 4: if closest_record and closest_record.get('memorized', 0) < 4:
closest_time = closest_record['time'] closest_time = closest_record['time']
group_id = closest_record['group_id'] group_id = closest_record['group_id']
# 获取该时间戳之后的length条消息且groupid相同 # 获取该时间戳之后的length条消息且groupid相同
records = list(db.db.messages.find( records = list(db.messages.find(
{"time": {"$gt": closest_time}, "group_id": group_id} {"time": {"$gt": closest_time}, "group_id": group_id}
).sort('time', 1).limit(length)) ).sort('time', 1).limit(length))
@@ -133,7 +133,7 @@ def get_cloest_chat_from_db(db, length: int, timestamp: str):
return '' return ''
# 更新memorized值 # 更新memorized值
db.db.messages.update_one( db.messages.update_one(
{"_id": record["_id"]}, {"_id": record["_id"]},
{"$set": {"memorized": current_memorized + 1}} {"$set": {"memorized": current_memorized + 1}}
) )
@@ -163,7 +163,7 @@ class Memory_cortex:
default_time = datetime.datetime.now().timestamp() default_time = datetime.datetime.now().timestamp()
# 从数据库加载所有节点 # 从数据库加载所有节点
nodes = self.memory_graph.db.db.graph_data.nodes.find() nodes = self.memory_graph.db.graph_data.nodes.find()
for node in nodes: for node in nodes:
concept = node['concept'] concept = node['concept']
memory_items = node.get('memory_items', []) memory_items = node.get('memory_items', [])
@@ -180,7 +180,7 @@ class Memory_cortex:
created_time = default_time created_time = default_time
last_modified = default_time last_modified = default_time
# 更新数据库中的节点 # 更新数据库中的节点
self.memory_graph.db.db.graph_data.nodes.update_one( self.memory_graph.db.graph_data.nodes.update_one(
{'concept': concept}, {'concept': concept},
{'$set': { {'$set': {
'created_time': created_time, 'created_time': created_time,
@@ -196,7 +196,7 @@ class Memory_cortex:
last_modified=last_modified) last_modified=last_modified)
# 从数据库加载所有边 # 从数据库加载所有边
edges = self.memory_graph.db.db.graph_data.edges.find() edges = self.memory_graph.db.graph_data.edges.find()
for edge in edges: for edge in edges:
source = edge['source'] source = edge['source']
target = edge['target'] target = edge['target']
@@ -212,7 +212,7 @@ class Memory_cortex:
created_time = default_time created_time = default_time
last_modified = default_time last_modified = default_time
# 更新数据库中的边 # 更新数据库中的边
self.memory_graph.db.db.graph_data.edges.update_one( self.memory_graph.db.graph_data.edges.update_one(
{'source': source, 'target': target}, {'source': source, 'target': target},
{'$set': { {'$set': {
'created_time': created_time, 'created_time': created_time,
@@ -256,7 +256,7 @@ class Memory_cortex:
current_time = datetime.datetime.now().timestamp() current_time = datetime.datetime.now().timestamp()
# 获取数据库中所有节点和内存中所有节点 # 获取数据库中所有节点和内存中所有节点
db_nodes = list(self.memory_graph.db.db.graph_data.nodes.find()) db_nodes = list(self.memory_graph.db.graph_data.nodes.find())
memory_nodes = list(self.memory_graph.G.nodes(data=True)) memory_nodes = list(self.memory_graph.G.nodes(data=True))
# 转换数据库节点为字典格式,方便查找 # 转换数据库节点为字典格式,方便查找
@@ -280,7 +280,7 @@ class Memory_cortex:
'created_time': data.get('created_time', current_time), 'created_time': data.get('created_time', current_time),
'last_modified': data.get('last_modified', current_time) 'last_modified': data.get('last_modified', current_time)
} }
self.memory_graph.db.db.graph_data.nodes.insert_one(node_data) self.memory_graph.db.graph_data.nodes.insert_one(node_data)
else: else:
# 获取数据库中节点的特征值 # 获取数据库中节点的特征值
db_node = db_nodes_dict[concept] db_node = db_nodes_dict[concept]
@@ -288,7 +288,7 @@ class Memory_cortex:
# 如果特征值不同,则更新节点 # 如果特征值不同,则更新节点
if db_hash != memory_hash: if db_hash != memory_hash:
self.memory_graph.db.db.graph_data.nodes.update_one( self.memory_graph.db.graph_data.nodes.update_one(
{'concept': concept}, {'concept': concept},
{'$set': { {'$set': {
'memory_items': memory_items, 'memory_items': memory_items,
@@ -301,10 +301,10 @@ class Memory_cortex:
memory_concepts = set(node[0] for node in memory_nodes) memory_concepts = set(node[0] for node in memory_nodes)
for db_node in db_nodes: for db_node in db_nodes:
if db_node['concept'] not in memory_concepts: if db_node['concept'] not in memory_concepts:
self.memory_graph.db.db.graph_data.nodes.delete_one({'concept': db_node['concept']}) self.memory_graph.db.graph_data.nodes.delete_one({'concept': db_node['concept']})
# 处理边的信息 # 处理边的信息
db_edges = list(self.memory_graph.db.db.graph_data.edges.find()) db_edges = list(self.memory_graph.db.graph_data.edges.find())
memory_edges = list(self.memory_graph.G.edges(data=True)) memory_edges = list(self.memory_graph.G.edges(data=True))
# 创建边的哈希值字典 # 创建边的哈希值字典
@@ -332,11 +332,11 @@ class Memory_cortex:
'created_time': data.get('created_time', current_time), 'created_time': data.get('created_time', current_time),
'last_modified': data.get('last_modified', current_time) 'last_modified': data.get('last_modified', current_time)
} }
self.memory_graph.db.db.graph_data.edges.insert_one(edge_data) self.memory_graph.db.graph_data.edges.insert_one(edge_data)
else: else:
# 检查边的特征值是否变化 # 检查边的特征值是否变化
if db_edge_dict[edge_key]['hash'] != edge_hash: if db_edge_dict[edge_key]['hash'] != edge_hash:
self.memory_graph.db.db.graph_data.edges.update_one( self.memory_graph.db.graph_data.edges.update_one(
{'source': source, 'target': target}, {'source': source, 'target': target},
{'$set': { {'$set': {
'hash': edge_hash, 'hash': edge_hash,
@@ -350,7 +350,7 @@ class Memory_cortex:
for edge_key in db_edge_dict: for edge_key in db_edge_dict:
if edge_key not in memory_edge_set: if edge_key not in memory_edge_set:
source, target = edge_key source, target = edge_key
self.memory_graph.db.db.graph_data.edges.delete_one({ self.memory_graph.db.graph_data.edges.delete_one({
'source': source, 'source': source,
'target': target 'target': target
}) })
@@ -365,9 +365,9 @@ class Memory_cortex:
topic: 要删除的节点概念 topic: 要删除的节点概念
""" """
# 删除节点 # 删除节点
self.memory_graph.db.db.graph_data.nodes.delete_one({'concept': topic}) self.memory_graph.db.graph_data.nodes.delete_one({'concept': topic})
# 删除所有涉及该节点的边 # 删除所有涉及该节点的边
self.memory_graph.db.db.graph_data.edges.delete_many({ self.memory_graph.db.graph_data.edges.delete_many({
'$or': [ '$or': [
{'source': topic}, {'source': topic},
{'target': topic} {'target': topic}

View File

@@ -176,7 +176,7 @@ class KnowledgeLibrary:
try: try:
current_hash = self.calculate_file_hash(file_path) current_hash = self.calculate_file_hash(file_path)
processed_record = self.db.db.processed_files.find_one({"file_path": file_path}) processed_record = self.db.processed_files.find_one({"file_path": file_path})
if processed_record: if processed_record:
if processed_record.get("hash") == current_hash: if processed_record.get("hash") == current_hash:
@@ -197,14 +197,14 @@ class KnowledgeLibrary:
"split_length": knowledge_length, "split_length": knowledge_length,
"created_at": datetime.now() "created_at": datetime.now()
} }
self.db.db.knowledges.insert_one(knowledge) self.db.knowledges.insert_one(knowledge)
result["chunks_processed"] += 1 result["chunks_processed"] += 1
split_by = processed_record.get("split_by", []) if processed_record else [] split_by = processed_record.get("split_by", []) if processed_record else []
if knowledge_length not in split_by: if knowledge_length not in split_by:
split_by.append(knowledge_length) split_by.append(knowledge_length)
self.db.db.processed_files.update_one( self.db.knowledges.processed_files.update_one(
{"file_path": file_path}, {"file_path": file_path},
{ {
"$set": { "$set": {
@@ -322,7 +322,7 @@ class KnowledgeLibrary:
{"$project": {"content": 1, "similarity": 1, "file_path": 1}} {"$project": {"content": 1, "similarity": 1, "file_path": 1}}
] ]
results = list(self.db.db.knowledges.aggregate(pipeline)) results = list(self.db.knowledges.aggregate(pipeline))
return results return results
# 创建单例实例 # 创建单例实例
@@ -346,7 +346,7 @@ if __name__ == "__main__":
elif choice == '2': elif choice == '2':
confirm = input("确定要删除所有知识吗?这个操作不可撤销!(y/n): ").strip().lower() confirm = input("确定要删除所有知识吗?这个操作不可撤销!(y/n): ").strip().lower()
if confirm == 'y': if confirm == 'y':
knowledge_library.db.db.knowledges.delete_many({}) knowledge_library.db.knowledges.delete_many({})
console.print("[green]已清空所有知识![/green]") console.print("[green]已清空所有知识![/green]")
continue continue
elif choice == '1': elif choice == '1':