Как использовать пакетный API OpenAI в C#C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать пакетный API OpenAI в C#

Сообщение Anonymous »

Я хочу использовать пакетный API openai для получения ответа на мои данные. Я не уверен, сможем ли мы сделать в C# то же самое, что и в Python. В Python мы загружаем файл .jsonl на сервер OpenAI. Затем сервер считывает файл для генерации ответа, который затем сохраняется в файле, идентификатор которого предоставлен нам openai для получения ответов.
Так как же это сделать на C#?
Я все сделал, но не работает.

Код: Выделить всё

using System.Net.Http.Headers;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
public class OpenAIBatchClient
{
private readonly HttpClient _httpClient;
private readonly string _openAiApiKey;

public OpenAIBatchClient(string openAiApiKey)
{
_httpClient = new HttpClient();
_openAiApiKey = openAiApiKey;

// Set the authorization header
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _openAiApiKey);
}

public async Task UploadFileAsync(string filePath)
{
using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (var content = new StreamContent(fileStream))
{
content.Headers.ContentType = new MediaTypeHeaderValue("application/jsonl");

var response = await _httpClient.PostAsync("https://api.openai.com/v1/files", content);
if (response.IsSuccessStatusCode)
{
var responseBody = await response.Content.ReadAsStringAsync();
var jsonResponse = JObject.Parse(responseBody);
return jsonResponse["id"].ToString(); // return the file ID
}
else
{
throw new Exception($"Error uploading file: {response.StatusCode} - {await response.Content.ReadAsStringAsync()}");
}
}
}

public async Task CreateBatchAsync(string inputFileId)
{
var batchRequest = new
{
input_file_id = inputFileId,
endpoint = "/v1/chat/completions",
completion_window = "24h",
metadata = new {
description = "nightly eval job"
}
};

var content = new StringContent(JObject.FromObject(batchRequest).ToString(), System.Text.Encoding.UTF8, "application/json");

var response = await _httpClient.PostAsync("https://api.openai.com/v1/batches", content);
if (response.IsSuccessStatusCode)
{
var responseBody = await response.Content.ReadAsStringAsync();
var jsonResponse = JObject.Parse(responseBody);
return jsonResponse["id"].ToString(); // return the batch ID
}
else
{
throw new Exception($"Error creating batch: {response.StatusCode} - {await response.Content.ReadAsStringAsync()}");
}
}

Теперь я хочу сделать то же самое на C#, как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/790 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»