Skip to content

Instantly share code, notes, and snippets.

@codemem
Forked from yusukebe/streaming.ts
Created April 10, 2024 09:29
Show Gist options
  • Save codemem/d15c6368fe096f1881aafaa41754cf7a to your computer and use it in GitHub Desktop.
Save codemem/d15c6368fe096f1881aafaa41754cf7a to your computer and use it in GitHub Desktop.
import { Hono } from 'hono'
import { streamText } from 'hono/streaming'
import { Ai } from '@cloudflare/ai'
import { events } from 'fetch-event-stream'
type Bindings = {
AI: any
}
const app = new Hono<{ Bindings: Bindings }>()
app.get('/', async (c) => {
const ai = new Ai(c.env.AI)
const aiStream = (await ai.run('@cf/meta/llama-2-7b-chat-int8', {
prompt: 'tell me about ramen',
stream: true
})) as ReadableStream
return streamText(c, async (stream) => {
const chunks = events(new Response(aiStream))
for await (const chunk of chunks) {
const data = JSON.parse(chunk.data!)
stream.write(data.response)
}
})
})
export default app
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment