用 Rust 写了一个免费使用 ChatGPT 的命令行工具 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
inkuku
V2EX    分享创造

用 Rust 写了一个免费使用 ChatGPT 的命令行工具

  •  
  •   inuku
    shenjinti 2024-04-18 18:50:13 +08:00 3159 次点击
    这是一个创建于 554 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Rust写了一个免费使用 ChatGPT 的命令行工具

    代码在 https://github.com/shenjinti/fgpt star

    提供了 mac 和 linux 的二进制包. 可以到 github 上自行下载

    不得不说,Rust写 cli 工具还是真的好用,不管是readline或者tokioreqwest都大大减少代码量

    功能:

    • 完全命令行操作,支持各种管道
    • 支持交互模式,能重置会话
    • 内置支持代理配置,也可以用全局的https_proxy变量
    • 支持 OpenAI 的OpenAPI模式,无限使用

    看看简单用法

     fgpt "How to get a domain's MX record on linux shell?" # Output plain code -c/--code fgpt -c "Write python code to reverse a string" # With pipe git diff | fgpt "Write a git commit bief with follow diff" # With stdin fgpt "Convert the follow csv data to json, without any description" < contacts.csv 
    16 条回复    2024-04-22 17:36:38 +08:00
    amorphobia
        1
    amorphobia  
       2024-04-18 20:13:14 +08:00
    linux 可以编译 musl libc 吗?想在某些古老的系统上使用
    Vogan
        2
    Vogan  
       2024-04-18 22:20:04 +08:00
    能支持代码 markdown 的高亮嘛? shell-gpt 支持
    inkuku
        3
    inkuku  
    OP
       2024-04-19 08:54:35 +08:00
    @amorphobia 可以的,我研究一下
    inkuku
        4
    inkuku  
    OP
       2024-04-19 08:54:44 +08:00
    @Vogan 安排,今天支持哈哈
    molezznet
        5
    molezznet  
       2024-04-19 09:25:56 +08:00
    fgpt "hello"
    Error: Reqwest("builder error")
    怎么排查 ……
    inkuku
        6
    inkuku  
    OP
       2024-04-19 09:33:53 +08:00
    @molezznet 抱歉抱歉,我们看看啥情况了这是
    你 fgpt --log-level debug 看看?
    macy
        7
    macy  
       2024-04-19 10:29:44 +08:00
    能否支持自己配置 url 和 key 呢,这样就能对接到其他兼容的大模型或者企业内部私有的模型了
    molezznet
        8
    molezznet  
       2024-04-19 10:45:37 +08:00
    fgpt --log-level debug "hi"
    2024-04-19 10:45:02 [DEBUG] cli.rs:141 - Message { role: "user", content: "hi", content_type: "text" }
    Error: Reqwest("builder error")
    inkuku
        9
    inkuku  
    OP
       2024-04-19 10:49:43 +08:00
    @macy 暂时不支持配置 api key ,后续可以考虑支持 ollama
    inkuku
        10
    inkuku  
    OP
       2024-04-19 10:50:13 +08:00
    @molezznet 私信你了,微信我看看,看起来应该是你的 proxy 设置我们不支持
    inkuku
        11
    inkuku  
    OP
       2024-04-19 10:50:57 +08:00
    @molezznet 这里好像不能 DM ,加我 jinti2000 哈哈哈哈
    molezznet
        12
    molezznet  
       2024-04-19 11:49:10 +08:00
    @inkuku 嗯 没事啊, 我在 github issues 提吧, 方便贴东西
    inkuku
        13
    inkuku  
    OP
       2024-04-19 19:13:47 +08:00
    @molezznet hahah ,看到了,多谢,确认是 reqwest 没有启用 socks5 导致的,我已经修复了,可以测试看看哈哈
    molezznet
        14
    molezznet  
       2024-04-19 20:47:30 +08:00
    @inkuku 行了
    >> 含有“笑”的词语
    当然,以下是一些含有“笑”的词语:

    1. 笑容 (xiào róng) - smile
    2. 笑话 (xiào huà) - joke
    3. 笑声 (xiào shēng) - laughter
    4. 笑脸 (xiào liǎn) - smiling face
    5. 笑眼 (xiào yǎn) - laughing eyes
    6. 笑嘻嘻 (xiào xī xī) - smilingly
    7. 笑到肚子疼 (xiào dào dù zi téng) - laughing till one's stomach hurts
    8. 笑而不语 (xiào ér bù yǔ) - smile without saying a word

    希望你喜欢这些词语!
    royalknight
        15
    royalknight  
       2024-04-22 11:29:08 +08:00
    这个会封号吗,哈哈
    inkuku
        16
    inkuku  
    OP
       2024-04-22 17:36:38 +08:00
    @royalknight 不会,因为没有登录注册账号的逻辑,但是需要自己翻墙
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2675 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 08:41 PVG 16:41 LAX 01:41 JFK 04:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86