# copilot **Repository Path**: liliang_euler/copilot ## Basic Information - **Project Name**: copilot - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-12-27 - **Last Updated**: 2025-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Euler Copilot Euler Copilot 是一款由大模型驱动的AI智能操作系统助手。 ## 功能特性 - **多 LLM 提供商** - 支持 Zhipu、OpenAI、DeepSeek、Qwen、Ollama 和自定义提供商 - **智能问答** - 提出问题并获得准确答案 - **代码助手** - 编写、审查和解释代码 - **文件操作** - 直接读取、写入和编辑文件 - **命令执行** - 使用 AI 建议运行 shell 命令 - **会话记忆** - 支持历史导航的上下文感知多轮对话 - **Token 追踪** - 监控每个提供商的使用量和成本 - **自动补全** - 斜杠命令的 Tab 补全 - **会话录制** - 记录 LLM 输入/输出用于调试和分析 - **技能系统** - 可扩展的特定任务提示模板 ## 安装 ### 从 RPM 安装 ```bash rpm -ivh copilot-*.rpm ``` ### 从源码安装 ```bash cargo build --release sudo install target/release/copilot /usr/local/bin/copilot ``` ## 配置 ### 选择提供商 在 `~/.copilot/config.toml` 创建配置文件: ```toml # 选择提供商(默认:zhipu) provider = "zhipu" # API 密钥(可选,可使用环境变量) api_key = "your-api-key" # 覆盖提供商默认设置(可选) # api_url = "https://..." # model = "custom-model" # 日志级别 # log_level = "warn" # 记录 LLM 输入/输出到文件 record = true ``` ### 可用提供商 | 提供商 | 模型 | 输入 (元/M) | 输出 (元/M) | |--------|-------|-------------|--------------| | `zhipu` | glm-4 | 0.5 | 0.5 | | `zhipu-plus` | glm-4-plus | 1.0 | 1.0 | | `openai` | gpt-4 | 30.0 | 60.0 | | `openai-gpt4o` | gpt-4o | 5.0 | 15.0 | | `openai-gpt35` | gpt-3.5-turbo | 0.5 | 1.5 | | `deepseek` | deepseek-chat | 0.14 | 0.28 | | `deepseek-reasoner` | deepseek-reasoner | 0.55 | 2.19 | | `qwen` | qwen-turbo | 0.3 | 0.6 | | `ollama` | llama2 (本地) | 0 | 0 | ### 环境变量 ```bash # Zhipu(默认) export ZHIPU_API_KEY="your-key" # OpenAI export OPENAI_API_KEY="your-key" # DeepSeek export DEEPSEEK_API_KEY="your-key" # Qwen export DASHSCOPE_API_KEY="your-key" ``` ### 自定义提供商 ```toml [custom_providers.my-provider] api_url = "https://my-api.com/v1/chat/completions" model = "my-model" input_price = 0.1 output_price = 0.2 ``` ## 使用方法 ### 交互模式 ```bash copilot ``` 特性: - **Tab 补全** - 输入 `/` 并按 Tab 查看命令 - **方向键** - 浏览命令历史(上/下) - **持久化历史** - 保存在 `~/.copilot/history` ### 非交互模式 ```bash copilot -p "your prompt" ``` ### CLI 选项 | 选项 | 说明 | |--------|-------------| | `-V, --version` | 打印版本信息 | | `-v, --verbose` | 启用详细输出 | | `-c, --config ` | 设置配置文件路径 | | `--provider ` | 选择 LLM 提供商 | | `--api-url ` | 覆盖 API 端点 URL | | `--api-key ` | API 认证密钥 | | `--model ` | 覆盖模型名称 | | `--log-level ` | 日志级别 (trace, debug, info, warn, error, off) | | `--log-file ` | 日志文件路径 | | `--json-log` | 启用 JSON 日志格式 | | `-p, --print` | 非交互输出模式 | | `--record` | 记录 LLM 输入/输出到文件 | | `--demo` | 以演示模式运行(模拟 API 响应)| ### 交互命令 | 命令 | 说明 | |---------|-------------| | `/help` | 显示可用命令 | | `/version` | 显示版本信息 | | `/providers` | 列出所有 LLM 提供商 | | `/exit`, `/quit` | 退出会话 | | `/cost` | 显示 token 使用量和成本 | | `/clear` | 清除会话历史 | | `/history` | 显示会话历史 | | `/read ` | 读取文件内容 | | `/write ` | 写入内容到文件 | | `/edit ` | 使用 AI 辅助编辑文件 | | `/run ` | 执行 shell 命令 | ### 子命令 | 命令 | 说明 | |---------|-------------| | `mcp` | 管理 MCP(模型上下文协议)服务器 | | `plugin` | 管理插件 | | `setup-token` | 设置认证令牌 | | `doctor` | 运行诊断 | | `install` | 安装组件 | ## 示例 ### 交互会话 ```bash $ copilot _____ _ ____ _ _ _ | ____| _ _ | | ___ _ __ / ___| ___ _ __ (_) | | ___ | |_ | _| | | | | | | / _ \ | '__| | | / _ \ | '_ \ | | | | / _ \ | __| | |___ | |_| | | | | __/ | | | |___ | (_) | | |_) | | | | | | (_) | | |_ |_____| \__,_| |_| \___| |_| \____| \___/ | .__/ |_| |_| \___/ \__| |_| -- powered by openEuler Euler Copilot - 您的 AI 智能系统助手 输入 /help 查看可用命令 copilot> /providers 可用的 LLM 提供商: [zhipu] 名称: Zhipu GLM 模型: glm-4 输入: ¥0.5000/M tokens 输出: ¥0.5000/M tokens ... copilot> 如何读取文件? 您可以使用 /read 命令。例如:/read path/to/file.txt copilot> /exit 再见! ``` ### 命令自动补全 ```bash copilot> /he /help /history copilot> /help # 自动补全为 "/help "(带尾随空格) ``` ### 历史导航 ```bash copilot> # 上一个命令 copilot> # 下一个命令 ``` ### Shell 命令执行 当 LLM 返回包含 shell 命令的代码块时,系统会提示您执行: ```bash copilot> 列出当前目录的文件 Copilot: 您可以使用: ```bash ls -la ``` 检测到 shell 命令: --- ls -la --- 执行这些命令?[y/N]: y 正在执行:ls -la 输出: total 24 drwxr-xr-x 5 user staff 160 Dec 26 10:00 . ... ``` ### 使用技能 加载特定任务的技能模板: ```bash copilot> /read skills/code-review.md copilot> 请审查 src/main.rs ``` 可用技能: - `code-review.md` - Rust 代码审查 - `git-commit.md` - 生成约定式提交信息 - `rust-explain.md` - 解释 Rust 代码 ## 开发 ### 代码统计 ```bash make stats ``` ### 构建 RPM ```bash make rpm ``` ## 项目结构 ``` copilot/ ├── src/ │ ├── main.rs # 入口文件 │ ├── cli.rs # CLI 参数解析 │ ├── client.rs # LLM HTTP 客户端 │ ├── config.rs # 提供商配置 │ ├── commands.rs # 斜杠命令处理 │ ├── utils.rs # 辅助函数 │ ├── history.rs # 会话历史 │ ├── tracker.rs # Token 使用追踪 │ ├── files.rs # 文件操作 │ ├── types.rs # Serde 类型 │ └── readline.rs # 带补全的 Readline ├── skills/ # 提示技能模板 └── Makefile # 构建自动化 ``` ## 许可证 [Mulan PSL v2](LICENSE) --- [English](README_EN.md)