xiaoxx970 / chatgpt-in-terminal

Use ChatGPT in terminal
MIT License
201 stars 27 forks source link

关于改进添加功能提议 #37

Closed Lemon-2333 closed 1 year ago

Lemon-2333 commented 1 year ago

我把这个项目folk了 并且把其中的代码重新整理了一下,而且还初步支持了Poe.com的API 就是不知道作者对于这个项目目录结构这些能否接受合并(毕竟改的却是很大) 其中Poe的Api已经是初步可用状态,但是其他的附加项我暂时还没加入,例如配置文件,命令行参数 我未来预计还会再加上i8n本地化 我的folk地址

xiaoxx970 commented 1 year ago

看到了确实改动挺多,你可以描述下增加POE api 有什么好处吗? 我所知道的POE就是整合了多个聊天模型,包括ChatGPT和Claude什么的。它相比openai的API价格是怎样的?可用地区是不是更少限制一些? 这个项目最初的目只是在终端和ChatGPT聊天,倒是确实没想过添加其他聊天的API。如果添加的话维护和测试的成本会增加不少,所以我要考虑好处和代价值不值得。

xiaoxx970 commented 1 year ago

我未来预计还会再加上i8n本地化

这个的话我倒是也想实现,如果有这个功能单独PR的话非常欢迎

Lemon-2333 commented 1 year ago

Poe的所谓的Api实际上是别人逆向出来的逆向api仓库地址 最大的好处就是,只需要提供自己登陆的token,就能获得基础版本的访问。 基础版本包括:

  1. 每天1次免费GPT4
  2. 每天3次免费Claude+
  3. 一个月免费100次的Claude-instant-100k(就Claude最新的大token模型,目前每月100次是官方暂定)
  4. 免费的:ChatGpt、Claude-instant、Sage、Dragonfly、NeevaAI模型,其中ChatGpt需要安装它们的手机app进行激活就能免费使用,否则只有每天几次。至于激活后的ChatGpt,以及其他模型,疑似有10条每分钟的限制,毕竟我还没到过限制

至于可用地区没研究过,但是它没IP封锁,可以保证自己账号安全

xiaoxx970 commented 1 year ago

这样啊,免费的ChatGPT还有其他模型确实挺不错,不过我想了下还是不合并进来了,我可以在readme里添加一个你的repo的链接。原因一个是用的非官方的API,可能一直可以用也可能哪天就被官方改了接口导致不可用了。另一个就是确实会增加维护成本,我还是想保持这个项目的不太多的功能。 未来我会让这个项目的可复用性更好一点,做到对我的类简单的继承和自定义一下就可以让这个终端在其他API接口下工作,这样对接poe或者其他API就只需要写个覆盖handle的函数就可以 总之还是谢谢你的提议啦

Ace-Radom commented 1 year ago

并且把其中的代码重新整理了一下,而且还初步支持了Poe.com的API

@xiaoxx970 提到的维护成本和非官方的风险也是一个现实问题 但其实我觉得想法挺不错的 有一个提议……?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看

我未来预计还会再加上i8n本地化

这个确实挺好 如果有单独的话merge进main应该没问题

xiaoxx970 commented 1 year ago

提到的维护成本和非官方的风险也是一个现实问题 但其实我觉得想法挺不错的 有一个提议……?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看

这个可以考虑但是意义不大,毕竟gpt-term包只有一个,放单独分支readme要更新安装步骤,如果分支能自己更新上游的话或许可以

Lemon-2333 commented 1 year ago

提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看>> 这个可以考虑但是意义不大,毕竟gpt-term包只有一个,放单独分支readme要更新安装步骤,如果分支能自己更新上游的话或许可以这个我暂时还不会,但是可以试试看看,研究一下,我之前还没有过。

并且把其中的代码重新整理了一下,而且还初步支持了Poe.com的API

@xiaoxx970提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的有一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看

我未来预计还会再加上i8n本地化

这个确实挺好 如果有单独的话merge进main应该没问题

那我先整理一下i18n本地化,如果快的话明天估计就会有个PR,到时候我可能会新增加几个命令,用来切换语言之类的,不知道你们意见如何

xiaoxx970 commented 1 year ago

提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看>> 这个可以考虑但是意义不大,毕竟gpt-term包只有一个,放单独分支readme要更新安装步骤,如果分支能自己更新上游的话或许可以这个我暂时还不会,但是可以试试看看,研究一下,我之前还没有过。

并且把其中的代码重新整理了一下,而且还初步支持了Poe.com的API

@xiaoxx970提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的有一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看

我未来预计还会再加上i8n本地化

这个确实挺好 如果有单独的话merge进main应该没问题

那我先整理一下i18n本地化,如果快的话明天估计就会有个PR,到时候我可能会新增加几个命令,用来切换语言之类的,不知道你们意见如何

可以可以,非常感谢。

Lemon-2333 commented 1 year ago

提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看>> 这个可以考虑但是意义不大,毕竟gpt-term包只有一个,放单独分支readme要更新安装步骤,如果分支能自己更新上游的话或许可以这个我暂时还不会,但是可以试试看看,研究一下,我之前还没有过。

并且把其中的代码重新整理了一下,而且还初步支持了Poe.com的API

@xiaoxx970提到的维护成本和非官方的风险也是一个现实问题但其实我觉得想法挺不错的有一个提议......?也许可以在主仓库里新建一个branch存放带有poe支持的版本 不过这个看你们怎么看

我未来预计还会再加上i8n本地化

这个确实挺好 如果有单独的话merge进main应该没问题

那我先整理一下i18n本地化,如果快的话明天估计就会有个PR,到时候我可能会新增加几个命令,用来切换语言之类的,不知道你们意见如何

可以可以,非常感谢。

不用不用 我刚刚完成了初步的i18n 可以看看图片:p9gn3I1.png 图片

xiaoxx970 commented 1 year ago

它能根据当前终端的地区决定默认语言的吧? @Lemon-2333

Lemon-2333 commented 1 year ago

它能根据当前终端的地区决定默认语言的吧? @Lemon-2333

当然可以,但是在英语环境下需要测试(我没测试环境(确信。 我现在估计提取了80%左右的文本了,再加把力就能完成了(确信

Lemon-2333 commented 1 year ago

不知道你们能不能帮我测试一下,我已经push了我目前进度的项目,i18n功能在单独的i18n分支里

Ace-Radom commented 1 year ago

当然可以,但是在英语环境下需要测试(我没测试环境(确信。 我现在估计提取了80%左右的文本了,再加把力就能完成了(确信

我来测试一下吧 WSL是英文的

Ace-Radom commented 1 year ago

image 我在wsl里测试的时候出来的是这样的 在windows下一切正常

我因为还在修隔壁重构计划的恶性bug所以代码还没详细看就测了一下 晚点去看看

Lemon-2333 commented 1 year ago

image 我在wsl里测试的时候出来的是这样的 在windows下一切正常

我因为还在修隔壁重构计划的恶性bug所以代码还没详细看就测了一下 晚点去看看

谢谢,麻烦你了,你可以发一下你WSL的LANG的值吗

Ace-Radom commented 1 year ago

谢谢,麻烦你了,你可以发一下你WSL的LANG的值吗

设置的都是 en_US.UTF8(其实我也没动过

image
Lemon-2333 commented 1 year ago
image

我现在只能判断它是来自LANG变量的错误,但是一般情况下,如果没有这个语言文件的话,它会默认使用英文

Ace-Radom commented 1 year ago

我现在只能判断它是来自LANG变量的错误,但是一般情况下,如果没有这个语言文件的话,它会默认使用英文

emmm不见得 因为我刚刚改了下LANG设置 发现了这样的问题

image

我一会儿到虚拟机里去试一下 也有可能是WSL造成的

Lemon-2333 commented 1 year ago

我现在只能判断它是来自LANG变量的错误,但是一般情况下,如果没有这个语言文件的话,它会默认使用英文

emmm不见得 因为我刚刚改了下LANG设置 发现了这样的问题

image

我一会儿到虚拟机里去试一下 也有可能是WSL造成的

也有可能是我用的这个i18n库的问题?

Lemon-2333 commented 1 year ago

我现在只能判断它是来自LANG变量的错误,但是一般情况下,如果没有这个语言文件的话,它会默认使用英文

emmm不见得 因为我刚刚改了下LANG设置 发现了这样的问题

image

我一会儿到虚拟机里去试一下 也有可能是WSL造成的

你试试手动命令,运行过后,运行命令:/lang en试试

Ace-Radom commented 1 year ago

你试试手动命令,运行过后,运行命令:/lang en 试试

image

没有用处 还是一样的问题 另外我刚刚在VM内测试过了 也是一样的问题【VM是中文环境】

image

我还没测别的发行版【我的开发环境和VM环境均为Debian 11.6 只是开发环境是WSL2】因为内存不够了 等我内存占用降下来点了去测一下Ubuntu和Arch内的行为 但我估计有可能是这个库不支持Linux 晚点会去看一下这个库的源码

Ace-Radom commented 1 year ago
image

在win11上很正常 不知道为什么Linux这个i18n不可用

Lemon-2333 commented 1 year ago

你试试手动命令,运行过后,运行命令:/lang en 试试

image

没有用处 还是一样的问题 另外我刚刚在VM内测试过了 也是一样的问题【VM是中文环境】 image 我还没测别的发行版【我的开发环境和VM环境均为Debian 11.6 只是开发环境是WSL2】因为内存不够了 等我内存占用降下来点了去测一下Ubuntu和Arch内的行为 但我估计有可能是这个库不支持Linux 晚点会去看一下这个库的源码

结果如何?也许还有个可能是因为我用的翻译文件用的YMAL的原因,或许是这个库解析YMAL的问题? 试试手动安装或者更新一下python的ymal库?pip3 install PyYAML 我的版本是6.0

Lemon-2333 commented 1 year ago

如果还是不行我把翻译文件改成json试试

Ace-Radom commented 1 year ago
image

难蚌 好了 看来确实是yaml解析的问题

Ace-Radom commented 1 year ago

不过现在看起来这个语言检测好像还是有点问题 虽然我不知道后期能改成什么样但加入一个比检测层级更高的config项会不会更好?也就是说 在这个lang配置项为空时启动检测 否则就按照config读取语言

Lemon-2333 commented 1 year ago

不过现在看起来这个语言检测好像还是有点问题 虽然我不知道后期能改成什么样但加入一个比检测层级更高的config项会不会更好?也就是说 在这个lang配置项为空时启动检测 否则就按照config读取语言

这个我肯定会加的,包括命令行参数,只是这2个优先级我放到最低了。 包括我的另一个Poe也会加这些东西(

xiaoxx970 commented 1 year ago

我在mac上测试很好能正常显示和切换。但是我看到main.py里手动指定了语言是"zh_cn"?这样是不是并没有跟随系统语言,我也试过设置LANG=en_US.UTF8显示的还是中文

对了如果对pyyaml有依赖的话记得添加到requirement.txt

Lemon-2333 commented 1 year ago

我在mac上测试很好能正常显示和切换。但是我看到main.py里手动指定了语言是"zh_cn"?这样是不是并没有跟随系统语言,我也试过设置LANG=en_US.UTF8显示的还是中文

对了如果对pyyaml有依赖的话记得添加到requirement.txt

有没有可能,更新一下你的本地仓库就好了👀

xiaoxx970 commented 1 year ago

我在mac上测试很好能正常显示和切换。但是我看到main.py里手动指定了语言是"zh_cn"?这样是不是并没有跟随系统语言,我也试过设置LANG=en_US.UTF8显示的还是中文 对了如果对pyyaml有依赖的话记得添加到requirement.txt

有没有可能,更新一下你的本地仓库就好了👀

image

我看这个分支是3天前更新的

Lemon-2333 commented 1 year ago

目前就剩下usage还有tokens这2个命令的地方没有提取了 提取完了我就开始加命令行参数以及config了

Lemon-2333 commented 1 year ago

我在mac上测试很好能正常显示和切换。但是我看到main.py里手动指定了语言是"zh_cn"?这样是不是并没有跟随系统语言,我也试过设置LANG=en_US.UTF8显示的还是中文 对了如果对pyyaml有依赖的话记得添加到requirement.txt

有没有可能,更新一下你的本地仓库就好了👀

image 我看这个分支是3天前更新的

抱歉啊,我提交了本地改动,但是忘记push了,sorry

Lemon-2333 commented 1 year ago

对了,这里的help需要汉化吗:

image

如果你们想的话,这里也可以汉化的,你们觉得呢

xiaoxx970 commented 1 year ago

对了,这里的help需要汉化吗: image 如果你们想的话,这里也可以汉化的,你们觉得呢

挺好,需要汉化的,辛苦啦

Lemon-2333 commented 1 year ago

我还是觉得它这里报错挺离谱的:

image
xiaoxx970 commented 1 year ago

我还是觉得它这里报错挺离谱的: image

我的vscode没有诶,你可能装多了插件?

xiaoxx970 commented 1 year ago
image

这好像是一个bug?语言没切换,而且我的环境是中文的默认显示的还是英文内容

Lemon-2333 commented 1 year ago

我还是觉得它这里报错挺离谱的: image

我的vscode没有诶,你可能装多了插件?

没有哦,这里是单独的,每次遇到这种叠起来的文本,如果这样写就会报错,说括号问题,但是从我看来也没错,就很无语,每次遇到这种就得单独合起来。qwq

Lemon-2333 commented 1 year ago
image

OK over

Lemon-2333 commented 1 year ago

我这里没有这个问题:

image
Ace-Radom commented 1 year ago

辛苦了 我一会儿去测试一下

Lemon-2333 commented 1 year ago
image

这里有个日语(GPT翻译),还需要再加其他语言吗?

Ace-Radom commented 1 year ago

我一会儿空下来来翻译一个德语吧(德国佬实锤