@carbide/l2-memory-manager
v1.0.0
Published
MemoryManager 组件,对话记忆管理 - Day 1 核心组件 L2
Maintainers
Readme
L2 MemoryManager - 对话记忆管理
Day 1 核心组件 L2,基于 LangChain.js 的 RunnableWithMessageHistory 和 ChatMessageHistory 实现的对话记忆管理。
安装
npm install @carbide/l2-memory-manager使用
基本用法(默认会话)
import { MemoryManager } from '@carbide/l2-memory-manager';
const memoryManager = new MemoryManager({
apiKey: 'your-openai-api-key',
modelName: 'gpt-4',
memoryKey: 'history'
});
// 对话(自动记忆上下文)
const response1 = await memoryManager.chat('我叫张三');
const response2 = await memoryManager.chat('我叫什么名字?'); // 能记住是张三
// 获取历史记录
const history = await memoryManager.getHistory();
// 手动保存上下文
await memoryManager.saveContext('你好', '你好!有什么可以帮助你的?');
// 清空记忆
await memoryManager.clearMemory();多会话管理
// 用户1的对话
const response1 = await memoryManager.chat('你好,我叫小明', 'user-001');
const response2 = await memoryManager.chat('你还记得我的名字吗?', 'user-001');
// 用户2的对话(独立的历史)
const response3 = await memoryManager.chat('你好,我叫小红', 'user-002');
const response4 = await memoryManager.chat('你知道我是谁吗?', 'user-002');
// 管理会话
const sessionIds = memoryManager.getSessionIds(); // 获取所有会话ID
await memoryManager.clearMemory('user-001'); // 清除指定会话的历史
memoryManager.removeSession('user-002'); // 移除指定会话API
| 方法 | 说明 | 参数 |
|------|------|------|
| chat(message, sessionId?) | 对话(自动保存到记忆) | message: 消息内容sessionId: 会话ID,默认为"default" |
| getHistory(sessionId?) | 获取历史记录 | sessionId: 会话ID,默认为"default" |
| saveContext(input, output, sessionId?) | 手动保存上下文 | input: 用户输入output: AI输出sessionId: 会话ID,默认为"default" |
| clearMemory(sessionId?) | 清空记忆 | sessionId: 会话ID,默认为"default" |
| removeSession(sessionId) | 移除指定会话 | sessionId: 会话ID |
| getSessionIds() | 获取所有会话ID | 无 |
测试
运行测试
npm run test测试文件
src/index.test.ts- 单元测试文件
示例
基本使用示例
详见 examples/basic-usage.ts 文件,包含以下示例:
- 基本对话(默认会话)
- 多会话管理
- 历史管理
- 手动保存上下文
运行示例
# 安装 tsx
npm install -g tsx
# 运行示例
OPENAI_API_KEY="your-api-key" tsx examples/basic-usage.ts技术实现
- 使用
ChatPromptTemplate.fromMessages构建提示模板 - 使用
RunnableWithMessageHistory管理对话历史 - 使用
ChatMessageHistory存储会话历史 - 支持多会话管理,通过
sessionId区分不同用户
在项目中使用
详见 day-01/02-chat-bot 等项目。
