You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
718 B
TypeScript

import { Low } from "lowdb";
import { JSONFile } from "lowdb/node";
export type Conversation = {
id: string;
title: string;
userId: string;
};
type DB = {
conversations: Array<Conversation>;
messages: Array<{
id: string;
conversationId: string;
content: string;
role: "user" | "assistant" | "system" | "data";
index: number;
createdAt: string;
runningSummary?: string;
}>;
};
export const db = new Low<DB>(new JSONFile("db.json"), {
conversations: [],
messages: [],
});
/** Initialize the database. Sets `db.data` to the default state if the file doesn't exist. */
await db.read();
/** Write the database to the file, in case it didn't exist before. */
await db.write();