'use client'; import ChatInput from '@/component/chat-input'; import { useChat } from '@ai-sdk/react'; import { DefaultChatTransport, UIMessage } from 'ai'; import { ExampleMetadata } from '../api/use-chat-message-metadata/example-metadata-schema'; type MyMessage = UIMessage; export default function Chat() { const { error, status, sendMessage, messages, regenerate, stop } = useChat({ transport: new DefaultChatTransport({ api: '/api/use-chat-message-metadata', }), }); return (
{messages.map(message => (
{message.role === 'user' ? 'User: ' : 'AI: '} {message.metadata?.createdAt && (
Created at:{' '} {new Date(message.metadata.createdAt).toLocaleString()}
)} {message.metadata?.duration && (
Duration: {message.metadata.duration}ms
)} {message.metadata?.model && (
Model: {message.metadata.model}
)} {message.metadata?.totalTokens && (
Total tokens: {message.metadata.totalTokens}
)} {message.metadata?.finishReason && (
Finish reason: {message.metadata.finishReason}
)}
))} {(status === 'submitted' || status === 'streaming') && (
{status === 'submitted' &&
Loading...
}
)} {error && (
An error occurred.
)} sendMessage({ text })} />
); }