Skip to main content

轻量级 AI 记忆系统

Project description

PalaceLite

License: MIT Python 3.9+ [Version] PyPI version

轻量级 AI 记忆系统,灵感来自记忆宫殿。默认离线运行,数据完全本地化。

安装

pip install palacelite

首次使用需下载嵌入模型(约 100MB),添加 --online 参数即可自动下载,之后可永久离线运行:

palacelite chat -m /path/to/model.gguf --online

核心概念

采用三层结构组织记忆:

  • Wing:项目或人
  • Room:具体话题
  • Drawer:记忆条目

每条记忆存储原文和向量,支持混合检索(向量相似度 + 时间衰减 + 重要性加权)。

快速开始

CLI 命令

# 添加记忆
palacelite add -w default -r chat -c "用户喜欢 PostgreSQL"

# 搜索记忆
palacelite search -q "数据库"

# 带记忆对话
palacelite chat -m /path/to/model.gguf -w default -r chat

# 列出活跃记忆
palacelite list

# 统计信息
palacelite stats

# 列出所有 Wing
palacelite wings

# 列出指定 Wing 下的 Room
palacelite rooms default

Python API

from palacelite import PalaceLite

p = PalaceLite()  # 默认离线,offline=False 可联网下载模型

# 添加记忆
p.add_memory("用户喜欢 PostgreSQL", "default", "chat")

# 搜索
results = p.search("数据库")

# 构建 LLM 上下文
context = p.build_context("数据库选型")

对话模式

# 首次使用(下载嵌入模型)
palacelite chat -m /path/to/model.gguf --online

# 日常使用
palacelite chat -m /path/to/model.gguf

# 指定 GPU 层数
palacelite chat -m /path/to/model.gguf -g 30

# 使用提炼模型压缩记忆
palacelite chat -m /path/to/model.gguf --distiller-model /path/to/small.gguf

对话命令:/help/mem <关键词>/list/stats/clear/quit

记忆维护

归档旧记忆

# 归档超过 90 天且重要性低于 2 的记忆
palacelite archive-old --days 90 --importance 2

# 列出已归档记忆
palacelite list-archived

# 导出归档记忆到 JSON
palacelite export-archived

# 永久删除归档记忆
palacelite delete-archived

数据清洗与重建

# 清洗导出数据(用于微调)
python scripts/clean_memories.py ~/backup.json ~/cleaned.json

# 更换嵌入模型后重建向量库
python scripts/rebuild_embeddings.py

命令速查

命令 说明
add -w <wing> -r <room> -c <内容> 添加记忆
search -q <关键词> 搜索记忆
chat -m <模型路径> 启动对话
list [-w wing] [-r room] 列出活跃记忆
stats 显示统计信息
wings 列出所有 Wing
rooms <wing> 列出 Wing 下的 Room
archive-old [--days 90] [--importance 2] 批量归档
list-archived 列出已归档记忆
export-archived [-o 路径] 导出归档
delete-archived 删除归档

配置

环境变量 默认值 说明
PALACE_MODEL_PATH - GGUF 模型文件路径
PALACE_MODEL_DIR ~/Public/ai/models 模型存放目录
GPU_LAYERS 20 GPU 加速层数

工作目录默认为 ~/.palacelite,可通过 PalaceLite(workspace="/path") 自定义。

架构

当前版本 (0.5.0) 已完成:

  • SQLite-vec 向量存储,无需外部向量数据库
  • 异步记忆提炼,不阻塞主对话
  • 关系图谱 Schema(relations、patrol_queue),为后续版本做准备
  • 混合检索:向量相似度 + 时间衰减 + 重要性加权
  • 记忆归档与导出

路线图详见 ROADMAP1.md 和 ROADMAP2.md。

许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

palacelite-0.5.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

palacelite-0.5.0-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

File details

Details for the file palacelite-0.5.0.tar.gz.

File metadata

  • Download URL: palacelite-0.5.0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for palacelite-0.5.0.tar.gz
Algorithm Hash digest
SHA256 17f2b64e7889cd8576e3dabd14064aa69aa1ec5ca2eef6c9f268f1d01731777c
MD5 d7c0cfce60e0e64e009fe02694714517
BLAKE2b-256 008f1fca76f423cb2ed456fedd969c4d57e137a7c11e56d8eda83385cf06224e

See more details on using hashes here.

File details

Details for the file palacelite-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: palacelite-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 30.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for palacelite-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33f476046c19bc1af450843d5f53ae07544f7bfbd8dcf915caef49f86ac2a5fd
MD5 a9fc317894d9271f8630c47f97b92fdc
BLAKE2b-256 3308f8e7471f7651d8b2775b033906dee33dc4e47524fe99e3a4cdc8fba601e6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page