CompifAI / prisma /schema.prisma
daniel-was-taken's picture
Change to Chatbot
de38977
generator client {
provider = "prisma-client-js"
interface = "asyncio"
recursive_type_depth = 5
previewFeatures = ["postgresqlExtensions"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
// Prisma migrations run through the direct URL. Replace as needed.
directUrl = env("DATABASE_URL")
extensions = [pgcrypto]
}
model Element {
id String @id @default(dbgenerated("gen_random_uuid()"))
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
threadId String?
stepId String
metadata Json
mime String?
name String
objectKey String?
url String?
step Step @relation(fields: [stepId], references: [id], onDelete: Cascade)
thread Thread? @relation(fields: [threadId], references: [id], onDelete: Cascade)
chainlitKey String?
display String?
size String?
language String?
page Int?
props Json?
@@index([stepId])
@@index([threadId])
}
model User {
id String @id @default(dbgenerated("gen_random_uuid()"))
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
metadata Json
identifier String
threads Thread[]
@@unique([identifier])
@@index([identifier])
}
model Feedback {
id String @id @default(dbgenerated("gen_random_uuid()"))
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
stepId String?
Step Step? @relation(fields: [stepId], references: [id])
name String
value Float
comment String?
@@index(createdAt)
@@index(name)
@@index(stepId)
@@index(value)
@@index([name, value])
}
model Step {
id String @id @default(dbgenerated("gen_random_uuid()"))
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
parentId String?
threadId String?
input String?
metadata Json
name String?
output String?
type StepType
showInput String? @default("json")
isError Boolean? @default(false)
startTime DateTime
endTime DateTime
elements Element[]
parent Step? @relation("ParentChild", fields: [parentId], references: [id], onDelete: Cascade)
children Step[] @relation("ParentChild")
thread Thread? @relation(fields: [threadId], references: [id], onDelete: Cascade)
Feedback Feedback[]
@@index([createdAt])
@@index([endTime])
@@index([parentId])
@@index([startTime])
@@index([threadId])
@@index([type])
@@index([name])
@@index([threadId, startTime, endTime])
}
model Thread {
id String @id @default(dbgenerated("gen_random_uuid()"))
createdAt DateTime @default(now())
updatedAt DateTime @default(now()) @updatedAt
deletedAt DateTime?
name String?
metadata Json
tags String[] @default([])
elements Element[]
userId String?
User User? @relation(fields: [userId], references: [id])
steps Step[]
@@index([createdAt])
@@index([name])
}
enum StepType {
assistant_message
embedding
llm
retrieval
rerank
run
system_message
tool
undefined
user_message
}