@captra-ai/邮递
持久 PostgreSQL 适配器用于 Captra 对话,运行,事件,检查点,效果接收,内存,队列,共享状态,以及可选 pgvector 语义记忆.
npm install @captra-ai/postgres @captra-ai/core @captra-ai/state pg
import { migrateCaptra, PostgresConversationStore, PostgresRunCompletionStore, PostgresRunStore, PostgresCheckpointStore } from '@captra-ai/postgres'
await migrateCaptra(pool)
const runtime = createRuntime(app, {
conversations: new PostgresConversationStore(pool),
runs: new PostgresRunStore(pool),
completion: new PostgresRunCompletionStore(pool),
checkpoints: new PostgresCheckpointStore(pool),
})
总是配置 PostgresRunCompletionStore 与持久的聊天。 它使用一个检出连接和一个交易来发布助理消息,使用记录, run.completed 事件和终端运行状态。 一个失败的写法将整个完成卷回,而决定性消息和使用ID则使得一个不确定的后承诺重试安全.
对话身份证由租户标定范围并绑定在创建这些身份证的用户身上。 消息ID被去除,历史使用稳定的后向光标平面. 所有耐用记忆,共享状态,谈话,以及效果收据都是由租户负责的. 在开始工作前的部署期间进行迁移.
历史压缩存储摘要 captra_conversation_summaries;原始信件行保持不变。 每个摘要记录其源消息ID,模型,即时版本,时间戳,并覆盖序列. 备份必须包括两个表格,因此汇总的模型背景仍然可以复制和审计.
通过商店和经认证的HTTP客户端可进行交谈生命周期操作:
await runtime.conversations.archive(conversationId, identity)
await runtime.conversations.restore(conversationId, identity)
await runtime.conversations.delete(conversationId, identity)
// Run from a scheduled maintenance worker, one tenant at a time.
await conversations.purgeArchived(tenantId, Date.now() - 90 * 86_400_000, 1_000)
对话还支持标题、标签、所有者/编辑/观众角色、上市和所有权转让。 拥有者控制共享,生命周期状态,传输,并删除;编辑器可以附加并更新元数据;取景者有只读访问. migrateCaptra() 在现有的设施中安全地增加元数据栏和租户范围的成员表.
purgeArchived() 仅删除比截断时间更旧的存档对话框,使用被绑定的批次,并依赖串起的外键来删除其信件。 在修改保留政策前备份数据库, 运行 migrateCaptra() 并监视已删除行数。 PostgreSQL 时间点恢复或定期恢复 pg_dump 备份应覆盖 Captra 计划; 在允许自动保留之前进行测试修复.
PostgreSQL 文档 • 妇女 GitHub 图像 麻省理工学院