From e1dabebfb0b5e107396984e28e58b910121ff032 Mon Sep 17 00:00:00 2001 From: neavo Date: Wed, 25 Sep 2024 19:12:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20-=20=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E4=B8=8D=E8=83=BD=E6=89=A7=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 4 ++++ model/LLM.py | 18 ++++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/main.py b/main.py index 5aa3c78..874ffea 100644 --- a/main.py +++ b/main.py @@ -505,6 +505,10 @@ async def process_text(language): # 接口测试 async def test_api(): + # 设置请求限制器 + G.llm.set_request_limiter() + + # 等待接口测试结果 if await G.llm.api_test(): LogHelper.print("") LogHelper.info("接口测试 [green]执行成功[/] ...") diff --git a/model/LLM.py b/model/LLM.py index 0de7e5e..3dd2668 100644 --- a/model/LLM.py +++ b/model/LLM.py @@ -150,18 +150,20 @@ async def request(self, content, task_type, retry = False): # 设置请求限制器 def set_request_limiter(self): try: - with urllib.request.urlopen(f"{self.base_url.replace("/v1", "")}/slots") as response: + num = -1 + url = self.base_url.replace("/v1", "") if self.base_url.endswith("/v1") else self.base_url + with urllib.request.urlopen(f"{url}/slots") as response: data = json.loads(response.read().decode("utf-8")) - - # 如果信息读取成功,则覆盖原有的请求频率阈值 - if data != None and len(data) > 0: - LogHelper.info(f"") - LogHelper.info(f"检查到 [green]llama.cpp[/],根据其配置,请求频率阈值自动设置为 [green]{len(data)}[/] 次/秒 ...") - LogHelper.info(f"") - self.request_frequency_threshold = len(data) + num = len(data) if data != None and len(data) > 0 else num except Exception as e: LogHelper.debug(f"{LogHelper.get_trackback(e)}") finally: + if num > 0: + LogHelper.info(f"") + LogHelper.info(f"检查到 [green]llama.cpp[/],根据其配置,请求频率阈值自动设置为 [green]{len(data)}[/] 次/秒 ...") + LogHelper.info(f"") + self.request_frequency_threshold = len(data) + # 设置请求限制器 if self.request_frequency_threshold > 1: self.semaphore = asyncio.Semaphore(self.request_frequency_threshold) From 3af7f0307cf91cfb79c3fcee645f5f167633c018 Mon Sep 17 00:00:00 2001 From: neavo Date: Wed, 25 Sep 2024 19:17:37 +0800 Subject: [PATCH 2/3] v0.5.1 --- version.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.txt b/version.txt index 48080b4..a076e7f 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -v0.5.0 \ No newline at end of file +v0.5.1 \ No newline at end of file From 235ff950951b4d94c3eae1d5919a26d82af96a5d Mon Sep 17 00:00:00 2001 From: neavo Date: Wed, 25 Sep 2024 19:23:33 +0800 Subject: [PATCH 3/3] Update README.md --- README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 96d2078..8bf3c28 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,9 @@ ## 概述 📢 -- [KeywordGacha](https://github.com/neavo/KeywordGacha),简称 KG,使用 AI 技术来自动生成词语表的次世代工具 -- 从长篇 `中文`、`英文`、`日文`、`韩文` 文本内容中 `一键抓取实体词语`,并且 `自动翻译`、`自动总结`、`自动生成词语表` +- [KeywordGacha](https://github.com/neavo/KeywordGacha),简称 KG,使用 AI 技术来自动生成 `实体词语表` 的次世代工具 +- `实体词语表` 可以在一定程度上解决在长篇文本翻译过程中 `人名` 等实体词语翻译版本不统一的问题 +- 从 `中文`、`英文`、`日文`、`韩文` 文本内容中 `一键抓取实体词语`,并且 `自动翻译`、`自动总结`、`自动生成词语表` - 相较传统工具,具有高命中、语义化、智能总结角色信息等特色,对文本的兼容性更好 - 极大的提升 `小说`、`漫画`、`字幕`、`游戏脚本` 等内容译前准备时制作词语表的工作效率 - 随机选取 [绿站榜单作品](https://books.fishhawk.top) 作为测试样本,与人工校对制作的词表对比,命中率约为 `80%-90%` @@ -35,7 +36,7 @@ ## 应用效果 ⚡ - `抓取`、`分析` 和 `翻译` 效果取决于模型的能力,使用 💪 ~~更昂贵~~ 更强力 的模型可以显著提升效果 - 是的,氪金可以变强 -- 如果不会选择,推荐使用 `在线接口`,比如又快又便宜的 [DeepSeek - 点击查看教程](https://github.com/neavo/KeywordGacha/wiki/DeepSeek) +- 如果不会选择模型,推荐按教程使用 `在线接口`,比如又快又便宜的 [DeepSeek - 点击查看教程](https://github.com/neavo/KeywordGacha/wiki/DeepSeek) - 如果拥有 `8G+` 显存的 `Nvidia` 显卡,也可以使用 [一键包 - 点击查看教程](https://github.com/neavo/KeywordGachaServer) 来获取免费的本地服务 - 总体来说 `在线接口` 的效果和速度都远好于 `本地接口`,建议使用 `在线接口` @@ -47,6 +48,9 @@ - 具体可见 [Wiki - 支持的文件格式](https://github.com/neavo/KeywordGacha/wiki/%E6%94%AF%E6%8C%81%E7%9A%84%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F) ## 近期更新 📅 +- 20240925 v0.5.1 + - 修正 - 接口测试功能不能执行的问题 + - 20240921 v0.5.0 - 新增 - 快速模式 - 可以节约一半左右的 `时间` 和 `Token`