40 lines
984 B
TypeScript
40 lines
984 B
TypeScript
// Streaming chat with messages
|
|
// AI SDK Core - streamText() with chat messages
|
|
|
|
import { streamText } from 'ai';
|
|
import { anthropic } from '@ai-sdk/anthropic';
|
|
|
|
async function main() {
|
|
const stream = streamText({
|
|
model: anthropic('claude-sonnet-4-5'),
|
|
messages: [
|
|
{
|
|
role: 'system',
|
|
content: 'You are a helpful assistant that writes concise responses.',
|
|
},
|
|
{
|
|
role: 'user',
|
|
content: 'Tell me a short story about AI and humanity working together.',
|
|
},
|
|
],
|
|
maxOutputTokens: 500,
|
|
});
|
|
|
|
console.log('Streaming response:');
|
|
console.log('---');
|
|
|
|
// Stream text chunks to console
|
|
for await (const chunk of stream.textStream) {
|
|
process.stdout.write(chunk);
|
|
}
|
|
|
|
console.log('\n---');
|
|
|
|
// Get final result with metadata
|
|
const result = await stream.result;
|
|
console.log('\nTokens used:', result.usage.totalTokens);
|
|
console.log('Finish reason:', result.finishReason);
|
|
}
|
|
|
|
main().catch(console.error);
|