Как вызвать 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.

Другие вопросы по тегам