logo
0
0
WeChat Login
victor<victorwtn@outlook.com>
add readme

BiliNote CLI

1. 模块概述

功能定位:提供命令行接口访问 BiliNote 视频笔记生成系统,支持终端环境下的视频内容 AI 笔记生成。

依赖关系

  • Python 3.11+
  • uv (包管理器)
  • Click (CLI框架)
  • httpx (HTTP客户端)
  • BiliNote Backend API

2. 快速使用指南

接口说明

  • bilinote generate url <video_url> → 生成视频笔记
  • bilinote provider add --name <name> --type <type> --api-key <key> → 添加AI提供商
  • bilinote model add --provider <id> --name <model> → 添加模型
  • bilinote task list → 查看任务状态
  • bilinote config show → 显示配置信息

调用示例

# 1. 初始化配置 bilinote config show # 2. 添加AI提供商 bilinote provider add \ --name "OpenAI GPT-4" \ --type openai \ --api-key "sk-your-key" \ --base-url "https://api.openai.com/v1" # 3. 添加模型 bilinote model add --provider <provider-id> --name "gpt-4-turbo" # 4. 生成笔记 bilinote generate url "https://www.bilibili.com/video/BV1xx411c7mu" # 5. 错误处理 bilinote -v generate url "invalid-url" # 详细错误信息

配置项

  • --config FILE: 配置文件路径 (默认: ~/.bilinote/config.json)
  • --backend-url TEXT: 后端服务URL
  • --verbose/-v: 详细输出模式 (默认: false)
  • --quiet/-q: 静默模式 (默认: false)
  • timeout: 请求超时时间 (默认: 30s)
  • retry_attempts: 重试次数 (默认: 3)

3. 核心机制与实现

特殊逻辑

  • 两步式AI提供商配置:先添加提供商,再添加模型到提供商
  • 任务异步处理:视频笔记生成采用异步任务模式,支持进度监控
  • 配置层级管理:支持全局配置和命令行参数覆盖

架构设计

CLI Commands → API Client → Backend Service ↓ ↓ ↓ Config Manager → HTTP Client → Task Queue ↓ ↓ ↓ File System ← Progress Monitor ← AI Providers

配置参数示例:

{ "temperature": 0.7, "max_tokens": 4000, "top_p": 0.9, "timeout": 30, "retry_attempts": 3 }

4. 开发指南

环境要求

# 1. 克隆仓库 cd bilinote-cli/bilinote-cli # 2. 安装依赖 uv sync # 3. 运行CLI uv run bilinote --help

测试说明

  • 集成测试覆盖所有命令结构
  • 任务监控系统测试(需API连接)
  • 配置管理功能测试

运行测试:

uv run pytest tests/

实现状态

  • ✅ CLI框架 (Click) - 完整的命令结构和参数处理
  • ✅ 配置管理系统 - 跨平台配置文件管理,支持验证和备份
  • ✅ HTTP客户端 (requests) - 完整的API客户端,包含错误处理、重试逻辑和连接池
  • ✅ 任务监控系统 - 实时进度显示、状态轮询和错误建议
  • ✅ 数据验证系统 - URL、参数、配置的全面验证
  • ✅ 跨平台支持 - Windows/Linux/macOS路径和配置处理
  • ✅ 输出格式化 - Rich库支持的表格、JSON、YAML输出
  • ✅ 集成测试套件 - 覆盖所有核心功能的测试
  • ✅ 提供商管理 - 完整的CRUD操作和连接测试
  • ✅ 模型管理 - 模型添加、列表和管理功能
  • ✅ 笔记生成 - 完整的视频笔记生成工作流
  • ✅ 文件操作 - 自动文件命名、保存和路径管理

5. 注意事项

限制条件

  • 需要Python 3.11+环境
  • 依赖后端API服务可用性
  • 视频URL需要是有效的B站链接
  • API密钥需要有效且有足够配额

常见问题

  1. 安装失败:确保已安装uv包管理器

    # 安装uv curl -LsSf https://astral.sh/uv/install.sh | sh
  2. API连接错误:检查后端服务URL和网络连接

    bilinote config show # 检查配置 bilinote -v provider test <id> # 测试提供商连接
  3. 任务失败:查看详细错误信息

    bilinote -v generate url "video-url" bilinote task list # 查看任务状态