diff --git a/README.md b/README.md index 22d9af07..9b17b3b5 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,56 @@ English | [**中文**](./README_ZH.md) # MemoryScope +

+ MemoryScope Logo +

+ +Equip your LLM chatbot with a powerful and flexible long term memory system. + +---- +## News + +- **[2024-07-29]** We release MemoryScope v0.1.0.2 now, which is also available in [PyPI](https://pypi.org/simple)! +---- +## What is MemoryScope + +MemoryScope is a powerful and flexible long term memory system for LLM chatbots. It consists +of a memory database and three customizable system operations, which can be flexibly combined to provide +robust long term memory services for your LLM chatbot. + +💾 Memory Database: +- MemoryScope comes with an *ElasticSearch (ES)* vector database to store all the +memory pieces recorded in the system. + +🛠️ System operations: +- Memory Retrieval: Upon arrival of a user query, this operation returns the semantically related memory pieces +and/or those from the corresponding time if the query involves reference to time. +- Memory Consolidation: This operation takes in a batch of user queries and returns important user information +extracted from the queries as consolidated *observations* to be stored in the memory database. +- Reflection and Re-consolidation: At regular intervals, this operation performs reflection upon newly recorded *observations* +to form and update *insights*. Then, memory re-consolidation is performed to ensure contradictions and repetitions +among memory pieces are properly handled. + +### Main Features + +⚡ Low response-time (RT) for the user: +- Backend operations (Memory Consolidation, Reflection and Re-consolidation) are decoupled from the frontend operation + (Memory Retrieval) in the system. +- While backend operations are usually (and are recommended to be) queued or executed at regular intervals, the +system's response time (RT) for the user depends solely on the frontend operation, which is only ~500ms. + +🌲 Hierarchical and coherent memory: +- The memory pieces stored in the system are in a hierarchical structure, with *insights* being the high level information +from the aggregation of similarly-themed *observations*. +- Contradictions and repetitions among memory pieces are handled periodically to ensure coherence of memory. +- Fictitious contents from the user are filtered out to avoid hallucinations by the LLM. + +⏰ Time awareness: +- The system is time sensitive when performing both Memory Retrieval and Memory Consolidation. Therefore, it can retrieve +accurate relevant information when the query involves reference to time. + + +### Example Usages # 🚀 Installation diff --git a/README_ZH.md b/README_ZH.md index f2bdfb27..cdd9efb8 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -1,16 +1,47 @@ [**English**](./README.md) | 中文 -# ModelScope +# MemoryScope -## 概念解释 +

+ MemoryScope Logo +

-- service: 在顶层的交互对象,用于定义operation的使用范围 +为您的大语言模型聊天机器人配备强大且灵活的长期记忆系统。 -- operation: 读写记忆等,对于记忆的操作方法,是worker的有序组合(workflow) +---- +## 新闻 -- workflow: 在operation中组合worker的方式 +- **[2024-07-26]** 我们现在发布了 MemoryScope v0.1.0.2,该版本也可以在 [PyPI](https://pypi.org/simple) 上获取! +---- +## MemoryScope 是什么 -- worker: 框架中的基本工作模块 +MemoryScope 是一个为LLM聊天机器人服务的强大且灵活的长期记忆系统。它由一个记忆数据库和三个可定制的系统操作组成,这些操作可以灵活组合, +为您的LLM聊天机器人提供强大的长期记忆服务。 + +💾 记忆数据库: +- MemoryScope 配备了一个 *ElasticSearch (ES)* 向量数据库,用于存储系统中记录的所有记忆片段。 + +🛠️ 系统操作: +- 记忆检索:当用户输入对话,此操作返回语义相关的记忆片段。如果输入对话包含对时间的指涉,则同时返回相应时间中的记忆片段。 +- 记忆巩固:此操作接收一批用户的输入对话,并从对话中提取重要的用户信息,将其作为 *observation* 形式的记忆片段存储在记忆数据库中。 +- 反思和再巩固:每隔一段时间,此操作对新记录的 *observations* 进行反思,以形成和更新 *insight* 形式的记忆片段。然后执行记忆再巩固, +以确保记忆片段之间的矛盾和重复得到妥善处理。 + +### 主要特点 + +⚡ 极低的用户时延(RT): +- 系统中后端操作(记忆巩固、反思和再巩固)与前端操作(记忆检索)相互独立。 +- 由于后端操作通常(并且推荐)通过队列或每隔固定间隔执行,系统的用户时延(RT)完全取决于前端操作,仅为约500毫秒。 + +🌲 记忆存储的层次结构和内容的连贯一致性: +- 系统中存储的记忆片段采用分层结构,通过汇总主题相似的 *observations* 生成高层次的 *insights* 信息。 +- 定期处理记忆片段之间的矛盾和重复,以保证记忆内容的连贯一致性。 +- 过滤掉用户输入的虚构内容,以避免LLM产生幻觉。 + +⏰ 时间敏感性: +- T系统在执行记忆检索和记忆巩固时具备时间敏感性,因此在输入对话包含对时间的指涉时,可以检索到准确的相关信息。 + +### 用法示例 # 💡 代码贡献 diff --git a/docs/images/logo_1.png b/docs/images/logo_1.png new file mode 100644 index 00000000..713d1ef0 Binary files /dev/null and b/docs/images/logo_1.png differ diff --git a/docs/images/logo_2.png b/docs/images/logo_2.png new file mode 100644 index 00000000..4578bbb0 Binary files /dev/null and b/docs/images/logo_2.png differ diff --git a/docs/images/logo_3.png b/docs/images/logo_3.png new file mode 100644 index 00000000..74d911fd Binary files /dev/null and b/docs/images/logo_3.png differ