Files
param-hub/prisma/schema.prisma
hubian 0561c6da6f 初始化参数百科网站项目
- Next.js 14 + Tailwind CSS + Prisma
- 模型数据库页面 (列表+详情)
- GPU数据库页面 (列表+详情)
- CPU数据库页面
- 显存计算器工具
- 参数对比工具
- 知识库页面
- 初始数据: 15个模型, 10个GPU, 3个CPU
2026-04-08 10:37:07 +08:00

215 lines
5.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Prisma schema for ParamHub - 参数百科数据库
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
// 大模型数据
model Model {
id Int @id @default(autoincrement())
name String
slug String @unique
organization String?
parametersCount BigInt? // 参数量以B为单位存储实际数值
architecture String?
layers Int?
hiddenSize Int?
attentionHeads Int?
contextLength Int?
trainingTokens BigInt? // 训练token数
trainingCostUsd Float?
releaseDate DateTime?
isOpenSource Boolean @default(false)
license String?
description String? @db.Text
imageUrl String?
// Benchmark 分数
benchmarkMmlu Float?
benchmarkHumaneval Float?
benchmarkGsm8k Float?
benchmarkMath Float?
// 部署要求
minVramFp16 Int? // GB
minVramInt8 Int?
minVramInt4 Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// 关联
apis ModelApi[]
categories ModelCategory[]
comparisonsA ModelComparison[] @relation("ModelA")
comparisonsB ModelComparison[] @relation("ModelB")
@@index([organization])
@@index([parametersCount])
@@index([releaseDate])
}
// 模型API信息
model ModelApi {
id Int @id @default(autoincrement())
modelId Int
provider String // OpenAI, Azure, Together, etc.
apiName String?
inputPricePer1k Float? // 输入价格 $/1K tokens
outputPricePer1k Float? // 输出价格 $/1K tokens
contextLimit Int?
rateLimitRpm Int?
available Boolean @default(true)
model Model @relation(fields: [modelId], references: [id])
@@index([provider])
}
// 模型分类
model ModelCategory {
id Int @id @default(autoincrement())
modelId Int
category String // chat, code, embedding, image, etc.
model Model @relation(fields: [modelId], references: [id])
@@unique([modelId, category])
}
// 模型对比记录
model ModelComparison {
id Int @id @default(autoincrement())
modelAId Int
modelBId Int
comparisonType String? // performance, cost, etc.
notes String? @db.Text
createdAt DateTime @default(now())
modelA Model @relation("ModelA", fields: [modelAId], references: [id])
modelB Model @relation("ModelB", fields: [modelBId], references: [id])
}
// GPU数据
model Gpu {
id Int @id @default(autoincrement())
name String
slug String @unique
manufacturer String // NVIDIA, AMD, Intel
architecture String?
cudaCores Int?
tensorCores Int?
memoryGb Float?
memoryType String? // GDDR6X, HBM2e, etc.
memoryBandwidthGbps Float?
fp32Tflops Float?
fp16Tflops Float?
int8Tops Float?
tdpWatts Int?
priceUsd Float?
releaseDate DateTime?
recommendedFor String[] // training, inference, gaming
imageUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([manufacturer])
@@index([memoryGb])
@@index([priceUsd])
}
// CPU数据
model Cpu {
id Int @id @default(autoincrement())
name String
slug String @unique
manufacturer String // AMD, Intel
architecture String?
cores Int?
threads Int?
baseClockGhz Float?
boostClockGhz Float?
l3CacheMb Int?
tdpWatts Int?
memoryType String?
memoryChannels Int?
pcieLanes Int?
priceUsd Float?
releaseDate DateTime?
imageUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([manufacturer])
@@index([cores])
}
// 服务器配置
model ServerConfig {
id Int @id @default(autoincrement())
name String
slug String @unique
cpuConfig String? @db.Text // JSON
gpuConfig String? @db.Text // JSON
memoryGb Int?
storageConfig String? @db.Text // JSON
networkConfig String? @db.Text // JSON
totalTdpWatts Int?
priceUsd Float?
useCase String?
description String? @db.Text
imageUrl String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
// 知识库文章
model Article {
id Int @id @default(autoincrement())
title String
slug String @unique
category String // explanation, guide, best-practice
content String @db.Text // Markdown
tags String[]
author String?
publishedAt DateTime?
views Int @default(0)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([category])
@@index([tags])
}
// 用户
model User {
id Int @id @default(autoincrement())
email String @unique
name String?
avatar String?
role String @default("user") // user, admin, contributor
favorites String[] // 模型/GPU slug列表
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
// 计算器使用记录(可选,用于统计)
model CalculatorLog {
id Int @id @default(autoincrement())
calculatorType String // vram, training-cost, inference-cost
inputParams String @db.Text // JSON
outputResult String @db.Text // JSON
createdAt DateTime @default(now())
@@index([calculatorType])
}