OPENAI API 创建图像响应从 openai.createImage() 引发错误

我有一个简单的 React 应用,使用 OpenAI API 生成图像,如下所示。

`

import logo from './logo.svg';import './App.css';import { useState } from "react";const { Configuration, OpenAIApi } = require("openai");const configuration = new Configuration({  apiKey: process.env.OPENAI_API_KEY,});const openai = new OpenAIApi(configuration);function App() {  const [userPrompt, setUserPrompt] = useState("")  const [imageUrl, setImageUrl] = useState("")  const generateImage = async () => {    const imageParameters = {      prompt: userPrompt,      n:1,      size: "256x256",    }    const response = await openai.createImage(imageParameters);    const urlData = response.data.data[0].url;    console.log("urlData =",urlData);    setImageUrl(urlData);  }  return (    <div className="App">      {        imageUrl          ? <img src={imageUrl} className="image" alt="ai thing" />          : <img src={logo} className="image" alt="logo" />      }      <p>使用 DALL·E 生成独特图像</p>      <p>你想看到什么?</p>      <input        placeholder='悉尼歌剧院的日落'        onChange={(e) => setUserPrompt(e.target.value)}      />      <button onClick={() => generateImage()}>生成</button>    </div>  );}export default App;

`

API KEY 位于 .env 文件中,并且是正确的。然而,当我点击生成按钮时,控制台会抛出如下错误:错误:拒绝设置不安全的头部 "User-Agent",Post https://api.openai.com/v1/images/generations 401,Uncaught (in promise) Error: 请求失败,createError.js: 16状态码 401

我尝试使用 DALL-E API 创建一个 React 应用来生成图像,参考了这个指南。但是在 API 调用/请求之后,我无法接收到(图像)响应消息。


回答:

这里是一个工作的 ES6 NodeJs 示例,它可以保存 PNG 文件。要使其工作,请在 package.json 的顶部添加 “type”: “module”。OpenAi 的请求会返回一个指向 PNG 文件的 URL 数组。createImage 中的 “n” 是数组中图像的数量。

import { Configuration, OpenAIApi } from "openai";import http from "https"; // 或 'https' 用于 https:// URLsimport fs from "fs";const configuration = new Configuration({  apiKey: OPENAI_API_KEY,});const openai = new OpenAIApi(configuration);const response = await openai.createImage({  prompt: "一只可爱的海獭宝宝",  n: 1,  size: "1024x1024",});const file = fs.createWriteStream("test.png");const request = http.get(response.data.data[0].url, function (response) {  response.pipe(file);  file.on("finish", () => {    file.close();    console.log("下载完成!");  });});

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注