
import { OpenAIApi, Configuration, CreateChatCompletionResponse } from 'openai' import process from 'process' const cOnfiguration= new Configuration({ apiKey: 'sk-xxxxxxxxxxxx' }) const openai = new OpenAIApi(configuration) openai.createChatCompletion({ model: 'gpt-3.5-turbo', messages: [ { role: 'user', content: '请模仿李白写一首诗' } ], stream: true }, { responseType: 'stream' }).then(value => { const data = value.data as ChatData data.on('data', chunk => { const match = chunk.toString().match(/^data: (.*)/) if (!match || match[1] == '[DONE]') return const res = JSON.parse(match[1]) const { content } = res.choices[0].delta if (!content) return process.stdout.write(content) }) }) interface ChatData extends CreateChatCompletionResponse { /** 绑定事件 */ on<K extends keyof EventType>( eventType: K, handle: (event: EventType[K]) => void ): void } interface EventType { 'data': Buffer }