Flutter命令行辅助插件cli_buddy的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter命令行辅助插件cli_buddy的使用

cli_buddy

style: very_good_analysis License: MIT

调用任何LLM从你的终端

  • 轻量级且快速
  • 支持超过100+ LLM(包括GPT、Claude、Cohere、LLama 3、Gemini、Mistral、DeekSeek等,还包括所有开源LLM)
  • 使用你自己的API密钥(OpenRouter
  • 使用Ollama支持本地LLM
  • 完全隐私 - 不收集任何分析数据
  • 在Linux、macOS和Windows上运行
  • 可以查看类似于许多AI聊天应用的图形用户界面

Demo

Demo

功能

  1. 代码生成:请求代码并直接生成或覆盖文件。

    • 还有选项可以复制到剪贴板、请求解释或与上下文聊天。
  2. shell命令执行:请求shell命令并直接在终端执行。

    • 还有选项可以复制到剪贴板或请求解释。
  3. 连续聊天:在终端中连续与AI聊天。

  4. 会话管理:将聊天历史保存为JSON格式,并在启动新会话时加载。默认情况下禁用保存聊天历史。

  5. OpenRouter APIs:尽管这是一个CLI工具,但此包也可以用于任何Dart/Flutter项目来使用OpenRouter APIs。此包暴露了OpenRouter APIs和模型。只需声明final openRouter = OpenRouterService();并在项目中使用它。例如final result = await openRouter.invoke(session: ChatSession());

  6. GUI:想要查看GUI吗?只需运行buddy open即可打开GUI。

开始使用 🚀

安装

  1. 作为包安装

    • 直接运行:
    dart pub global activate cli_buddy
    
  2. 安装Dart SDK

    • 按照官方文档安装Dart SDK。
    • 通过运行dart --version检查是否已安装Dart SDK。
    • 运行dart pub global activate cli_buddy
  3. 使用二进制文件

    • 下载你操作系统对应的二进制文件(目前我只在MacOS上测试过,但理论上应该可以在所有操作系统上工作)。
    • 如果你的系统是Unix(MacOS、Linux),运行sudo chmod +x <path/to/binary>
    • 测试是否运行:./<path/to/binary> --help
    • 根据你的系统设置别名(例如alias buddy='./<path/to/binary>')。

OpenRouter获取API密钥

OpenRouter 提供统一的LLM APIs,成本几乎与原始LLM API提供商相同。

  • 注意:OpenRouter提供一些免费的AI模型,带有某些限制。你可以免费试用这些模型而无需支付。
  • 注意:我不是OpenRouter的关联人员,我没有从他们那里获得任何形式的好处。

添加API密钥

buddy set --or-api-key <your_openrouter_key>

示例 buddy.config

{
  "api_provider": "openrouter",
  "localEndpoint": "localhost:43210",
  "save_session": true,
  "save_online": false,
  "local_web": true,
  "max_messages": 20,
  "openrouter_default_model": "openai/gpt-4o",
  "ollama_default_model": null,
  "ollamaEndpoint": "localhost:11434",
  "openrouter_key": null,
  "temperature": 0.3,
  "max_tokens": null,
  "top_p": null,
  "top_k": null,
  "frequency_penalty": null,
  "presence_penalty": null,
  "repetition_penalty": null,
  "min_p": null,
  "top_a": null,
  "seed": null,
  "logit_bias": null,
  "logprobs": false,
  "top_logprobs": null,
  "response_format": null,
  "stop": null,
  "cmd_prompt": "If there is a lack of details, provide most logical solution.\nEnsure the output is a valid shell command.\nIf multiple steps required try to combine them together in one command.\nProvide only plain text without Markdown formatting.\nDo not provide markdown formatting such as ```",
  "explain_prompt": "Provide short and concise explanation of your previous response about command or code.\nProvide only plain text without Markdown formatting.\nDo not provide markdown formatting such as ```",
  "code_prompt": "Provide only code as output without any description.\nProvide only code in plain text format without Markdown formatting.\nDo not include symbols such as ``` or ```python.\nIf there is a lack of details, provide most logical solution.\nYou are not allowed to ask for more details.\nFor example if the prompt is \"Hello world Python\", you should return \"print('Hello world')\".\n",
  "chat_prompt": "You are a Flutter/Dart developer. Don't be verbose in your response but focus on solving problem or coding. As for state management, use hooks_flutter and riverpod_hook packages.",
  "validate_prompt": "Your job is to verify if the provided code by the previous AI assistant is valid.\nProvide concise response unless asked for more details."
}

基本用法

# 执行shell命令
$ buddy shell how can I update homebrew

# 如果要使用特殊字符,使用引号
$ buddy shell "how can I update homebrew?"

# 生成代码
$ buddy code "Generate a random number between 1 and 10 in Dart"

# 聊天
$ buddy chat "Tell me about the SSH protocol"

# 显示图形用户界面
$ buddy open

# 显示CLI版本
$ buddy --version

# 显示帮助信息
$ buddy --help

Info命令

info 命令允许你在OpenRouter中搜索AI模型。以下是一些可用的选项和标志:

  • -q, --query:按名称、提供者或模型类型(如文本、图像)搜索AI模型。
  • -o, --order:指定结果应按哪种顺序显示。允许值:namecontextpromptcompletionimage
  • -f, --config:显示当前配置文件。如果不存在,则创建一个新文件。
  • -c, --credits:显示OpenRouter中的信用额度。
  • -l, --list:列出OpenRouter中所有可用的AI模型。
  • -p, --parameters:查询特定AI模型的参数。
  • -s, --sessions:(-s list)列出默认会话文件夹中的保存聊天历史记录,或者(-s <session_id>)查看特定的聊天历史记录。

示例用法

# 按名称搜索AI模型
$ buddy info -q "claude"

# 按提供者搜索AI模型
$ buddy info -q "openai"

# 列出所有可用的AI模型
$ buddy info -l

# 显示当前配置
$ buddy info -f

# 显示OpenRouter账户中的信用额度
$ buddy info -c

# 查询特定AI模型的参数
$ buddy info -p "model_id"

# 列出保存的聊天历史记录
$ buddy info -s list

# 查看特定聊天历史记录(通过会话ID)
$ buddy info -s "session_id"

更多关于Flutter命令行辅助插件cli_buddy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter命令行辅助插件cli_buddy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用cli_buddy命令行辅助插件的示例代码和步骤。cli_buddy 是一个假想的 Flutter 命令行工具插件,用于简化常见的开发任务。由于这是一个假设的插件,具体的命令和功能可能会有所不同,但我会根据常见的插件使用模式提供一个示例。

安装 cli_buddy

首先,你需要通过 Dart 的包管理工具 pub 来安装 cli_buddy。在你的 Flutter 项目根目录下运行以下命令:

dart pub add cli_buddy

配置 pubspec.yaml

确保 pubspec.yaml 文件中包含了 cli_buddy 的依赖项:

dependencies:
  flutter:
    sdk: flutter
  cli_buddy: ^1.0.0  # 假设的版本号

使用 cli_buddy 命令行工具

假设 cli_buddy 提供了一些有用的命令行工具,比如生成代码模板、管理 Flutter 环境等。以下是如何在命令行中使用这些工具的示例。

1. 生成代码模板

假设 cli_buddy 提供了一个 generate-template 命令来生成常用的 Flutter 组件模板。

flutter pub run cli_buddy generate-template --type=button

这个命令会在你的项目中生成一个按钮组件的模板文件。

2. 管理 Flutter 环境

假设 cli_buddy 还提供了一些用于管理 Flutter 环境的命令,比如列出所有安装的 Flutter SDK 版本。

flutter pub run cli_buddy list-flutter-versions

这个命令会列出当前系统上安装的所有 Flutter SDK 版本。

示例代码:在 Dart 脚本中调用 cli_buddy

虽然 cli_buddy 是一个命令行工具,但你也可以在 Dart 脚本中通过 Process 类来调用它的命令。以下是一个 Dart 脚本示例,展示了如何在 Dart 代码中调用 cli_buddy 命令。

import 'dart:io';

void main() async {
  // 生成按钮组件模板
  await runCliBuddyCommand('generate-template', ['--type=button']);

  // 列出所有 Flutter SDK 版本
  await runCliBuddyCommand('list-flutter-versions', []);
}

Future<void> runCliBuddyCommand(String command, List<String> arguments) async {
  ProcessResult result = await Process.run('flutter', ['pub', 'run', 'cli_buddy', command, ...arguments]);
  
  // 打印命令的输出
  print(result.stdout);
  
  // 如果有错误,打印错误信息
  if (result.exitCode != 0) {
    print(result.stderr);
  }
}

注意事项

  1. 插件功能:由于 cli_buddy 是一个假想的插件,上述命令和功能是虚构的。你需要根据你实际使用的插件文档来调整命令和参数。

  2. 权限问题:在 Dart 脚本中调用命令行工具时,请确保你的脚本有执行这些命令的权限。

  3. 依赖管理:确保你的 Flutter 项目正确配置了所有依赖项,并且 cli_buddy 插件已经正确安装。

  4. 文档参考:总是参考 cli_buddy 插件的官方文档来获取最准确和最新的使用指南。

希望这个示例能帮助你理解如何在 Flutter 项目中使用命令行辅助插件 cli_buddy。如果你有任何其他问题或需要进一步的帮助,请随时提问。

回到顶部