Audio API endpoing 9/10 connection closed whilst writing to stream

від

у

Переклад українською:

Audio API endpoint 9/10 з’єднання закрилося під час запису до потоку

https://ift.tt/0BTbN6G

Я використовую бібліотеку dotnet llmTornado для завантаження простого аудіо довжиною 1 хвилина, 1 МБ mp3, але вона падає 9/10 разів. Думав, що це проблема бібліотеки, тому написав простий httpclient для виконання завдання — та сама проблема. Думаючи, що це дивна особливість .NET, спробував простий запит Python

python:

import requests
url = “https://ift.tt/Dqy0kEd”
with open(FILE_PATH, “rb”) as f:
files = {
“file”: (FILE_PATH, f, “audio/wav”)
}
data = {
“model”: “whisper-1”
}
headers = {
“Authorization”: f”Bearer {API_KEY}”,
“Expect”: “” # відключити 100-continue
}

# Відключити keep-alive, щоб уникнути переривань посеред потоку
session = requests.Session()
session.headers.update(headers)
response = session.post(url, files=files, data=data, headers={“Connection”: “close”})

print(“Статус:”, response.status_code)
print(“Відповідь:”, response.text)

однак проблема триває: я пробував wav, mp3, зменшував тривалість файлу до 30 сек, до 10 сек. Це випадково. Один раз працює, інший раз ні.

помилка Python:

c:\Python\Python312>python whisper.py
urllib3.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:2406)

Наведена вище помилка була прямою причиною наступної помилки:

Traceback (most recent call last):
File “c:\Python\Python312\Lib\site-packages\requests\adapters.py”, line 667, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\urllib3\connectionpool.py”, line 843, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\urllib3\util\retry.py”, line 519, in increment
raise MaxRetryError(_pool, url, reason) from reason # type: ignore[arg-type]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’api.openai.com’, port=443): Max retries exceeded with url: /v1/audio/transcriptions (Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:2406)’)))

Під час обробки попереднього виклику сталася інша помилка:

Traceback (most recent call last):
File “c:\Python\Python312\whisper.py”, line 22, in
response = session.post(url, files=files, data=data, headers={“Connection”: “close”})
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\requests\sessions.py”, line 637, in post
return self.request(“POST”, url, data=data, json=json, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\requests\sessions.py”, line 589, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\requests\sessions.py”, line 703, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “c:\Python\Python312\Lib\site-packages\requests\adapters.py”, line 698, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=’api.openai.com’, port=443): Max retries exceeded with url: /v1/audio/transcriptions (Caused by SSLError(SSLEOFError(8, ‘EOF occurred in violation of protocol (_ssl.c:2406)’)))

і код .NET/C#:

public async Task TranscribeAsync(string apiKey, string filePath, string model = “whisper-1”)
{
var handler = new SocketsHttpHandler
{
#if MODERN
RequestVersion = HttpVersion.Version11,
RequestVersionPolicy = HttpVersionPolicy.RequestVersionOrLower
#endif
AutomaticDecompression = DecompressionMethods.All,
Expect100ContinueTimeout = TimeSpan.FromSeconds(0)
};

var _httpClient = new HttpClient(handler, disposeHandler: true);
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(“Bearer”, apiKey);
using var form = new MultipartFormDataContent();

// Buffer файлу повністю перед відправкою
var fileBytes = await File.ReadAllBytesAsync(filePath);
var fileContent = new ByteArrayContent(fileBytes);
fileContent.Headers.ContentType = new MediaTypeHeaderValue(“audio/mpeg”);

form.Add(fileContent, “file”, Path.GetFileName(filePath));
form.Add(new StringContent(model), “model”);

using var response = await _httpClient.PostAsync(“https://ift.tt/Dqy0kEd”, form);

response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}

і повідомлення про помилки без трасування

Під час надсилання запиту сталася помилка.
Не вдалося зчитати дані з транспортного з’єднання: існуюче з’єднання примусово закрито віддаленим хостом..
Існуюче з’єднання примусово закрито віддаленим хостом.

Тож я думаю, що це має бути мій комп’ютер/мережа. Але можу користуватися чатом/відповідями, завантажувати зображення, відео (до Gemini). Тільки AUDIO endpoint, і як я сказав — інколи працює, 1/5, інколи 1/10, а потім тримає 3 рази підряд.

Будь ласка, дайте ідеї, буду вдячний.

Cheers

HI-FI News

via OpenAI Developer Community – Latest posts https://ift.tt/NAHOTet

25 лютого 2026 року о 15:29

February 17, 2026 at 03:29PM


Коментарі

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *