Easy LLM CLI
扫码查看

让Gemini CLI兼容多种大语言模型的命令行AI智能体

Easy LLM CLI

综合介绍

Easy LLM CLI 是一个开源的命令行AI工作流工具,它可以被看作一个AI智能体。它是谷歌官方Gemini CLI项目的一个派生(fork)版本,其核心目标是解除原版仅支持Gemini模型的限制,实现对多种大语言模型(LLM)的广泛兼容。目前,它已支持包括Google Gemini、OpenAI、月之暗面(Kimi)、阿里通义千问(Qwen)、字节跳动豆包(Doubao)、以及通过OpenRouter、vLLM、Ollama等方式部署的本地和云端模型。用户不仅可以直接在命令行(终端)通过文字与AI进行交互,还能将其集成到自己的代码中,实现更复杂的自动化工作流。这个工具的核心功能是连接你的本地工具、理解你的代码库,并加速你的开发流程,让开发者可以在不改变工作习惯的前提下,自由选择和切换最适合当前任务的AI模型。

功能列表

  • 广泛的模型兼容: 支持接入Google Gemini、OpenAI、以及任何遵循OpenAI API格式的自定义大语言模型服务,覆盖了市面上主流的云端和本地部署模型。
  • 无缝的模型切换: 用户通过简单的环境变量配置,就可以轻松地在不同的大语言模型提供商之间切换,无需更改核心代码或工作流程。
  • 代码库深度交互: 能够利用大模型的长上下文窗口能力,对大型代码库进行查询、编辑和理解。
  • 多模态能力: 支持处理和理解图片等多模态输入,例如可以根据设计草图直接生成应用程序。
  • 工作流自动化: 可用于自动化重复性高的操作任务,比如查询Git提交记录、处理复杂的代码变基(rebase)、或者生成报告。
  • 灵活的工具扩展: 支持使用MCP(Model-level coprocessor)服务连接新的外部工具和功能,扩展AI的应用边界。
  • 程序化API: 提供了NPM包,允许开发者在Node.js代码中直接引入和使用ElcAgent,将AI能力无缝集成到自己的应用中。

支持模型

该项目对来自不同提供商的多种模型以及本地部署模型进行了多维度测试,包括它们是否具备思维链(COT)、能否完成简单任务、工具调用、MCP、复杂任务处理、多模态以及Token计算能力。以下是详细的测试结果:

模型 思维链 (COT) 简单任务 工具调用 MCP 复杂任务 多模态 Token计算
【Google】Gemini-1.5-pro
【OpenRouter】Claude 3 Sonnet
【OpenRouter】Gpt-4o
【OpenRouter】Grok-1.5
【Volcengine】Doubao-pro-32k
【Bailian】Qwen-max
【Moonshot】kimi-moonshot-v1-32k
【Volcengine】DeepSeek-V2
【Siliconflow】DeepSeek-V2
【Volcengine】Doubao-lite-32k ⚠️
【Bailian】Qwen-long ⚠️
【vLLM】Qwen1.5-7B-Instruct ⚠️
【vLLM】DeepSeek-Coder-V2-Instruct ⚠️
【Ollama】Qwen2:7b ⚠️

注:表示支持,表示不支持,⚠️表示能力有限或在某些情况下不稳定。

使用帮助

easy-llm-cli (elc) 是一个强大的命令行工具,让你可以在终端里直接和AI大模型进行对话和协作。下面是详细的安装和使用流程,帮助你快速上手。

安装

前提条件:在开始之前,请确保你的电脑上已经安装了 Node.js,并且版本号不低于20。

快速运行 (npx):如果你只是想临时试用一下,或者不想在全局安装,可以使用npx命令。在你的终端里输入以下命令:

npx easy-llm-cli

这个命令会临时下载easy-llm-cli并运行它。执行后,你就可以开始和AI对话了。

全局安装:如果你希望在任何路径下都能直接使用elc命令,可以选择全局安装。

npm install -g easy-llm-cli

安装完成后,你就可以在终端里直接输入elc来启动工具。

基本使用

启动easy-llm-cli非常简单,只需要在你的项目目录或任何你希望AI进行操作的文件夹里打开终端,然后输入:

elc

工具启动后,你就可以开始通过提问来让AI帮你完成任务了。

示例1:从零开始创建项目假设你有一个全新的空文件夹new-project/,你可以让AI帮你写一个Discord机器人。```bashcd new-project/elc

帮我写一个Discord机器人,它能根据我稍后提供的 FAQ.md 文件来回答问题。

**示例2:在现有项目中工作**
你也可以在已有的代码库中使用它,让它帮你理解和分析代码。
```bash
# 首先克隆一个代码库
git clone https://github.com/ConardLi/easy-llm-cli
cd easy-llm-cli
# 启动elc并提问
elc
> 帮我总结一下昨天所有的代码变更。

配置自定义大语言模型

这是easy-llm-cli一个非常核心的功能。默认情况下,它使用Gemini模型,但你可以通过设置环境变量来配置它使用任何兼容OpenAI API格式的模型。

在Linux或macOS系统下,你可以使用export命令设置环境变量:

  1. 启用自定义LLM:
    export USE_CUSTOM_LLM=true
    
  2. 设置LLM提供商名称 (可选,主要用于标识):
    export CUSTOM_LLM_PROVIDER="openai"
    
  3. 设置你的API Key:
    export CUSTOM_LLM_API_KEY="你的API密钥"
    
  4. 设置API的服务器地址 (Endpoint):
    export CUSTOM_LLM_ENDPOINT="https://api.your-llm-provider.com/v1"
    
  5. 设置模型名称:
    export CUSTOM_LLM_MODEL_NAME="你要使用的具体模型名称"
    
  6. 设置可选参数 (可以根据需要调整):
    # 控制生成文本的随机性,数值越高随机性越强 (默认为 0)
    export CUSTOM_LLM_TEMPERATURE=0.7 
    # 控制生成内容的最大长度 (默认为 8192)
    export CUSTOM_LLM_MAX_TOKENS=8192 
    # 控制生成内容的多样性 (默认为 1)
    export CUSTOM_LLM_TOP_P=1
    

设置好这些环境变量后,再次运行elc时,它就会使用你指定的自定义模型。

在代码中调用 (程序化API)

除了作为命令行工具,easy-llm-cli还发布了一个NPM包,让你可以在自己的JavaScript或TypeScript项目里直接调用它的能力。

首先,在你的项目中安装它:

npm install easy-llm-cli

然后,你可以在代码中这样使用ElcAgent

import { ElcAgent } from 'easy-llm-cli';
async function main() {
// 创建一个Agent实例,并进行配置
const agent = new ElcAgent({
model: 'custom-llm-model-name', // 指定模型名称
apiKey: 'custom-llm-api-key',     // 你的API Key
endpoint: 'custom-llm-endpoint',  // 你的API服务器地址
// 扩展配置,例如添加或排除工具
extension: {
mcpServers: {
chart: {
command: 'npx',
args: ['-y', '@antv/mcp-server-chart'],
trust: false
}
},
excludeTools: ['run_shell_command'] // 比如禁止AI执行shell命令
}
});
// 使用agent的run方法执行一个任务
const result = await agent.run('请为我生成一个关于销售数据的柱状图');
// 打印AI返回的结果
console.log(result);
}
main();

通过这种方式,你可以将AI的能力无缝集成到你的应用程序或自动化脚本中,实现更复杂的任务。

应用场景

  1. 探索和理解新代码库当接触一个陌生的项目时,可以利用elc快速了解其架构和核心功能。例如,进入项目目录后,可以提问:“描述一下这个系统的主要架构部分。”或“这里面实现了哪些安全机制?”。
  2. 辅助编码和重构在开发过程中,它可以帮助你完成具体的编码任务。例如,你可以让它:“为GitHub的第123号问题实现一个初步的解决方案。”或者“帮我把这个项目迁移到最新的Java版本,先给我一个计划。”。
  3. 自动化日常工作流结合MCP服务,elc可以集成你本地的工具,自动完成一些重复性工作。例如,你可以命令它:“制作一个PPT,展示过去7天的git提交历史,并按功能和团队成员进行分组。”。
  4. 与操作系统进行交互elc还可以执行文件操作和系统命令。例如:“把这个目录里所有的图片都转换成png格式,并使用照片的exif数据里的日期来重命名它们。”或者“按照支出月份来整理我的PDF发票。”。

QA

  1. 这个工具和谷歌的Gemini CLI有什么关系?easy-llm-cli 是 Gemini CLI 项目的一个派生(fork)版本。它继承了后者的核心功能,并在此基础上进行了关键扩展,最主要的就是增加了对Gemini之外的多种大语言模型的支持。
  2. 使用这个工具需要付费吗?easy-llm-cli 工具本身是开源免费的,但它需要连接到大语言模型服务才能工作。这些服务(如OpenAI的API或Google的Gemini API)通常是根据使用量来收费的,你需要自己承担相应模型API的费用。
  3. 它具体支持哪些类型的模型?它原生支持Google的Gemini系列模型、OpenAI的GPT系列模型。更重要的是,它支持任何提供与OpenAI API格式兼容的自定义大语言模型,这意味着无论是其他云厂商(如月之暗面、阿里、字节)提供的模型,还是通过vLLM、Ollama等框架在本地部署的开源模型,只要其API符合标准,都可以接入使用。
  4. 我可以在自己的代码里使用它的功能吗?可以。easy-llm-cli提供了一个NPM包,你可以通过引入ElcAgent类,在你的Node.js项目中以编程方式调用其AI能力,实现自动化任务,就像使用一个普通的JavaScript库一样。
微信微博Email复制链接