Last active
April 10, 2024 09:29
-
-
Save yusukebe/b701b2d810c92f374b07780f8503782e to your computer and use it in GitHub Desktop.
Revisions
-
yusukebe revised this gist
Apr 4, 2024 . 1 changed file with 11 additions and 11 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,7 +1,7 @@ import { Hono } from 'hono' import { streamText } from 'hono/streaming' import { Ai } from '@cloudflare/ai' import { events } from 'fetch-event-stream' type Bindings = { AI: any @@ -11,18 +11,18 @@ 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 -
yusukebe created this gist
Apr 4, 2024 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,28 @@ import { Ai } from '@cloudflare/ai' import { events } from 'fetch-event-stream' import { streamText } from 'hono/streaming' import { Hono } from 'hono' type Bindings = { AI: any } const app = new Hono<{ Bindings: Bindings }>() app.get('/', async (c) => { const ai = new Ai(c.env.AI) const s = await ai.run('@cf/meta/llama-2-7b-chat-int8', { prompt: 'What is the origin of the phrase Hello, World', stream: true }) const res = new Response(s as ReadableStream) return streamText(c, async (stream) => { const chunks = events(res) for await (const event of chunks) { const obj = JSON.parse(event.data) stream.write(obj.response) } }) }) export default app