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
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.