@@ -31,7 +31,7 @@ const openai = new OpenAI({
3131});
3232
3333const server = createAIStreamServer <ChatInput >({
34- async onFetch (input , signal ) {
34+ onFetch : async (input , signal ) => {
3535 const response = await openai .chat .completions
3636 .create (
3737 {
@@ -44,7 +44,7 @@ const server = createAIStreamServer<ChatInput>({
4444 .asResponse ();
4545 return response .body ;
4646 },
47- onUsage(usage , input ) {
47+ onUsage : (usage , input ) => {
4848 console .log (" usage" , input .model , usage );
4949 },
5050});
@@ -64,10 +64,10 @@ import { env } from "cloudflare:workers";
6464import { createAIStreamServer } from " ai-octet-stream" ;
6565
6666const server = createAIStreamServer <ChatInput >({
67- onFetch({ model , ... input }, signal ) {
67+ onFetch : ({ model , ... input }, signal ) => {
6868 return env .AI .run (model , { ... input , stream: true }, { signal });
6969 },
70- onUsage(usage , input ) {
70+ onUsage : (usage , input ) => {
7171 console .log (" usage" , input .model , usage );
7272 },
7373});
@@ -91,7 +91,7 @@ If your provider already exposes an OpenAI-compatible chat completions endpoint,
9191import { createAIStreamServer } from " ai-octet-stream" ;
9292
9393const server = createAIStreamServer <ChatInput >({
94- async onFetch (input : Record <string , unknown >, signal ) {
94+ onFetch : async (input : Record <string , unknown >, signal ) => {
9595 const response = await fetch (process .env .OPENAI_BASE_URL + " /v1/chat/completions" , {
9696 method: " POST" ,
9797 signal ,
@@ -113,7 +113,7 @@ const server = createAIStreamServer<ChatInput>({
113113
114114 return response .body ;
115115 },
116- onUsage(usage , input ) {
116+ onUsage : (usage , input ) => {
117117 console .log (" usage" , input .model , usage );
118118 },
119119});
@@ -132,25 +132,25 @@ Once your server route is in place, consume the binary stream from browsers, Wor
132132import { createAIStreamClient } from " ai-octet-stream" ;
133133
134134const client = createAIStreamClient <ChatInput >({
135- onStreamError(error ) {
135+ onStreamError : (error ) => {
136136 console .error (" stream error:" , error );
137137 },
138- onStreamStart() {
138+ onStreamStart : () => {
139139 console .log (" stream started" );
140140 },
141- onStreamReasoning(reasoning_delta ) {
141+ onStreamReasoning : (reasoning_delta ) => {
142142 console .log (" reasoning delta:" , reasoning_delta );
143143 },
144- onStreamText(text_delta ) {
144+ onStreamText : (text_delta ) => {
145145 console .log (" text delta:" , text_delta );
146146 },
147- onStreamToolCall(name , arguments_delta ) {
147+ onStreamToolCall : (name , arguments_delta ) => {
148148 console .log (" function:" , name , " arguments delta:" , arguments_delta );
149149 },
150- onStreamEnd(finish_reason ) {
150+ onStreamEnd : (finish_reason ) => {
151151 console .log (" stream ended:" , finish_reason );
152152 },
153- onStreamDone(usage ) {
153+ onStreamDone : (usage ) => {
154154 console .log (" [done] usage:" , usage );
155155 },
156156});
@@ -184,16 +184,16 @@ function ChatBot() {
184184 useLayoutEffect (() => {
185185 const ac = new AbortController ();
186186 const client = createAIStreamClient <ChatInput >({
187- onStreamStart() {
187+ onStreamStart : () => {
188188 setIsStreaming (true );
189189 },
190- onStreamReasoning(reasoning_delta ) {
190+ onStreamReasoning : (reasoning_delta ) => {
191191 setReasoning ((prev ) => prev + reasoning_delta );
192192 },
193- onStreamText(text_delta ) {
193+ onStreamText : (text_delta ) => {
194194 setText ((prev ) => prev + text_delta );
195195 },
196- onStreamEnd(finish_reason ) {
196+ onStreamEnd : (finish_reason ) => {
197197 setIsStreaming (false );
198198 setFinishReason (finish_reason )
199199 },
@@ -240,11 +240,11 @@ In `createAIStreamServer`'s `onUsage` callback, assign the return value to `usag
240240``` ts
241241import { createAIStreamClient , createAIStreamServer , computeAICompletionCost } from " ai-octet-stream" ;
242242
243- const server = createAIStreamServer ({
244- async onFetch (input , signal ) {
243+ const server = createAIStreamServer < ChatInput > ({
244+ onFetch : async (input , signal ) => {
245245 // fetch from the AI provider
246246 },
247- onUsage(usage , input ) {
247+ onUsage : (usage , input ) => {
248248 usage .cost = computeAICompletionCost (
249249 {
250250 input: 0.15 ,
@@ -258,8 +258,8 @@ const server = createAIStreamServer({
258258 },
259259});
260260
261- const client = createAIStreamClient ({
262- onStreamDone(usage ) {
261+ const client = createAIStreamClient < ChatInput > ({
262+ onStreamDone : (usage ) => {
263263 console .log (" cost" , usage .cost );
264264 },
265265});
0 commit comments