An example using the ChatGPT API and responding with a streaming response.
- ChatGPT API
- Sonik - The Hono based meta-framework.
c.stream()
- A new feature of the Hono.- React
- Cloudflare Pages
Here is the key code:
export const route = defineRoute<Env>((app) => {
app.post('/api', async (c) => {
const body = await c.req.json<{ message: string }>()
const openai = new OpenAI({
apiKey: c.env.OPENAI_API_KEY
})
const chatStream = await openai.chat.completions.create({
messages: PROMPT(body.message),
model: 'gpt-3.5-turbo',
stream: true
})
return c.streamText(async (stream) => {
for await (const message of chatStream) {
await stream.write(message.choices[0]?.delta.content ?? '')
}
})
})
})
Screen.Recording.2023-09-15.at.16.19.38.mov
- Yusuke Wada https://github.com/yusukebe
MIT