gpt4 book ai didi

.net - OpenAI ChatGPT (GPT-3.5) API 错误 : "StatusCode: 429, ReasonPhrase: ' Too Many Requests'"

转载 作者:行者123 更新时间:2023-12-02 22:47:29 25 4
gpt4 key购买 nike

我正在使用 .net core Web api 将请求传递给 OpenAI API。我收到以下错误作为响应。我的 OpenAI 账户有余额。

我编写的代码和响应如下:

public async Task<string> SendPromptAndGetResponse()
{
const string requestUri = "https://api.openai.com/v1/chat/completions";
var requestBody = new
{
model = "gpt-3.5-turbo",
messages = "How are you?",
temperature = 0,
max_tokens = 100
};

_httpClient.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", ApiKey);

var response = await _httpClient.PostAsync(
requestUri,
new StringContent(JsonConvert.SerializeObject(requestBody), Encoding.UTF8, "application/json"));

response.EnsureSuccessStatusCode();

var responseBody = JsonConvert.DeserializeObject<ResponseBody>(await response.Content.ReadAsStringAsync());
return responseBody.Choices[0].Message.Content.Trim();
}

输出:

StatusCode: 429, ReasonPhrase: 'Too Many Requests'

最佳答案

问题

您没有设置 messages参数正确。rolecontent messages的属性参数为必填项。

错误:

messages = "How are you?",

查看官方OpenAI documentation .

Screenshot


解决方案

正确:

messages = new[] {
new { role = "system", content = "You are a helpful assistant." },
new { role = "user", content = "Hello!" },
},

工作示例

此外,this博客文章可能对您有帮助。

免责声明:以下代码和屏幕截图的所有功劳均归博客作者 Ricardo Mauro 的所有。 .

第 1 步:安装 Standard.AI.OpenAI C# 库

dotnet add Standard.AI.OpenAI

第 2 步:创建 OpenAI 帐户

第 3 步:创建 OpenAIProxy 类

using Standard.AI.OpenAI.Models.Services.Foundations.ChatCompletions;

namespace ConsoleAppOpenAI;

public interface IOpenAIProxy
{
Task<ChatCompletionMessage[]> SendChatMessage(string message);
}

第4步:创建实现类OpenAIProxy.cs

using Standard.AI.OpenAI.Clients.OpenAIs;
using Standard.AI.OpenAI.Models.Configurations;
using Standard.AI.OpenAI.Models.Services.Foundations.ChatCompletions;

namespace ConsoleAppOpenAI;

public class OpenAIProxy : IOpenAIProxy
{
readonly OpenAIClient openAIClient;

//all messages in the conversation
readonly List<ChatCompletionMessage> _messages;

public OpenAIProxy(string apiKey, string organizationId)
{
//initialize the configuration with api key and sub
var openAIConfigurations = new OpenAIConfigurations
{
ApiKey = apiKey,
OrganizationId = organizationId
};

openAIClient = new OpenAIClient(openAIConfigurations);

_messages = new();
}

void StackMessages(params ChatCompletionMessage[] message)
{
_messages.AddRange(message);
}

static ChatCompletionMessage[] ToCompletionMessage(
ChatCompletionChoice[] choices)
=> choices.Select(x => x.Message).ToArray();

//Public method to Send messages to OpenAI
public Task<ChatCompletionMessage[]> SendChatMessage(string message)
{
var chatMsg = new ChatCompletionMessage()
{
Content = message,
Role = "user"
};
return SendChatMessage(chatMsg);
}

//Where business happens
async Task<ChatCompletionMessage[]> SendChatMessage(
ChatCompletionMessage message)
{
//we should send all the messages
//so we can give Open AI context of conversation
StackMessages(message);

var chatCompletion = new ChatCompletion
{
Request = new ChatCompletionRequest
{
Model = "gpt-3.5-turbo",
Messages = _messages.ToArray(),
Temperature = 0.2,
MaxTokens = 800
}
};

var result = await openAIClient
.ChatCompletions
.SendChatCompletionAsync(chatCompletion);

var choices = result.Response.Choices;

var messages = ToCompletionMessage(choices);

//stack the response as well - everything is context to Open AI
StackMessages(messages);

return messages;
}
}

第 5 步:设置 API key

IOpenAIProxy chatOpenAI = new OpenAIProxy(
apiKey: "YOUR-API-KEY",
organizationId: "YOUR-ORGANIZATION-ID");

第 6 步:在我们的应用程序中使用聊天 GPT 模型

var msg = Console.ReadLine();

do
{
var results = await chatOpenAI.SendChatMessage(msg);

foreach (var item in results)
{
Console.WriteLine($"{item.Role}: {item.Content}");
}

Console.WriteLine("Next Prompt:");
msg = Console.ReadLine();

} while (msg != "bye");

屏幕截图:

Screenshot

关于.net - OpenAI ChatGPT (GPT-3.5) API 错误 : "StatusCode: 429, ReasonPhrase: ' Too Many Requests'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76779241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com