import { useState } from "react"; import "./App.css"; function App() { const [message, setMessage] = useState(""); const [messages, setMessages] = useState([]); const [loading, setLoading] = useState(false); const sendMessage = async () => { if (!message.trim() || loading) return; const userMessage = { role: "user", content: message, }; const updatedMessages = [...messages, userMessage]; setMessages(updatedMessages); setMessage(""); setLoading(true); try { const response = await fetch( "https://router.huggingface.co/v1/chat/completions", { method: "POST", headers: { Authorization: `Bearer ${process.env.REACT_APP_HF_TOKEN}`, "Content-Type": "application/json", }, body: JSON.stringify({ model: "openai/gpt-oss-20b", messages: updatedMessages, max_tokens: 512, temperature: 0.7, }), } ); if (!response.ok) { const error = await response.text(); throw new Error(error); } const data = await response.json(); const botMessage = { role: "assistant", content: data.choices?.[0]?.message?.content || "Sorry, I couldn't generate a response.", }; setMessages((prev) => [...prev, botMessage]); } catch (error) { console.error(error); setMessages((prev) => [ ...prev, { role: "assistant", content: "❌ Error: Unable to connect to Hugging Face API.", }, ]); } finally { setLoading(false); } }; const handleKeyDown = (e) => { if (e.key === "Enter") { sendMessage(); } }; return (
Start a conversation...
)} {messages.map((msg, index) => (AI: Thinking...
)}