Zsh终端接入AI:Zsh Codex

1,069 阅读2分钟

Zsh终端接入AI:Zsh Codex

前言

Zsh Codex 是一个革命性的 ZSH 插件,它将人工智能的力量引入了命令行界面。

这个插件能够让你在使用 MacOS 的原生终端时,通过 AI 驱动的代码补全功能,节省大量记忆命令的时间,提高编码效率。

github地址:github.com/tom-doerr/z…

本文我们来讨论这个插件的安装、使用、报错解决、接入deepseek等问题。

安装

要在 MacOS 的原生终端中安装 Zsh Codex,请按照以下步骤操作:

1、安装 OpenAI 包

pip3 install openai

2、 下载 ZSH 插件

git clone https://github.com/tom-doerr/zsh_codex.git ~/.oh-my-zsh/custom/plugins/zsh_codex

3、.zshrc 文件中添加配置

plugins=(zsh_codex)
bindkey '^X' create_completion

如果有多个插件,那么中间逗号隔开即可。

plugins=(git,zsh_codex)
bindkey '^X' create_completion

4、 创建 API 配置文件

在 ~/.config 目录下创建一个名为 zsh_codex.ini 的文件,内容如下:

[service]
service = deepseek

[deepseek]
api_type = openai
api_key = dummy_key
model = deepseek-chat
base_url = https://api.deepseek.com/beta

[openai_service]
api_type = openai
api_key = <openai_apikey>

[my_ollama]
api_type = openai
api_key = dummy_key
model = llama3.1
base_url = http://localhost:11434/v1

以上的示例中有deepseek、OpenAI、ollama三种服务,我比较常用的就是这三个。

5、设置要使用的 AI 模型

编辑 ~/.oh-my-zsh/custom/plugins/zsh_codex/zsh_codex.plugin.zsh 文件。

api 变量设置为 openai

6、 运行 zsh,开始使用

解决不支持 match

由于我本地的Python版本是3.9.10,而 match 是在 Python 3.10 引入的特性。

因此运行时会报错:不支持match。

但是我又不想直接升级Python,所以只能通过修改代码的方式解决。

修改文件 /Users/mac/.oh-my-zsh/custom/plugins/zsh_codex/services/services.py,255行之后全部替换

        if api_type == OpenAIClient.api_type:
            return OpenAIClient(config)
        elif api_type == GoogleGenAIClient.api_type:
            return GoogleGenAIClient(config)
        elif api_type == GroqClient.api_type:
            return GroqClient(config)
        elif api_type == MistralClient.api_type:
            return MistralClient(config)
        elif api_type == AmazonBedrock.api_type:
            return AmazonBedrock(config)
        else:
            raise KeyError(
                f"Specified API type {api_type} is not one of the supported services {cls.api_types}"
            )

即可。

使用

使用 Zsh Codex 非常简单:

  1. 在命令行中输入注释或变量名
  2. 按下 ^X(Ctrl+X)
  3. AI 会自动生成相应的代码

总结

Zsh Codex 为命令行带来了 AI 的力量,让编码变得更加高效和智能。

无论你是经验丰富的开发者还是编程新手,Zsh Codex 都能为你的工作流程带来显著改善。

虽然它并没有达到我想要的那种交互,即可以聊天式的生成我的命令,但是能够以注释的方式进行使用也算不错。

这个插件的代码是非常清晰的,并且也是MIT协议,可以尝试自己修改插件代码,来达到目的。

– 欢迎点赞、关注、转发、收藏【我码玄黄】,各大平台同名。