Skip to content

justinfjx/LLMMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLMMonitor

English

简介

LLMMonitor 是一个 macOS 菜单栏应用,用于监控兼容 OpenAI API 的大语言模型服务。它可以获取模型列表,手动或定时测试模型可用性,并记录延迟、输出 Token 数、输出速度和失败原因。

功能

  • 菜单栏常驻,点击图标打开监控面板。
  • 支持兼容 OpenAI 的接口,例如 /v1/models/v1/chat/completions
  • 获取远端模型列表,并选择需要监控的模型。
  • 支持手动测试和周期测试。
  • 展示本轮概览、历史趋势和测试记录。
  • 记录延迟、成功率、输出 Token、Token 每秒速度和错误信息。
  • 本地保存配置与历史记录。

系统要求

  • macOS 14.0 或更高版本。
  • Xcode 15 或更高版本。
  • Swift 5.9。
  • 可访问的 OpenAI 兼容 API 服务。

快速开始

  1. 打开项目:

    open LLMMonitor.xcodeproj
  2. 在 Xcode 中选择 LLMMonitor scheme,然后运行应用。

  3. 点击菜单栏中的 LLMMonitor 图标。

  4. 在侧边栏填写接口配置:

    • 端点地址:填写 API 基础地址,例如 https://api.openai.com/v1http://localhost:11434/v1
    • API 密钥:填写对应服务的密钥。如果本地服务不校验密钥,也可以填写占位字符串。
  5. 点击获取模型列表,选择要测试的模型。

  6. 执行手动测试,或设置间隔后启动周期测试。

命令行构建

可以使用现有 Xcode 项目直接构建:

xcodebuild -scheme LLMMonitor -configuration Release -derivedDataPath build/DerivedData build

如果修改了 project.yml,可使用 XcodeGen 重新生成 Xcode 项目:

xcodegen generate

注意:仓库已经包含 LLMMonitor.xcodeproj,日常开发不一定需要重新生成项目。

数据存储

应用会把配置和历史记录保存到当前用户的应用支持目录:

~/Library/Application Support/LLMMonitor/settings.json
~/Library/Application Support/LLMMonitor/history.json

历史记录最多保留 5000 条测试结果。

项目结构

LLMMonitor/
  APIService.swift          API 请求、模型列表获取和模型测试
  DataStore.swift           配置、历史记录、调度和应用状态
  ContentView.swift         主界面、概览、历史趋势和测试记录
  SidebarView.swift         端点配置、模型选择和测试控制
  StatusBarController.swift 菜单栏入口和弹出面板
  MainWindowManager.swift   独立主窗口管理
  Models.swift              配置、结果和 API 响应模型
  Assets.xcassets/          应用图标资源
scripts/
  generate_app_icon.swift   应用图标生成脚本
project.yml                 XcodeGen 项目配置
Package.swift               Swift Package 元数据

API 兼容性

LLMMonitor 期望接口符合 OpenAI 风格:

  • GET {endpoint}/models
  • POST {endpoint}/chat/completions

测试请求会发送一个非流式聊天补全请求,并根据响应中的 usage.completion_tokens 和请求耗时计算输出速度。

开发说明

  • 当前应用以菜单栏模式启动,不在 Dock 中常驻显示。
  • 周期测试按顺序测试模型,避免并发请求压垮同一个本地代理或后端服务。
  • 构建产物、临时目录和派生数据已经通过 .gitignore 排除。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages