"use client"; import React, { useState, useEffect } from "react"; export function ChunkManager() { const [chunks, setChunks] = useState([]); const [stats, setStats] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const loadChunks = async () => { try { setLoading(true); setError(null); const response = await fetch("/api/rag/chunks"); const data = await response.json(); if (data.success) { setChunks(data.chunks || []); setStats(data.stats); } else { setError(data.error || "청크 정보를 불러오는데 실패했습니다."); } } catch (err) { console.error("청크 로딩 실패:", err); setError("청크 정보를 불러오는데 실패했습니다."); } finally { setLoading(false); } }; const clearAllChunks = async () => { if ( !confirm("모든 청크를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.") ) { return; } try { setLoading(true); const response = await fetch("/api/rag/chunks", { method: "DELETE" }); const data = await response.json(); if (data.success) { alert("모든 청크가 성공적으로 삭제되었습니다."); setChunks([]); setStats(null); } else { setError(data.error || "청크 삭제에 실패했습니다."); } } catch (err) { console.error("청크 삭제 실패:", err); setError("청크 삭제에 실패했습니다."); } finally { setLoading(false); } }; useEffect(() => { loadChunks(); }, []); return (
{error && (
{error}
)} {stats && (
{stats.chunkCount}
총 청크 수
{stats.documentCount}
문서 수
{stats.embeddingModel}
임베딩 모델
{stats.vectorStoreType}
벡터 스토어
)}

청크 관리

{loading ? (
로딩 중...
) : chunks.length === 0 ? (
저장된 청크가 없습니다.
) : (
{chunks.map((chunk, index) => (

{chunk.documentTitle || "제목 없음"}

{chunk.documentSource} • 청크 #{chunk.chunkIndex} •{" "} {chunk.tokens} 토큰
{chunk.content}
))}
)}
); }