2026-03-17 13:17:02 +08:00

446 lines
24 KiB
TypeScript

import { DashboardShell } from "@/components/dashboard-shell"
import { DashboardHeader } from "@/components/dashboard-header"
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
import { Brain, Mic, Database, Plus, Sparkles, Edit, Play, Sliders, User } from "lucide-react"
export default function AIModelPage() {
return (
<DashboardShell>
<DashboardHeader heading="大模型管理" text="管理洛天依的AI模型、语音和知识库">
<Button className="bg-gradient-to-r from-pink-500 to-purple-600 hover:from-pink-600 hover:to-purple-700 transition-all duration-300 shadow-md hover:shadow-lg">
<Plus className="mr-2 h-4 w-4" />
</Button>
</DashboardHeader>
<Tabs defaultValue="framework" className="space-y-4">
<TabsList className="bg-white p-1 shadow-md rounded-lg border">
<TabsTrigger
value="framework"
className="data-[state=active]:bg-gradient-to-r data-[state=active]:from-pink-500 data-[state=active]:to-purple-600 data-[state=active]:text-white rounded-md transition-all duration-300"
>
</TabsTrigger>
<TabsTrigger
value="finetune"
className="data-[state=active]:bg-gradient-to-r data-[state=active]:from-pink-500 data-[state=active]:to-purple-600 data-[state=active]:text-white rounded-md transition-all duration-300"
>
</TabsTrigger>
<TabsTrigger
value="voice"
className="data-[state=active]:bg-gradient-to-r data-[state=active]:from-pink-500 data-[state=active]:to-purple-600 data-[state=active]:text-white rounded-md transition-all duration-300"
>
</TabsTrigger>
<TabsTrigger
value="knowledge"
className="data-[state=active]:bg-gradient-to-r data-[state=active]:from-pink-500 data-[state=active]:to-purple-600 data-[state=active]:text-white rounded-md transition-all duration-300"
>
</TabsTrigger>
</TabsList>
<TabsContent value="framework" className="space-y-4">
<Card className="border-none shadow-lg bg-gradient-to-br from-white to-purple-50">
<CardHeader>
<CardTitle className="text-xl font-bold flex items-center">
<span className="bg-clip-text text-transparent bg-gradient-to-r from-purple-600 to-pink-600">
</span>
<div className="ml-2 h-1 w-10 bg-gradient-to-r from-purple-600 to-pink-600 rounded-full"></div>
</CardTitle>
<CardDescription>使</CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
<Card className="border-2 border-pink-500 shadow-lg hover:shadow-xl transition-all duration-300 overflow-hidden relative group">
<div className="absolute inset-0 bg-gradient-to-r from-pink-500/5 to-purple-500/5 opacity-0 group-hover:opacity-100 transition-opacity duration-300 -z-10"></div>
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
<CardTitle className="text-sm font-medium">使</CardTitle>
<div className="p-1.5 rounded-full bg-pink-100">
<Brain className="h-5 w-5 text-pink-600" />
</div>
</CardHeader>
<CardContent>
<div className="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-pink-600 to-purple-600">
GPT-4o
</div>
<p className="text-xs text-muted-foreground">版本: 2.0 | 上次更新: 2024-03-15</p>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full border-pink-200 hover:bg-pink-50 hover:text-pink-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
<Card className="shadow-md hover:shadow-lg transition-all duration-300 overflow-hidden relative group">
<div className="absolute inset-0 bg-gradient-to-r from-purple-500/5 to-blue-500/5 opacity-0 group-hover:opacity-100 transition-opacity duration-300 -z-10"></div>
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
<div className="p-1.5 rounded-full bg-purple-100">
<Brain className="h-5 w-5 text-purple-600" />
</div>
</CardHeader>
<CardContent>
<div className="text-xl font-bold">Claude 3</div>
<p className="text-xs text-muted-foreground">版本: 1.5 | 上次更新: 2024-02-20</p>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-purple-50 hover:text-purple-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
<Card className="shadow-md hover:shadow-lg transition-all duration-300 overflow-hidden relative group">
<div className="absolute inset-0 bg-gradient-to-r from-blue-500/5 to-teal-500/5 opacity-0 group-hover:opacity-100 transition-opacity duration-300 -z-10"></div>
<CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
<CardTitle className="text-sm font-medium"></CardTitle>
<div className="p-1.5 rounded-full bg-blue-100">
<Brain className="h-5 w-5 text-blue-600" />
</div>
</CardHeader>
<CardContent>
<div className="text-xl font-bold">Llama 3</div>
<p className="text-xs text-muted-foreground">版本: 1.0 | 上次更新: 2024-01-10</p>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-blue-50 hover:text-blue-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
</div>
</CardContent>
<CardFooter>
<Button className="bg-gradient-to-r from-pink-500 to-purple-600 hover:from-pink-600 hover:to-purple-700 transition-all duration-300 shadow-md hover:shadow-lg">
<Plus className="mr-2 h-4 w-4" />
</Button>
</CardFooter>
</Card>
</TabsContent>
<TabsContent value="finetune" className="space-y-4">
<Card className="border-none shadow-lg bg-gradient-to-br from-white to-purple-50">
<CardHeader>
<CardTitle className="text-xl font-bold flex items-center">
<span className="bg-clip-text text-transparent bg-gradient-to-r from-purple-600 to-pink-600">
</span>
<div className="ml-2 h-1 w-10 bg-gradient-to-r from-purple-600 to-pink-600 rounded-full"></div>
</CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid gap-4">
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<Sparkles className="h-4 w-4 mr-2 text-pink-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-4">
<div className="grid grid-cols-2 gap-4">
<div className="space-y-1 bg-pink-50 p-3 rounded-lg">
<p className="text-sm font-medium text-pink-700"></p>
<p className="text-sm text-gray-600"></p>
</div>
<div className="space-y-1 bg-purple-50 p-3 rounded-lg">
<p className="text-sm font-medium text-purple-700"></p>
<p className="text-sm text-gray-600"></p>
</div>
</div>
<div className="grid grid-cols-2 gap-4">
<div className="space-y-1 bg-blue-50 p-3 rounded-lg">
<p className="text-sm font-medium text-blue-700"></p>
<p className="text-sm text-gray-600"></p>
</div>
<div className="space-y-1 bg-teal-50 p-3 rounded-lg">
<p className="text-sm font-medium text-teal-700"></p>
<p className="text-sm text-gray-600">16158cm</p>
</div>
</div>
</div>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="hover:bg-pink-50 hover:text-pink-700 transition-all duration-200"
>
<Edit className="h-4 w-4 mr-2" />
</Button>
</CardFooter>
</Card>
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<Database className="h-4 w-4 mr-2 text-purple-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
<div className="flex items-center justify-between p-2 rounded-lg bg-gradient-to-r from-pink-50 to-purple-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-pink-600 font-medium">10,000 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-purple-600 font-medium">2,500 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-blue-600 font-medium">1,800 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-teal-600 font-medium">3,200 </p>
</div>
</div>
</CardContent>
<CardFooter className="flex justify-between">
<Button
variant="outline"
size="sm"
className="hover:bg-purple-50 hover:text-purple-700 transition-all duration-200"
>
</Button>
<Button
size="sm"
className="bg-gradient-to-r from-pink-500 to-purple-600 hover:from-pink-600 hover:to-purple-700 transition-all duration-300"
>
</Button>
</CardFooter>
</Card>
</div>
</CardContent>
</Card>
</TabsContent>
<TabsContent value="voice" className="space-y-4">
<Card className="border-none shadow-lg bg-gradient-to-br from-white to-purple-50">
<CardHeader>
<CardTitle className="text-xl font-bold flex items-center">
<span className="bg-clip-text text-transparent bg-gradient-to-r from-purple-600 to-pink-600">
</span>
<div className="ml-2 h-1 w-10 bg-gradient-to-r from-purple-600 to-pink-600 rounded-full"></div>
</CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid gap-4 md:grid-cols-2">
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<Mic className="h-4 w-4 mr-2 text-pink-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
<div className="flex items-center justify-between p-2 rounded-lg bg-gradient-to-r from-pink-50 to-purple-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-pink-600 font-medium"> v3.0</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600">48kHz</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> (24bit)</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600">2024-03-01</p>
</div>
</div>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-pink-50 hover:text-pink-700 transition-all duration-200"
>
<Play className="h-4 w-4 mr-2" />
</Button>
</CardFooter>
</Card>
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<Sliders className="h-4 w-4 mr-2 text-purple-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> (0)</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> (1.0x)</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> (0.7)</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> (1.0)</p>
</div>
</div>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-purple-50 hover:text-purple-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
</div>
</CardContent>
<CardFooter className="flex justify-between">
<Button variant="outline" className="hover:bg-pink-50 hover:text-pink-700 transition-all duration-200">
</Button>
<Button className="bg-gradient-to-r from-pink-500 to-purple-600 hover:from-pink-600 hover:to-purple-700 transition-all duration-300 shadow-md hover:shadow-lg">
</Button>
</CardFooter>
</Card>
</TabsContent>
<TabsContent value="knowledge" className="space-y-4">
<Card className="border-none shadow-lg bg-gradient-to-br from-white to-purple-50">
<CardHeader>
<CardTitle className="text-xl font-bold flex items-center">
<span className="bg-clip-text text-transparent bg-gradient-to-r from-purple-600 to-pink-600">
</span>
<div className="ml-2 h-1 w-10 bg-gradient-to-r from-purple-600 to-pink-600 rounded-full"></div>
</CardTitle>
<CardDescription></CardDescription>
</CardHeader>
<CardContent className="space-y-4">
<div className="grid gap-4 md:grid-cols-2">
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<User className="h-4 w-4 mr-2 text-pink-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
<div className="flex items-center justify-between p-2 rounded-lg bg-gradient-to-r from-pink-50 to-purple-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-pink-600 font-medium">5,732 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600">2.4 MB</p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600"> 08:45</p>
</div>
</div>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-pink-50 hover:text-pink-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
<Card className="shadow-md hover:shadow-lg transition-all duration-300">
<CardHeader>
<CardTitle className="text-sm flex items-center">
<Database className="h-4 w-4 mr-2 text-purple-500" />
</CardTitle>
</CardHeader>
<CardContent>
<div className="space-y-3">
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-purple-600 font-medium">1,200 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-blue-600 font-medium">850 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-teal-600 font-medium">320 </p>
</div>
<div className="flex items-center justify-between p-2 rounded-lg hover:bg-gray-50">
<p className="text-sm font-medium"></p>
<p className="text-sm text-gray-600">5,000+ </p>
</div>
</div>
</CardContent>
<CardFooter>
<Button
variant="outline"
size="sm"
className="w-full hover:bg-purple-50 hover:text-purple-700 transition-all duration-200"
>
</Button>
</CardFooter>
</Card>
</div>
</CardContent>
<CardFooter className="flex justify-between">
<Button variant="outline" className="hover:bg-pink-50 hover:text-pink-700 transition-all duration-200">
</Button>
<Button className="bg-gradient-to-r from-pink-500 to-purple-600 hover:from-pink-600 hover:to-purple-700 transition-all duration-300 shadow-md hover:shadow-lg">
</Button>
</CardFooter>
</Card>
</TabsContent>
</Tabs>
</DashboardShell>
)
}