import { Alert, Button, IconButton, InputAdornment, Paper, Stack, TextField, } from "@mui/material"; import { useEffect, useRef, useState } from "react"; import { HfInference } from "@huggingface/inference"; import { Visibility, VisibilityOff } from "@mui/icons-material"; import { InferenceProps } from "../huggingface"; export default function Summarization(props: InferenceProps) { const { model } = props; const [token, setToken] = useState(""); const [summary, setSummary] = useState(""); const [error, setError] = useState(""); const [showToken, setShowToken] = useState(false); const inference = useRef(null); useEffect(() => { inference.current = new HfInference(token); }, [token]); const handleSubmit = (event: any) => { event.preventDefault(); const data = new FormData(event.currentTarget); setToken(data.get("token") as string); const text = data.get("text") as string; call(text); }; const handleShowToken = () => setShowToken(!showToken); const call = async (inputs: string) => { try { const response = await inference.current?.summarization({ model, inputs, parameters: { max_length: 100, }, }); setSummary(response?.summary_text as string); setError(""); } catch (error) { if (error instanceof Error) { setError(error.message); } else { setError("An unknown error occurred"); } } }; return ( <> {showToken ? : } ), }} /> {error && {error}} ); }