SuperAPI AI 工具集

tanstack-ai-persistence-build-prisma-adapter

通用与其它

查看项目

更新于 10-16 00:02

技能介绍

用途:当应用已运行 Prisma、需要为 TanStack AI 聊天增加持久化时,本技能在应用内生成一个文件 src/lib/chat-persistence.ts,导出基于现有 PrismaClient 构建的 ChatPersistence,并在现有 schema.prisma 中追加四个模型,再用应用自身的 prisma migrate 创建迁移。不创建新包、第二个客户端、datasource、generator 或手写 SQL 迁移。

主要能力:提供消息、运行、中断、元数据四类存储(MessageStore、RunStore、InterruptStore、MetadataStore),行为对齐 @tanstack/ai-persistence 的内存后端与共享一致性测试。模型为 ChatThread、ChatRun、ChatInterrupt、ChatMetadata,ID 用 String,时间戳用 BigInt(可移植的 epoch 毫秒),JSON 载荷用 String,可用 @map/@@map 匹配数据库命名。Prisma 6 与 7 均可用。

使用方式:先读取应用,确认 schema 位置、datasource、客户端单例、generator 输出、已有模型名与迁移流程;再追加模型,由用户自行运行 npx prisma migrate dev --name chat-persistence(或 db push)与 prisma generate;然后写入 chat-persistence.ts,用 defineAIPersistence 组装四个 store,并在聊天路由中通过 withPersistence 接入。

限制与注意:补丁更新用 updateMany 而非 update,未知 id 应为静默无操作;error 与 errorCode 需同时更新;sandboxKey、detachedSince、cancelRequested、driverEpoch 用 'field' in patch 判断以支持显式清空;metadata 的 set 不接受 null/undefined,需用 delete 清除;ChatPersistence 需显式标注类型;没有 locks store,协调需另行用 withLocks。SQLite 或多数据库场景保留 String 存 JSON,Postgres/MySQL 可改用 Prisma Json 类型。资料未提供具体收费、平台与效果信息。