Как вызвать ChatGPT из C# с помощью HttpClientFactory, я продолжаю получать ошибки и никаких ответов
Это очень раздражает. Игровая площадка дает только python и node, пытаясь использовать это в C#, и я продолжаю получать ошибки. Вот как это у меня настроено.
Сначала в файле программы/запуска я настраиваю его так: (URL: https://api.openai.com/)
services.AddHttpClient("ChatGptAPI", client =>
{
client.DefaultRequestHeaders.Clear();
client.BaseAddress = aiOptions.Url;
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + aiOptions.Bearer);
});
Затем в моем методе я вызываю это:
var client = _httpFactory.CreateClient("ChatGptAPI");
var payload = new
{
prompt = $"Create a first person story\n\n{storyText}",
temperature = "0.5",
max_tokens = "1500",
model = "text-davinci-003"
};
var content = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");
var response = await client.PostAsync("v1/completions", content);
Console.WriteLine("ChatGptAPI result:");
Console.WriteLine(response.RequestMessage);
Сначала я продолжал получать ошибки Bad Request, но как только я попробовал другие URL-адреса для запроса, он, кажется, прошел, но ответ пуст.
На всю жизнь я не могу найти какие-либо образцы, в которых С# вызывает эти службы.
Любая помощь будет здорово.
Я пробовал несколько URL-адресов, я пытался запустить это в Playground и просмотреть код, и я искал другие образцы, но это продолжает давать сбой или ничего не возвращает. Также пробовал использовать пакет OpenAI Nuget, это была пустая трата времени.
1 ответ
Чтобы использовать API OpenAI в C#, вы можете отправлять HTTP-запросы к конечной точке API, используя класс HttpClient. Вот пример кода, который поможет вам начать:
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace OpenAIExample
{
class Program
{
static async Task Main(string[] args)
{
string prompt = "Hello, ChatGPT!";
string apiKey = "your_api_key_here";
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var request = new
{
prompt = prompt,
temperature = 0.5,
max_tokens = 50
};
var content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
var response = await httpClient.PostAsync("https://api.openai.com/v1/engines/davinci-codex/completions", content);
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
}
Этот код отправляет запрос API OpenAI и получает ответ с помощью механизма Кодекса Давинчи. Вам нужно будет заменить «your_api_key_here» своим фактическим ключом API.