'use client'; import { useState } from 'react'; import { type ModelMessage } from 'ai'; export default function TextGeneration() { const [model, setModel] = useState('alias-code'); const [messages, setMessages] = useState([]); const [input, setInput] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!input) return; const newMessages: ModelMessage[] = [...messages, { role: 'user', content: input }]; setMessages(newMessages); setInput(''); const response = await fetch('/api/text-generation', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ prompt: input, model, }), }); if (!response.body) { return; } const reader = response.body.getReader(); const decoder = new TextDecoder(); let done = false; let fullResponse = ''; while (!done) { const { value, done: readerDone } = await reader.read(); done = readerDone; const chunkValue = decoder.decode(value); fullResponse += chunkValue; setMessages([...newMessages, { role: 'assistant', content: fullResponse }]); } }; return (
{messages.map((m, i) => (
{m.role === 'user' ? 'User: ' : 'AI: '} {m.content as string}
))}
setInput(e.target.value)} />
); }