V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sinotw
V2EX  ›  程序员

一个我觉的挺有用的终端 AI 工具 tgpt

  •  
  •   sinotw · 14 天前 · 1042 次点击

    看别人 blog 偶尔发现的。 warp 中有 AI 助手,挺好用的,但 iTerm 就只能靠自己了,这个 tgpt 就能实现 warp 差不多的功能。不用任何 API key

    安装

    curl -sSL https://raw.githubusercontent.com/aandrew-me/tgpt/main/install | bash -s /usr/local/bin
    

    使用

    1. 一般使用
    ➜  ~ tgpt "lua 是什么?"
    
    Lua 是一种轻量级、高效的脚本语言,主要用于游戏开发和嵌入式系统。以下是 Lua 的一些关键特点:
    
    1. 简单易学:Lua 的语法简洁明了,学习曲线较低。
    
    2. 高效性:Lua 的解释器非常快速,可以在各种平台上运行。
    
    3. 多用途:常用于游戏开发、Web 服务器、自动化脚本等领域。
    
    4. 动态类型:Lua 是动态类型语言,不需要显式声明变量类型。
    
    5. 面向对象:支持面向对象编程,但不是强制性的。
    
    6. 模块化:可以通过模块系统组织代码。
    
    7. 可扩展性:允许用户自定义元表( metatables )来扩展语言功能。
    
    8. 跨平台:可以在多种操作系统和设备上运行。
    
    9. 社区活跃:有大量开源库和文档可供使用。
    
    10. 性能优化:适合在资源受限的环境中使用。
    
    Lua 被广泛应用于游戏开发,如 World of Warcraft 、Warcraft III 等,以及一些著名的游戏引擎如 Roblox 和 Garry's Mod 。
    
    如果您想了解更多关于 Lua 的信息,可以查看官方网站: https://www.lua.org/
    

    2.--shell shell 辅助

    tgpt 一大亮点就是自动生成命令的能力生成命令后,提示我们是否直接执行。

    ➜  ~
    ➜  ~ tgpt --shell "在~/Workspace 目录中查找 2024 年 11 月 30 日之前创建的 python 文件,并把查询结果输出到当前目录的 result.txt 文件中"
    find ~/Workspace -name "*.py" -newermt "2024-11-30" > ~/result.txt
    
    Execute shell command? [y/n]: y
    ➜  ~
    

    3.--code 代码辅助

    ➜  ~
    ➜  ~ tgpt --code "生成一段创建 10 个随机数的数组的 Typescript 代码"
    
    const randomArray = Array.from({length: 10}, () => Math.floor(Math.random() * 100));
    console.log(randomArray);
    
    ➜  ~
    

    4.-i 对话

     tgpt -i
    Interactive mode started. Press Ctrl + C or type exit to quit.
    
    ╭─ You
    ╰─> 你好
    
    ╭─ Bot
    您好!我是 Phind 的编程助手。很高兴为您提供帮助。如果您有任何编程相关的问题或任务,请随时告诉我。我可以在 VSCode 中协助您解决各种编程问题。
    
    ╭─ You
    ╰─> 编写一个 python 代码,输出 1-100 之内的质数
    
    ╭─ Bot
    以下是一个 Python 代码,用于输出 1-100 之间的素数:
    
    
    def is_prime(n):
        if n <= 1:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        max_divisor = int(n**0.5) + 1
        for d in range(3, max_divisor, 2):
            if n % d == 0:
                return False
        return True
    
    prime_numbers = [n for n in range(1, 101) if is_prime(n)]
    print(prime_numbers)
    # If you come from bash you might have to change your $PATH.
    
    
    这个代码做了以下几件事:
    
    1. 定义了一个 is_prime()函数来检查数字是否为素数。
    2. 使用列表推导式生成 1-100 之间的素数。
    3. 打印出这些素数。
    
    这个代码的时间复杂度是 O(n*sqrt(n)),空间复杂度是 O(n)。
    
    如果您需要更优化的算法,可以考虑使用 Sieve of Eratosthenes 算法,它的时间复杂度是 O(n log log n)。如果您想了解更多关于 Sieve of Eratosthenes 算法的信息,请告诉我。
    
    ╭─ You
    ╰─> exit
    Exiting...
    

    5.--img 生成图片

    ➜  ~ tgpt --img "cat"
    Generating image with pollinations.ai...
    Saved image as Ni66e7QtdrbiP0yrorps.jpg
    ➜  ~ ll
    

    总之,没什么特殊的开销的基础上,效果我认为还不错了。 话说怎么今天 V2 没法贴图了啊。。。

    4 条回复    2025-04-11 17:48:04 +08:00
    suofeiya
        1
    suofeiya  
       14 天前
    确实不错,不过 iterm2 不是自带有 AI ?

    joyxubing966
        2
    joyxubing966  
       14 天前
    这个可以离线用吗?内网环境想用 ai 感觉基本不行了,这个估计是不是离线也不行
    sinotw
        3
    sinotw  
    OP
       14 天前
    @joyxubing966
    确实不行
    sinotw
        4
    sinotw  
    OP
       14 天前
    @suofeiya
    是的,我刚发现,不过这个好在不需要什么 key 吧,开箱即用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2755 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 08:11 · PVG 16:11 · LAX 01:11 · JFK 04:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.