Skip to content

Commit 692e949

Browse files
vicbpedrosousa
andauthored
[Workers] Fix code formatting (#17505)
--------- Co-authored-by: Pedro Sousa <[email protected]>
1 parent 0cc038b commit 692e949

File tree

1 file changed

+31
-30
lines changed

1 file changed

+31
-30
lines changed

src/content/docs/workers/examples/openai-sdk-streaming.mdx

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,49 +12,50 @@ sidebar:
1212
order: 1001
1313
head: []
1414
description: Use the OpenAI v4 SDK to stream responses from OpenAI.
15-
1615
---
1716

1817
In order to run this code, you must install the OpenAI SDK by running `npm i openai`.
1918

2019
:::note
2120

22-
2321
For analytics, caching, rate limiting, and more, you can also send requests like this through Cloudflare's [AI Gateway](/ai-gateway/providers/openai/).
2422

25-
2623
:::
2724

2825
```ts
2926
import OpenAI from "openai";
3027

3128
export default {
32-
async fetch(request, env, ctx): Promise<Response> {
33-
const openai = new OpenAI({
34-
apiKey: env.OPENAI_API_KEY
35-
});
36-
37-
// Create a TransformStream to handle streaming data
38-
let { readable, writable } = new TransformStream();
39-
let writer = writable.getWriter();
40-
const textEncoder = new TextEncoder();
41-
42-
ctx.waitUntil((async () => {
43-
const stream = await openai.chat.completions.create({
44-
model: 'gpt-4o-mini',
45-
messages: [{ role: 'user', content: 'Tell me a story' }],
46-
stream: true,
47-
});
48-
49-
// loop over the data as it is streamed and write to the writeable
50-
for await (const part of stream) {
51-
writer.write(textEncoder.encode(part.choices[0]?.delta?.content || ''));
52-
}
53-
writer.close();
54-
})());
55-
56-
// Send the readable back to the browser
57-
return new Response(readable);
58-
},
29+
async fetch(request, env, ctx): Promise<Response> {
30+
const openai = new OpenAI({
31+
apiKey: env.OPENAI_API_KEY,
32+
});
33+
34+
// Create a TransformStream to handle streaming data
35+
let { readable, writable } = new TransformStream();
36+
let writer = writable.getWriter();
37+
const textEncoder = new TextEncoder();
38+
39+
ctx.waitUntil(
40+
(async () => {
41+
const stream = await openai.chat.completions.create({
42+
model: "gpt-4o-mini",
43+
messages: [{ role: "user", content: "Tell me a story" }],
44+
stream: true,
45+
});
46+
47+
// loop over the data as it is streamed and write to the writeable
48+
for await (const part of stream) {
49+
writer.write(
50+
textEncoder.encode(part.choices[0]?.delta?.content || ""),
51+
);
52+
}
53+
writer.close();
54+
})(),
55+
);
56+
57+
// Send the readable back to the browser
58+
return new Response(readable);
59+
},
5960
} satisfies ExportedHandler<Env>;
6061
```

0 commit comments

Comments
 (0)