Bloom_Ware / core /database /__init__.py
XiaoBai1221's picture
修復 core/database/__init__.py 的縮排錯誤和列表關閉問題
3fd16d8
"""
數據庫模組 - 整合 Firestore 操作、緩存、優化策略
結構:
- base.py: 基礎 Firestore 操作(用戶、對話、消息、記憶)
- cache.py: LRU 緩存實現(多級緩存、寫入緩衝)
- optimized.py: 優化版數據庫操作(帶緩存、請求合併、批量寫入)
使用建議:
- 高頻讀取操作:使用 optimized 版本(get_user_by_id, get_chat, get_user_chats)
- 寫入操作:使用 base 版本(create_chat, update_chat_title, delete_chat)
- 緩存管理:使用 cache.db_cache
"""
# 從 base 導入基礎設施
from .base import (
connect_to_firestore,
firestore_db,
users_collection,
chats_collection,
messages_collection,
memories_collection,
ensure_indexes,
)
# 從 base 導入基礎操作(未優化)
from .base import (
create_chat,
save_message,
get_chat_messages,
update_chat_title,
delete_chat,
set_chat_emotion,
get_chat_emotion,
set_user_speaker_label,
get_user_by_speaker_label,
save_memory,
search_memories,
update_memory_importance,
delete_memory,
cleanup_old_memories,
get_user_history,
create_or_login_google_user,
# 環境 Context
set_user_env_current,
add_user_env_snapshot,
get_user_env_current,
# 地理/路線快取
get_geo_cache,
set_geo_cache,
get_route_cache,
set_route_cache,
)
# 從 optimized 導入優化版操作(帶緩存)
from .optimized import (
get_user_by_id,
get_user_chats,
get_chat,
save_chat_message,
get_user_memories,
batch_writer,
query_optimizer,
)
# 從 cache 導入緩存管理
from .cache import db_cache, periodic_cache_maintenance
__all__ = [
# 基礎設施
"connect_to_firestore",
"firestore_db",
"users_collection",
"chats_collection",
"messages_collection",
"memories_collection",
"ensure_indexes",
# 用戶操作
"get_user_by_id", # 優化版
"create_or_login_google_user",
"set_user_speaker_label",
"get_user_by_speaker_label",
# 對話操作
"create_chat",
"get_chat", # 優化版
"get_user_chats", # 優化版
"save_chat_message", # 優化版
"get_chat_messages",
"update_chat_title",
"delete_chat",
"set_chat_emotion",
"get_chat_emotion",
# 消息操作
"save_message",
"get_user_history",
# 記憶操作
"save_memory",
"get_user_memories", # 優化版
"search_memories",
"update_memory_importance",
"delete_memory",
"cleanup_old_memories",
# 優化工具
"batch_writer",
"query_optimizer",
"db_cache",
"periodic_cache_maintenance",
# 環境 Context
"set_user_env_current",
"add_user_env_snapshot",
"get_user_env_current",
# 地理/路線快取
"get_geo_cache",
"set_geo_cache",
"get_route_cache",
"set_route_cache",
]