Stream Text with Chat Prompt

Learn how to stream text with chat prompt using the AI TOOLKIT and Node

1 min readnodestreamingchatView source

Text generation can sometimes take a long time to finish, especially when the response is big. In such cases, it is useful to stream the chat completion to the client in real-time. This allows the client to display the new message as it is being generated by the model, rather than have users wait for it to finish. import { streamText } from 'ai-toolkit'; const result = streamText({ model: 'openai/gpt-4o', maxOutputTokens: 1024, system: 'You are a helpful chatbot.', messages: [ { role: 'user', content: [{ type: 'text', text: 'Hello!' }], }, { role: 'assistant', content: [{ type: 'text', text: 'Hello! How can I help you today?' }], }, { role: 'user', content: [{ type: 'text', text: 'I need help with my computer.' }], }, ], }); for await (const textPart of result.textStream) { process.stdout.write(textPart); }

index.ts
ts
  1. 1import { streamText } from 'ai-toolkit';
  2. 2const result = streamText({
  3. 3model: 'openai/gpt-4o',
  4. 4maxOutputTokens: 1024,
  5. 5system: 'You are a helpful chatbot.',
  6. 6messages: [
  7. 7{
  8. 8role: 'user',
  9. 9content: [{ type: 'text', text: 'Hello!' }],
  10. 10},
  11. 11{
  12. 12role: 'assistant',
  13. 13content: [{ type: 'text', text: 'Hello! How can I help you today?' }],
  14. 14},
  15. 15{
  16. 16role: 'user',
  17. 17content: [{ type: 'text', text: 'I need help with my computer.' }],
  18. 18},
  19. 19],
  20. 20});
  21. 21for await (const textPart of result.textStream) {
  22. 22process.stdout.write(textPart);
  23. 23}

Run it locally

$ npm install ai