From b122cf33395ba4032a6c318bfb3419314670fe7d Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Sat, 22 Aug 2026 23:41:29 +0300 Subject: [PATCH] =?UTF-8?q?fix(ai):=20STT=20httpc=20=D1=82=D0=BE=D0=BB?= =?UTF-8?q?=D1=8C=D0=BA=D0=BE=20IPv4=20=E2=80=94=20=D1=82=D0=B0=D0=B9?= =?UTF-8?q?=D0=BC=D0=B0=D1=83=D1=82=20=D0=BD=D0=B0=20=D1=85=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=B0=D1=85=20=D0=B1=D0=B5=D0=B7=20IPv6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На stage прямой режим к api.x.ai падал upstream_error ровно через STT_TIMEOUT_MS: DNS Erlang отдаёт AAAA первым, IPv6-маршрута на хосте нет, httpc с дефолтным inet6fb4 висит на connect до таймаута (curl/wget с happy-eyeballs проходили). ipfamily=inet на профиле eventhub_stt; IFT (прямой) и прокси-режим не затрагиваются. --- src/logic/logic_ai_transcribe.erl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/logic/logic_ai_transcribe.erl b/src/logic/logic_ai_transcribe.erl index 96b0a46..d9b3959 100644 --- a/src/logic/logic_ai_transcribe.erl +++ b/src/logic/logic_ai_transcribe.erl @@ -172,11 +172,17 @@ default_http_post(Url, Headers, ContentType, Body) -> %% к STT-апстриму, остальные httpc-вызовы не затрагиваются. ensure_profile() -> case inets:start(httpc, [{profile, ?HTTP_PROFILE}]) of - {ok, _Pid} -> apply_proxy(); - {error, {already_started, _Pid}} -> apply_proxy(); + {ok, _Pid} -> apply_profile_opts(); + {error, {already_started, _Pid}} -> apply_profile_opts(); _ -> ok end. +apply_profile_opts() -> + %% Только IPv4: на хостах без IPv6-маршрута httpc с дефолтным + %% inet6fb4 висит до таймаута, если AAAA приходит первым. + httpc:set_options([{ipfamily, inet}], ?HTTP_PROFILE), + apply_proxy(). + apply_proxy() -> case parse_proxy(proxy_url()) of {ok, Host, Port} ->