diff --git a/README.md b/README.md index 6f51209350d4792e6ef14187550b6b603d7fb5cf..b98ac303754496e3303d4178ab4c525e0d2965f1 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,12 @@ -# OE-CLI 命令行助手 +# Witty Assistant -OE-CLI 是 openEuler Intelligence 的命令行客户端,提供 AI 驱动的命令行交互体验。支持多种 LLM 后端,集成 MCP 协议,提供现代化的 TUI 界面。 +Witty Assistant 是 openEuler AI 助手的命令行客户端,提供 AI 驱动的命令行交互体验。支持多种 LLM 后端,集成 MCP 协议,提供现代化的 TUI 界面。 ## 核心特性 -- **多后端支持**: 支持 OpenAI API 大模型和 openEuler Intelligence 后端 - **智能终端界面**: 基于 Textual 的现代化 TUI 界面 - **流式响应**: 实时显示 AI 回复内容 -- **部署助手**: 内置 openEuler Intelligence 自动部署功能 +- **部署助手**: 内置 Witty Assistant 后端服务(sysAgent)自动部署功能 - **一键认证**: 提供浏览器登录流程,自动获得并保存 API Key ## 安装说明 @@ -23,18 +22,18 @@ OE-CLI 是 openEuler Intelligence 的命令行客户端,提供 AI 驱动的命 2. 安装依赖(建议使用 Python 虚拟环境): - ```sh - uv venv --python 3.11 .venv - source .venv/bin/activate - uv pip install -e '.[dev]' - ``` + ```sh + uv venv --python 3.11 .venv + source .venv/bin/activate + uv pip install -e '.[dev]' + ``` ### 方式二:通过 RPM 包安装 注意:*仅适用于 openEuler 24.03 LTS SP2* ```sh -sudo dnf install openeuler-intelligence-cli +sudo dnf install witty-assistant ``` 安装完成后,可以使用 `oi` 命令启动应用程序。 @@ -50,31 +49,31 @@ oi 查看最新的日志内容: ```sh -oi --logs +witty --logs ``` 设置日志级别并验证: ```sh -oi --log-level INFO +witty --log-level INFO ``` -初始化 openEuler Intelligence 后端(仅支持 openEuler 操作系统): +初始化 sysAgent(仅支持 openEuler 操作系统): ```sh -oi --init +witty --init ``` -选择和设置默认智能体(仅适用于 openEuler Intelligence 后端): +选择和设置默认智能体(仅适用于 sysAgent): ```sh -oi --agent +witty --agent ``` -通过浏览器登录并自动保存 API Key(需要已配置的 openEuler Intelligence 后端): +通过浏览器登录并自动保存 API Key(需要已配置的 sysAgent): ```sh -oi --login +witty --login ``` 运行前请确保运行环境具备图形界面并能启动默认浏览器;在无图形界面的场景下可使用 X11 转发或直接在目标服务器上执行该命令。 @@ -100,11 +99,11 @@ oi --login ### `--init` 命令说明 -`--init` 命令用于在 openEuler 操作系统上自动安装和配置 openEuler Intelligence 后端,它将执行以下步骤: +`--init` 命令用于在 openEuler 操作系统上自动安装和配置 sysAgent,它将执行以下步骤: 1. **系统检测**: 检测当前操作系统是否为 openEuler 2. **环境检查**: 验证 dnf 包管理器和管理员权限 -3. **包安装**: 通过 dnf 安装 `openeuler-intelligence-installer` RPM 包 +3. **包安装**: 通过 dnf 安装 `witty-assistant-installer` RPM 包 4. **服务部署**: 运行部署脚本完成系统初始化 **使用要求**: @@ -116,8 +115,8 @@ oi --login **注意**: 1. 此命令会自动安装系统服务,请在生产环境使用前仔细评估; -2. 如果需要重启或卸载 openEuler Intelligence 后端,请以管理员身份运行 `oi-manager` 并根据指引操作; -3. `oi-manager` 的卸载功能会清空机器上 MongoDB 和 PostgreSQL 的全部数据并重置 nginx 服务,请谨慎操作。 +2. 如果需要重启或卸载 sysAgent,请以管理员身份运行 `witty-manager` 并根据指引操作; +3. `witty-manager` 的卸载功能会清空机器上 MongoDB 和 PostgreSQL 的全部数据并重置 nginx 服务,请谨慎操作。 ### `--agent` 命令说明 @@ -125,14 +124,14 @@ oi --login 1. **智能体列表**: 自动获取并显示所有可用的智能体 2. **可视化选择**: 通过图形化界面选择要设置为默认的智能体 -3. **配置保存**: 自动将选择保存到配置文件中的 `eulerintelli.default_app` 字段 +3. **配置保存**: 自动将选择保存到配置文件中的 `witty.default_app` 字段 4. **即时反馈**: 设置完成后显示确认信息 **使用要求**: -- 必须配置为 openEuler Intelligence 后端 +- 必须配置为 sysAgent - 需要有效的服务器连接来获取智能体列表 -- 如果后端不是 openEuler Intelligence,会显示错误提示并引导切换 +- 如果后端不是 sysAgent,会显示错误提示并引导切换 **功能特点**: @@ -142,17 +141,17 @@ oi --login ### `--llm-config` 命令说明 -`--llm-config` 命令用于配置已部署的 openEuler Intelligence 后端的 LLM 和 Embedding 模型参数,它提供了一个简洁的 TUI 界面来管理系统级配置: +`--llm-config` 命令用于配置已部署的 sysAgent 的 LLM 和 Embedding 模型参数,它提供了一个简洁的 TUI 界面来管理系统级配置: -1. **系统配置管理**: 直接修改系统配置文件 `/etc/euler-copilot-framework/config.toml` 和 `/etc/euler-copilot-rag/data_chain/env` +1. **系统配置管理**: 直接修改系统配置文件 `/etc/sysagent/config.toml` 和 `/etc/euler-copilot-rag/data_chain/env` 2. **LLM 配置**: 设置大语言模型的端点、API 密钥、模型名称、最大输出令牌数和温度参数 3. **Embedding 配置**: 配置嵌入模型的端点、API 密钥和模型名称 4. **实时验证**: 自动验证 API 连接性和配置有效性 -5. **服务重启**: 配置保存后自动重启相关系统服务(`oi-runtime` 和 `oi-rag`) +5. **服务重启**: 配置保存后自动重启相关系统服务(`sysagent`) **使用要求**: -- 仅适用于已部署的 openEuler Intelligence +- 仅适用于已部署的 sysAgent - 需要管理员权限(sudo)运行 - 需要系统配置文件存在且有写入权限 - 需要网络连接以验证 API 配置 @@ -184,27 +183,10 @@ oi --login **注意**: 1. 此命令直接修改系统配置文件,请在生产环境使用前仔细评估; -2. 配置保存后会自动重启 `oi-runtime` 和 `oi-rag` 服务,可能会影响正在运行的服务; +2. 配置保存后会自动重启 `sysagent` 服务,可能会影响正在运行的服务; 3. 如果系统配置文件不存在或权限不足,工具会显示相应错误信息并退出; 4. 建议在修改配置前备份原有的配置文件。 -### `--login` 命令说明 - -`--login` 命令用于通过默认浏览器获取 openEuler Intelligence 的 API Key,并自动写入到本地配置: - -1. **获取授权地址**: 从已配置的 openEuler Intelligence 后端读取登录跳转链接; -2. **本地回调服务**: 在本地启动一个临时回调服务器,处理浏览器回传的数据; -3. **打开浏览器**: 自动打开登录页面,用户按提示完成账号登录; -4. **保存凭证**: 登录成功后自动将返回的访问令牌写入配置文件。 - -**使用要求**: - -- 已通过 `--init` 或手动方式配置 openEuler Intelligence URL; -- 运行环境具备可用浏览器(无头服务器需使用图形转发或在本地执行); -- 登录过程需要网络访问 openEuler Intelligence 后端。 - -遇到错误时,命令会输出详细的提示信息帮助排查,例如未检测到浏览器或 URL 未配置等情况。 - ## 国际化支持 应用程序内置多语言支持,提供英文和中文界面。 @@ -218,10 +200,10 @@ oi --login ```sh # 切换到中文 -oi --locale zh_CN +witty --locale zh_CN # 切换到英文 -oi --locale en_US +witty --locale en_US ``` 语言设置会自动保存,下次启动时生效。 @@ -238,12 +220,12 @@ oi --locale en_US ## 配置说明 -应用程序支持两种后端配置,配置文件会自动保存在 `~/.config/eulerintelli/smart-shell.json`: +应用程序支持两种后端配置,配置文件会自动保存在 `~/.config/witty/config.json`: ### 后端类型 1. **OpenAI 兼容 API** (包括 LM Studio、vLLM、Ollama 等) -2. **openEuler Intelligence** +2. **sysAgent** ### 配置示例 @@ -255,14 +237,14 @@ oi --locale en_US - Model: 如 `qwen/qwen3-30b-a3b` - API Key: 如 `sk-xxxxxx` -**openEuler Intelligence 配置:** +**sysAgent 配置:** - Base URL: 如 `http://your-server:8002` - API Key: 您的认证令牌 ### 智能体管理 -对于 openEuler Intelligence 后端,应用程序支持多智能体切换: +对于 sysAgent,应用程序支持多智能体切换: 1. **默认智能问答**: 通用 AI 助手 2. **专业智能体**: 针对特定领域的专门助手 @@ -279,14 +261,14 @@ oi --locale en_US ##### 方式一:命令行(修改默认配置) ```sh -oi --agent +witty --agent ``` 通过图形化界面选择默认智能体,选择会自动保存到配置文件。 ##### 方式二:手动修改配置文件(不推荐) -直接编辑配置文件 `~/.config/eulerintelli/smart-shell.json`,修改 `eulerintelli.default_app` 字段的值: +直接编辑配置文件 `~/.config/witty/config.json`,修改 `witty.default_app` 字段的值: - 设置为空字符串 `""` 或删除该字段:使用"智能问答"(没有调用工具的能力) - 设置为有效的智能体ID:使用指定的智能体作为默认 @@ -294,7 +276,7 @@ oi --agent ##### 配置详情 -- **配置位置**: `~/.config/eulerintelli/smart-shell.json` 中的 `eulerintelli.default_app` 字段 +- **配置位置**: `~/.config/witty/config.json` 中的 `witty.default_app` 字段 - **默认行为**: 如果未设置或为空,将默认使用"智能问答"(通用助手) - **自动应用**: 应用启动时会自动加载配置的默认智能体 - **自动清理**: 如果配置的智能体ID不存在(如服务器数据更改),会自动清理配置并回退到"智能问答" @@ -303,8 +285,8 @@ oi --agent ```json { - "backend": "eulerintelli", - "eulerintelli": { + "backend": "witty", + "witty": { "base_url": "http://your-server:8002", "api_key": "your-api-key", "default_app": "your-preferred-agent-id" @@ -325,8 +307,8 @@ oi --agent 应用程序提供完整的日志记录功能: -- **日志位置**: `~/.cache/openEuler Intelligence/logs/` -- **日志格式**: `smart-shell-YYYYMMDD-HHMMSS.log`(使用本地时区时间) +- **日志位置**: `~/.cache/witty/logs/` +- **日志格式**: `witty-assistant-YYYYMMDD-HHMMSS.log`(使用本地时区时间) - **自动清理**: 每次启动时自动删除7天前的旧日志和空日志文件 - **命令行查看**: 使用 `python src/main.py --logs` 查看最新日志内容 - **记录内容**: @@ -401,7 +383,7 @@ oi --agent ## 项目结构 ```text -smart-shell/ +witty-assistant/ ├── README.md # 项目说明文档 ├── pyproject.toml # 项目配置与依赖(由 uv 管理) ├── requirements.txt # pip 兼容依赖列表(使用 uv export 生成) @@ -438,8 +420,8 @@ smart-shell/ │ ├── factory.py # 后端工厂类 │ ├── mcp_handler.py # MCP 事件处理接口 │ ├── openai.py # OpenAI 兼容客户端 - │ └── hermes/ # openEuler Intelligence 客户端 - │ ├── client.py # Hermes API 客户端 + │ └── hermes/ # sysAgent 客户端 + │ ├── client.py # sysAgent API 客户端 │ ├── constants.py # 常量定义 │ ├── exceptions.py # 异常类定义 │ ├── mcp_helpers.py # MCP 事件辅助工具 diff --git a/euler-copilot-shell-2.0.0.tar.gz b/euler-copilot-shell-2.0.0.tar.gz index 7be8dd1c62ccac0d1ddbb1d3fc95a4b9b3a3c743..1ee9c144f088c2ee99c5c0788fd2d14b62bfb7d8 100644 Binary files a/euler-copilot-shell-2.0.0.tar.gz and b/euler-copilot-shell-2.0.0.tar.gz differ diff --git a/euler-copilot-shell.spec b/euler-copilot-shell.spec index df6de70d66fdfca887ede38a8b0eb6167bea118d..1afd71771b26fd0625fc018bbca40e2609117fc3 100644 --- a/euler-copilot-shell.spec +++ b/euler-copilot-shell.spec @@ -1,11 +1,11 @@ -%global pypi_name oi-cli -%global shortcut_name oi +%global pypi_name witty-assistant +%global shortcut_name witty %global debug_package %{nil} Name: euler-copilot-shell Version: 2.0.0 -Release: 1%{?dist} -Summary: openEuler Intelligence 智能命令行工具集 +Release: 2%{?dist} +Summary: Witty Assistant 智能命令行工具集 License: MulanPSL-2.0 URL: https://gitee.com/openeuler/euler-copilot-shell Source0: %{name}-%{version}.tar.gz @@ -16,30 +16,38 @@ BuildRequires: python3-devel python3-virtualenv python3-pip BuildRequires: gettext %description -openEuler Intelligence 智能命令行工具集,包含智能 Shell 命令行程序和部署安装工具。 +Witty Assistant 智能命令行工具集,包含 Witty Assistant 命令行程序和部署安装工具。 -# 智能命令行工具子包 -%package -n openeuler-intelligence-cli -Summary: openEuler Intelligence 智能 Shell 命令行工具 +# 智能命令行助手子包 +%package -n witty-assistant +Summary: Witty Assistant 命令行助手 Requires: glibc + # 替换原来的 euler-copilot-shell 包 Obsoletes: euler-copilot-shell < %{version}-%{release} Provides: euler-copilot-shell = %{version}-%{release} +# 替换原来的 openeuler-intelligence-cli 包 +Obsoletes: openeuler-intelligence-cli < %{version}-%{release} +Provides: openeuler-intelligence-cli = %{version}-%{release} -%description -n openeuler-intelligence-cli -openEuler Intelligence 智能 Shell 是一个智能命令行程序。 +%description -n witty-assistant +Witty Assistant 是一个智能命令行程序。 它允许用户输入命令,通过集成大语言模型提供命令建议,帮助用户更高效地使用命令行。 # 部署安装工具子包 -%package -n openeuler-intelligence-installer -Summary: openEuler Intelligence 部署安装脚本 +%package -n witty-assistant-installer +Summary: Witty Assistant 部署安装脚本 Requires: wget Requires: python3-aiohttp Requires: python3-requests BuildArch: noarch -%description -n openeuler-intelligence-installer -openEuler Intelligence 部署安装工具包,包含部署脚本和相关资源文件。 +# 替换原来的 openeuler-intelligence-installer 包 +Obsoletes: openeuler-intelligence-installer < %{version}-%{release} +Provides: openeuler-intelligence-installer = %{version}-%{release} + +%description -n witty-assistant-installer +Witty Assistant 部署安装工具包,包含部署脚本和相关资源文件。 %prep %autosetup -n %{name}-%{version} @@ -68,7 +76,7 @@ uv pip install --index-url https://mirrors.huaweicloud.com/repository/pypi/simpl # 使用虚拟环境中的 PyInstaller 创建单一可执行文件 pyinstaller --noconfirm \ --distpath dist \ - oi-cli.spec + witty-assistant.spec # 退出虚拟环境 deactivate @@ -82,62 +90,65 @@ install -m 0755 dist/%{pypi_name} %{buildroot}%{_bindir}/%{pypi_name} ln -sf %{pypi_name} %{buildroot}%{_bindir}/%{shortcut_name} # 安装部署脚本和资源 -mkdir -p %{buildroot}/usr/lib/openeuler-intelligence/{scripts,resources} +mkdir -p %{buildroot}/usr/lib/witty-assistant/{scripts,resources} mkdir -p %{buildroot}%{_bindir} # 复制部署脚本和资源 -install -m 755 scripts/deploy/deploy.sh %{buildroot}/usr/lib/openeuler-intelligence/scripts/deploy -cp -r scripts/deploy/0-one-click-deploy scripts/deploy/1-check-env scripts/deploy/2-install-dependency scripts/deploy/3-install-server scripts/deploy/4-other-script scripts/deploy/5-resource %{buildroot}/usr/lib/openeuler-intelligence/scripts/ -chmod -R +x %{buildroot}/usr/lib/openeuler-intelligence/scripts/ +install -m 755 scripts/deploy/deploy.sh %{buildroot}/usr/lib/witty-assistant/scripts/deploy +cp -r scripts/deploy/0-one-click-deploy scripts/deploy/1-check-env scripts/deploy/2-install-dependency scripts/deploy/3-install-server scripts/deploy/4-other-script scripts/deploy/5-resource %{buildroot}/usr/lib/witty-assistant/scripts/ +chmod -R +x %{buildroot}/usr/lib/witty-assistant/scripts/ # 创建可执行文件的符号链接 -ln -sf /usr/lib/openeuler-intelligence/scripts/deploy %{buildroot}%{_bindir}/oi-manager +ln -sf /usr/lib/witty-assistant/scripts/deploy %{buildroot}%{_bindir}/witty-manager -%files -n openeuler-intelligence-cli +%files -n witty-assistant %license LICENSE %doc README.md %{_bindir}/%{pypi_name} %{_bindir}/%{shortcut_name} -%files -n openeuler-intelligence-installer +%files -n witty-assistant-installer %license LICENSE %doc scripts/deploy/安装部署手册.md -/usr/lib/openeuler-intelligence -%{_bindir}/oi-manager +/usr/lib/witty-assistant +%{_bindir}/witty-manager -%postun -n openeuler-intelligence-cli +%postun -n witty-assistant if [ $1 -eq 0 ]; then # 卸载时清理用户缓存和配置文件 for home in /root /home/*; do - cache_dir="$home/.cache/openEuler Intelligence/logs" + cache_dir="$home/.cache/witty/logs" if [ -d "$cache_dir" ]; then rm -rf "$cache_dir" fi - config_dir="$home/.config/eulerintelli" + config_dir="$home/.config/witty" if [ -d "$config_dir" ]; then rm -rf "$config_dir" fi done -rm -f /etc/openEuler-Intelligence/smart-shell-template.json +rm -f /etc/witty-assistant/config-template.json elif [ $1 -ge 1 ]; then # 升级时清理日志 for home in /root /home/*; do - cache_dir="$home/.cache/openEuler Intelligence/logs" + cache_dir="$home/.cache/witty/logs" if [ -d "$cache_dir" ]; then rm -rf "$cache_dir" fi done fi -%postun -n openeuler-intelligence-installer +%postun -n witty-assistant-installer if [ $1 -eq 0 ]; then # 卸载时清理安装器相关文件 rm -f /etc/euler_Intelligence_install* -rm -f /usr/lib/openeuler-intelligence/scripts/5-resource/config.* -rm -f /usr/lib/openeuler-intelligence/scripts/5-resource/env.* +rm -f /usr/lib/witty-assistant/scripts fi %changelog +* Fri Dec 12 2025 openEuler - 2.0.0-2 +- chore: Update project name to "Witty Assistant" +- chore: Update program short name to "witty" + * Mon Dec 08 2025 openEuler - 2.0.0-1 - Major update to version 2.0.0 @@ -156,7 +167,7 @@ fi - Feature: Add login through browser (requires proper desktop environment) * Wed Oct 29 2025 openEuler - 0.10.2-3 -- Fix issue where failing to fetch mcp when creating agent with oi-manager +- Fix issue where failing to fetch mcp when creating agent with witty-manager * Sat Oct 25 2025 openEuler - 0.10.2-2 - Add internationalization support (currently supports English and Simplified Chinese) @@ -181,7 +192,7 @@ fi * Wed Sep 10 2025 openEuler - 0.10.1-1 - 支持切换 MCP 自动执行模式 -- 简化安装器命令为 oi-manager +- 简化安装器命令为 witty-manager * Tue Sep 09 2025 openEuler - 0.10.0-4 - 优化安装脚本:添加内核版本检查和架构支持,优化 MongoDB 和 MinIO 安装逻辑