核心功能与架构设计
Pi-Local插件采用TypeScript编写,设计简洁但功能完备。其核心架构分为几个关键模块:
连接管理模块
插件提供了/local-login命令,用于管理本地LLM服务器的连接配置。用户可以通过交互式界面添加新的连接,每个连接包含基础URL和API密钥。插件支持多种认证方式:
- 直接密钥:明文API密钥,如
sk-1234567890abcdef
- 环境变量引用:通过
$MY_API_KEY或${MY_API_KEY}格式引用环境变量
- 命令执行:使用
!security find-generic-password等命令动态获取密钥
- 无认证模式:留空表示不需要认证
安全密钥存储
针对macOS用户,插件特别集成了系统钥匙串(Keychain)功能。当用户输入API密钥时,插件可以自动将其存储到macOS钥匙串中,而不是保存在明文配置文件里。这不仅提高了安全性,还使得密钥管理更加便捷。删除连接时,插件也会自动清理对应的钥匙串条目。
智能模型选择器
/local-model命令是插件的核心功能之一。它会自动检测连接的服务器类型(oMLX、LM Studio或OpenAI兼容接口),并获取可用模型列表。插件支持以下特性:
- 多服务器类型适配:通过API响应特征自动识别服务器类型
- 模型元数据展示:显示模型大小、上下文窗口、是否支持推理等关键信息
- 动态加载/卸载:对于oMLX和LM Studio服务器,支持在UI中直接加载或卸载模型
- 智能排序与格式化:模型按名称排序,显示信息经过对齐处理,便于阅读
自动恢复机制
插件在启动时会自动检查并恢复上次使用的本地模型连接。它会读取Pi的设置文件,查找默认的本地提供者和模型ID,如果配置有效且密钥可解析,则自动注册到Pi的提供者系统中。这意味着用户无需每次重启后重新配置。