import { Database, FileSliders, Search, Shield } from 'lucide-react'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card'; import type { RagConfig } from '@/types/admin'; function valueOrDash(value: unknown): string { if (value === null || value === undefined || value === '') { return '-'; } if (typeof value === 'boolean') { return value ? 'Ya' : 'Tidak'; } return String(value); } function ConfigRows({ rows, }: { rows: Array<[label: string, value: unknown]>; }) { return (
{rows.map(([label, value]) => (
{label}
{valueOrDash(value)}
))}
); } export function AdminRagSummary({ ragConfig, }: { ragConfig?: RagConfig | null; }) { const llm = ragConfig?.llm_config ?? {}; const vectorDb = ragConfig?.vector_db ?? {}; const retrieval = ragConfig?.retrieval ?? {}; return (
RAG
Konfigurasi RAG Path config: {ragConfig?.path ?? '-'}
LLM Ringkasan model aktif. VectorDB Ringkasan embedding dan chunk. Retrieval Ringkasan bobot dan batas konteks retrieval.
); }