tisfeng / Easydict

一个简洁优雅的词典翻译 macOS App。开箱即用,支持离线 OCR 识别,支持有道词典,🍎 苹果系统词典,🍎 苹果系统翻译,OpenAI,Gemini,DeepL,Google,Bing,腾讯,百度,阿里,小牛,彩云和火山翻译。A concise and elegant Dictionary and Translator macOS App for looking up words and translating text.
GNU General Public License v3.0
6.38k stars 324 forks source link

🚀 功能建议:改进 OpenAI 的 stream 请求停止实现 #560

Open tisfeng opened 1 month ago

tisfeng commented 1 month ago

请先确认以下事项

功能描述

由于使用的第三方库 OpenAI 不支持停止 stream 请求,因此目前的代码实现只是忽略了 isStreamFinished 的请求,但这样会有一个问题,如果某个请求 A 内容特别长,以至于下个新的请求发出时,请求 A 还没有结束,这样会导致同时出现两个请求交错 completion 😥

https://github.com/tisfeng/Easydict/blob/30dd06d07cfbb81b07a7a4a9dfa392ebbcfa093b/Easydict/Swift/Service/OpenAI/BaseOpenAIService.swift#L129

https://github.com/tisfeng/Easydict/assets/25194972/306fe96c-5520-441d-862b-aa9b56d22bd2

使用场景

*

实现方案(可选)

已经有人提了这个问题 Cancel the async openAI.chatsStream(query: query) ,但这个库的维护者并没有响应,这里有个实现 https://github.com/longseespace/OpenAI/commit/a290a1a119fc465cdb1740472242fbfca57069b9 ,或许我们将它 pick 到自己 fork 的库上 OpenAI

是否愿意提交 PR 实现该功能