我正在尝试使用OpenAI API和React重现一个想法。
我使用了官方OpenAI文档这里,但遇到了问题,希望有人能帮助我。
我的想法是在页面上有一个简单的文本输入框和一个按钮。接收用户的提示并将信息发送到OpenAI API。
点击按钮时,我在handleSubmit函数中处理所有事情,函数如下所示:
const config = new Configuration({ apiKey: "API_KEY_IS_HERE",})const handleSubmit = async (e) => { e.preventDefault() setState('loading...') const openai = new OpenAIAPI(config) const res = await openai.createImage({ prompt: prompt, n: 1, size: "256×256", }) const url = res.data.data[0].url console.log(url) console.log('clicked: ' + prompt)}
当我点击按钮并调用handleSubmit函数时,现在我得到了一个错误
Uncaught TypeError: openai__WEBPACK_IMPORTED_MODULE_1__.OpenAIAPI is not a constructor
除了将API密钥直接放入源代码中而不是环境变量(在本地测试和玩耍)之外,我觉得没有什么不正常的地方。
感谢任何建议!
编辑:
导入:
import { useEffect, useState } from "react"import { Configuration, OpenAIAPI } from "openai"
版本:
"openai": "^3.1.0""react": "^18.2.0"
回答:
可能是webpack对openai包的导入方式有抱怨。你能展示一下导入的代码行吗?
另外,从文档中粗略一看,似乎应该是:
OpenAIApi 而不是 OpenAIAPI
大小写很重要 😀