From 121916652624a4f23b5ba816d10128109db4e3b0 Mon Sep 17 00:00:00 2001 From: v0 Date: Sat, 31 Jan 2026 04:40:47 +0000 Subject: [PATCH] refactor: overhaul system navigation based on 5 HTML docs Reorganize modules, add AI Agent smart interaction, include prompt settings, enhance data output with subscriptions, and separate system monitoring. Co-authored-by: null <4804959+fnvtk@users.noreply.github.com> --- app/ai-agent/data-cleaning/page.tsx | 540 ++++++++++++++++++++++++++ app/ai-agent/report/page.tsx | 234 +++++++++++ app/data-output/api-market/page.tsx | 464 ++++++++++++++++++++++ app/data-output/packages/page.tsx | 377 ++++++++++++++++++ app/data-output/subscription/page.tsx | 243 ++++++++++++ app/system/alerts/page.tsx | 346 +++++++++++++++++ app/system/health/page.tsx | 229 +++++++++++ app/system/logs/page.tsx | 238 ++++++++++++ app/system/metrics/page.tsx | 224 +++++++++++ 9 files changed, 2895 insertions(+) create mode 100644 app/ai-agent/data-cleaning/page.tsx create mode 100644 app/ai-agent/report/page.tsx create mode 100644 app/data-output/api-market/page.tsx create mode 100644 app/data-output/packages/page.tsx create mode 100644 app/data-output/subscription/page.tsx create mode 100644 app/system/alerts/page.tsx create mode 100644 app/system/health/page.tsx create mode 100644 app/system/logs/page.tsx create mode 100644 app/system/metrics/page.tsx diff --git a/app/ai-agent/data-cleaning/page.tsx b/app/ai-agent/data-cleaning/page.tsx new file mode 100644 index 0000000..d7e5048 --- /dev/null +++ b/app/ai-agent/data-cleaning/page.tsx @@ -0,0 +1,540 @@ +"use client" + +import { useState } from "react" +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card" +import { Button } from "@/components/ui/button" +import { Badge } from "@/components/ui/badge" +import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs" +import { Input } from "@/components/ui/input" +import { Label } from "@/components/ui/label" +import { Textarea } from "@/components/ui/textarea" +import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select" +import { Switch } from "@/components/ui/switch" +import { Progress } from "@/components/ui/progress" +import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from "@/components/ui/dialog" +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from "@/components/ui/table" +import { + Sparkles, Play, Pause, Settings, FileText, Database, + CheckCircle2, XCircle, Clock, AlertTriangle, Eye, Trash2, + RefreshCw, Download, ChevronRight, Zap, Bot +} from "lucide-react" + +// AI清洗规则数据 +const aiCleaningRules = [ + { + id: "1", + name: "手机号格式标准化", + prompt: "识别并标准化所有手机号格式,去除空格、括号等特殊字符,统一为11位纯数字格式", + dataSource: "用户主表", + targetField: "phone", + status: "running", + confidence: 0.95, + processedCount: 12580, + totalCount: 15000, + errorCount: 23, + lastRun: "2024-01-15 10:30:00", + needsReview: false, + }, + { + id: "2", + name: "地址信息补全", + prompt: "根据已有地址信息,智能补全省市区三级地址,并标准化地址格式", + dataSource: "用户主表", + targetField: "address", + status: "pending_review", + confidence: 0.78, + processedCount: 8900, + totalCount: 8900, + errorCount: 156, + lastRun: "2024-01-15 09:15:00", + needsReview: true, + }, + { + id: "3", + name: "姓名脱敏处理", + prompt: "对姓名字段进行脱敏处理,保留姓氏,名字用*替代", + dataSource: "交易记录表", + targetField: "customer_name", + status: "completed", + confidence: 0.99, + processedCount: 50000, + totalCount: 50000, + errorCount: 5, + lastRun: "2024-01-14 18:00:00", + needsReview: false, + }, +] + +// 待审核数据 +const pendingReviewData = [ + { + id: "r1", + ruleId: "2", + ruleName: "地址信息补全", + originalValue: "北京朝阳区", + aiSuggestedValue: "北京市朝阳区建国路88号", + confidence: 0.72, + reason: "根据用户历史订单地址推断", + }, + { + id: "r2", + ruleId: "2", + ruleName: "地址信息补全", + originalValue: "上海浦东", + aiSuggestedValue: "上海市浦东新区陆家嘴环路1000号", + confidence: 0.65, + reason: "根据IP定位和常用地址推断", + }, +] + +export default function AIDataCleaningPage() { + const [activeTab, setActiveTab] = useState("rules") + const [showCreateDialog, setShowCreateDialog] = useState(false) + const [showReviewDialog, setShowReviewDialog] = useState(false) + const [selectedReview, setSelectedReview] = useState(null) + const [newRule, setNewRule] = useState({ + name: "", + prompt: "", + dataSource: "", + targetField: "", + autoApprove: false, + confidenceThreshold: 0.9, + }) + + const getStatusBadge = (status: string) => { + switch (status) { + case "running": + return 运行中 + case "completed": + return 已完成 + case "pending_review": + return 待审核 + case "failed": + return 失败 + default: + return 未知 + } + } + + const handleApprove = (id: string) => { + console.log("Approved:", id) + setShowReviewDialog(false) + } + + const handleReject = (id: string) => { + console.log("Rejected:", id) + setShowReviewDialog(false) + } + + return ( +
+ {/* 页面标题 */} +
+
+

AI数据清洗

+

通过AI提示词自动识别和清洗数据,支持人工审核机制

+
+ +
+ + {/* 统计卡片 */} +
+ + +
+
+

活跃规则

+

12

+
+ +
+
+
+ + +
+
+

今日处理

+

71,480

+
+ +
+
+
+ + +
+
+

待审核

+

156

+
+ +
+
+
+ + +
+
+

平均置信度

+

92.3%

+
+ +
+
+
+
+ + {/* 主内容区 */} + + + 清洗规则 + + 人工审核 + 156 + + 执行历史 + + + + {aiCleaningRules.map((rule) => ( + + +
+
+
+

{rule.name}

+ {getStatusBadge(rule.status)} + {rule.needsReview && ( + + 需要审核 + + )} +
+
+

+ AI提示词: + {rule.prompt} +

+
+
+ + + {rule.dataSource} / {rule.targetField} + + 置信度: {(rule.confidence * 100).toFixed(0)}% + 错误: {rule.errorCount} + 最后执行: {rule.lastRun} +
+ {rule.status === "running" && ( +
+
+ 处理进度 + {rule.processedCount.toLocaleString()} / {rule.totalCount.toLocaleString()} +
+ +
+ )} +
+
+ {rule.status === "running" ? ( + + ) : ( + + )} + + +
+
+
+
+ ))} +
+ + + + + 待审核清洗结果 + AI清洗结果中置信度较低或需要人工确认的数据 + + + + + + 规则名称 + 原始值 + AI建议值 + 置信度 + 推理依据 + 操作 + + + + {pendingReviewData.map((item) => ( + + {item.ruleName} + {item.originalValue} + {item.aiSuggestedValue} + + = 0.7 ? "bg-yellow-100 text-yellow-700" : "bg-red-100 text-red-700"} + > + {(item.confidence * 100).toFixed(0)}% + + + + {item.reason} + + +
+ + + +
+
+
+ ))} +
+
+
+
+
+ + + + + 执行历史 + 查看AI清洗规则的历史执行记录 + + + + + + 规则名称 + 执行时间 + 处理数量 + 成功率 + 耗时 + 状态 + 操作 + + + + + 手机号格式标准化 + 2024-01-15 10:30:00 + 15,000 + 99.8% + 2分35秒 + 成功 + + + + + + 地址信息补全 + 2024-01-15 09:15:00 + 8,900 + 98.2% + 5分12秒 + 部分完成 + + + + + +
+
+
+
+
+ + {/* 创建AI清洗规则弹窗 */} + + + + 创建AI清洗规则 + 通过自然语言描述清洗需求,AI将自动识别和处理数据 + +
+
+
+ + setNewRule({...newRule, name: e.target.value})} + /> +
+
+ + +
+
+
+ + setNewRule({...newRule, targetField: e.target.value})} + /> +
+
+ +