Keep provider connections alive: TLS handshake costs 4.2s and is paid twice per dictation
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 45/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- rust
調査の方向性
No files are named; start by finding where the provider HTTP client is built for each transcription/polishing request and for the LLM channel-health check (likely a client constructed per call). Confirm connections are torn down after each dictation. Done means a pooled client with a multi-minute idle timeout, a warm-up at startup and on provider/model change, and a configurable request timeout — the issue's 4.2s cold vs 0.18s warm timings are the acceptance signal.
索引モデルが issue の本文から書いたものです。
説明
Summary
On networks where the TLS handshake to the provider is slow, every dictation pays the handshake
cost twice — once for transcription and once for LLM polishing — because connections are not
kept alive between dictations. On this machine that is the single largest latency term.
Measurements (Windows 11, OpenLess 1.3.18, BYOK OpenAI)
Two requests in a row, the second reusing the connection:
request 1: tcp connect 0.125s | TLS handshake 4.194s | total 4.410s
request 2: tcp connect 0.000s | TLS handshake 0.000s | total 0.183s
The TLS handshake alone costs ~4.2 s; a reused connection answers in 0.18 s, 24x faster.
Supporting numbers:
- DNS resolution is fine: 259-369 ms, same as any other host. Not the bottleneck.
- TCP connect is fine: 0.125 s.
chatgpt.combehaves identically (~4.1 s on first hit). The ChatGPT website feels instant only
because the browser keeps one connection open for the whole session.- Upload is not the bottleneck: 300 KB takes 2.3 s warm vs 5.4 s cold. The delta is the handshake.
This looks like SNI-based traffic inspection on the ISP side. It is outside the control of the app,
but the app decides how often that cost is paid.
What it looks like in the app
Avg per segment on this machine showed 9.5 s; individual dictations 3.1-5.7 s. The channel
health check for the LLM provider reported 5292 ms. Local ASR was tried as well (Foundry Local and
sherpa-onnx, several Whisper sizes), but with a cloud provider the handshake cost is paid on every
dictation and dominates everything else.
Requests
- Keep provider connections alive between dictations — a connection pool with a multi-minute
idle timeout instead of closing after each request. - Warm up the connection when the app starts, and after the provider or model is changed,
so the handshake is paid once per session instead of before each dictation. - If a request timeout exists, make it configurable. With a 4 s handshake plus a long
recording, a fixed short limit produces confusing timeout errors.
Why this is worth doing
For users behind traffic inspection this term is larger than model choice or prompt size.
Two connection settings would cut several seconds off every dictation without changing any
product behaviour.
Related: #994 (plain-text insertion mode).
- 主要言語
- Rust
- スター
- 3.7k
- フォーク
- 349
- 平均マージ
- 2日 14時間
- マージ済み PR(30日)
- 97
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Open-Less/openless のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
[windows] 录音快捷键还不支持设置为ScrllLock键対応中かも @HKLHaoBin が 9 日前に担当しました。 オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Open-Less/openless#1241 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 18/100
メンテナーはふだん 1 日以内に返信
-
[omni] 多模态模式开启翻译后,译文时有时无,或混在 JSON 字段里対応中かも @Breadswim が 2 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 52/100
メンテナーはふだん 1 日以内に返信
-
[omni] 多模态「验证」对 OpenAI gpt-audio-1.5 必然返回 400対応中かも @Breadswim が 2 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
メンテナーはふだん 1 日以内に返信
Open-Less/openless の issue をすべて見る
似ている issue
-
priority: low ☕️ type: bug 🐛
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
area:docs documentation good first issue priority:medium
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
feature
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
calagopus/panel#285 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
agent-self
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
yologdev/yoyo-evolve#1117 · コメント 1 件 ·
-
[Bug]: streamed Responses API flex_unavailable error maps to 500 InternalServerError instead of 429オープンllm translation
難易度 2/5 1時間未満 初心者へのやさしさ 85/100
BerriAI/litellm#49736 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信