import React, { useState } from 'react'; import { classifyText, classifyBatch, suggestCategories } from '../api/api'; import { ClassificationResponse, CategorySuggestionResponse } from '../types/api'; const Classify: React.FC = () => { const [text, setText] = useState(''); const [categories, setCategories] = useState([]); const [result, setResult] = useState(null); const [batchResults, setBatchResults] = useState([]); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [suggestedCategories, setSuggestedCategories] = useState([]); const handleClassify = async () => { if (!text) return; setLoading(true); setError(null); try { const response = await classifyText(text, categories.length > 0 ? categories : undefined); setResult(response); } catch (err) { setError('Failed to classify text'); } finally { setLoading(false); } }; const handleBatchClassify = async () => { if (!text) return; setLoading(true); setError(null); try { const texts = text.split('\n').filter(t => t.trim()); const response = await classifyBatch(texts, categories.length > 0 ? categories : undefined); setBatchResults(response.results); } catch (err) { setError('Failed to classify texts'); } finally { setLoading(false); } }; const handleSuggestCategories = async () => { if (!text) return; setLoading(true); setError(null); try { const texts = text.split('\n').filter(t => t.trim()); const response = await suggestCategories(texts); setSuggestedCategories(response.categories); } catch (err) { setError('Failed to suggest categories'); } finally { setLoading(false); } }; return (

Text Classification

Enter text to classify or multiple texts (one per line) for batch classification.