Spaces:
Sleeping
Sleeping
| "use client"; | |
| import { useChat } from "ai/react"; | |
| import { ChatInput, ChatMessages } from "./ui/chat"; | |
| export default function ChatSection() { | |
| const { | |
| messages, | |
| input, | |
| isLoading, | |
| handleSubmit, | |
| handleInputChange, | |
| reload, | |
| stop, | |
| } = useChat({ | |
| api: process.env.NEXT_PUBLIC_CHAT_API, | |
| headers: { | |
| "Content-Type": "application/json", // using JSON because of vercel/ai 2.2.26 | |
| }, | |
| onError: (error: unknown) => { | |
| if (!(error instanceof Error)) throw error; | |
| const message = JSON.parse(error.message); | |
| alert(message.detail); | |
| }, | |
| }); | |
| return ( | |
| <div className="space-y-4 max-w-5xl w-full"> | |
| <ChatMessages | |
| messages={messages} | |
| isLoading={isLoading} | |
| reload={reload} | |
| stop={stop} | |
| /> | |
| <ChatInput | |
| input={input} | |
| handleSubmit={handleSubmit} | |
| handleInputChange={handleInputChange} | |
| isLoading={isLoading} | |
| multiModal={true} | |
| /> | |
| </div> | |
| ); | |
| } | |