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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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