PinMe Worker OpenRouter API 集成
在 PinMe Worker 中快速调用 OpenRouter 支持的 LLM API,支持流式与网页搜索。
证据显示:技能文档明确要求Worker仅使用项目API密钥,不持有真实OpenRouter密钥,并说明了数据流(X-API-Key、传递OpenRouter响应)。依赖项均为常见npm包(axios等),CI有依赖审计。未见恶意行为或过度权限。扣分原因:身份未验证,供应商未知;权限最小化仅部分(未明确限制Worker仅能调用本技能的端点,可能存在过度API权限);无回滚机制或用户确认步骤。因此评17分。
证据显示:文档提供了完整的代码示例(models、chat/completions、流式),一致且可运行。错误处理模式详细(extractPinmeOpenRouterError)。测试套件覆盖CLI命令,但没有覆盖此技能的关键路径(OpenRouter API调用)。扣分原因:静态审查,无法执行验证;测试不覆盖LLM集成路径。因此评10分。
证据显示:技能有明确的应用场景(PinMe Worker调用OpenRouter)、环境变量说明、非适用范围未明确但可推测(不使用Worker时)。触发条件较清晰(描述中提到'PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs')。扣分原因:未明确非适用场景(如直接使用OpenRouter API或非PinMe项目);未提及中国大陆网络可达性(pinme.cloud可能不可达),构成环境适配减分。因此评12分。
证据显示:文档结构清晰,有分节标题、错误表格、代码示例。有README、MIT许可证、版本(package.json 2.0.11)、CI、测试。扣分原因:无变更日志;无已知限制章节(仅提到1MB请求限制);维护责任未明确(author字段为'Glitter Protocol',但品牌未验证)。因此评13分。
证据显示:技能的目标明确(生成正确的Worker TS代码),提供多种示例,预期输出清晰(非流式JSON、流式SSE)。但静态审查无法验证实际效果;边际价值高(避免手动查阅API)。扣分原因:没有实际输出验证;无法证明直接可用性。因此评7分。
证据显示:存在CI工作流、测试套件(CLI测试),但缺少针对此技能代码的单元测试或集成测试。没有第三方验证。扣分原因:静态审查,无执行证据;测试覆盖不足。因此评5分。
- 技能依赖pinme.cloud服务,该域名在中国大陆可能被墙,无法访问;用户在评估生产环境可用性前应确认可达性。
- 技能要求Worker使用项目API密钥,但未限定Worker只能调用本技能描述的端点;若Worker被注入其他代码,可能存在密钥泄露风险。
- 技能未提供回滚或故障恢复方案;如果调用OpenRouter失败,可能留下不一致状态。
- 发布者身份未经验证,使用前应自行审计供应链。
这个 Skill 能做什么,适合哪些场景?
这个技能为 PinMe Worker (TypeScript) 项目提供调用 OpenRouter 代理 API 的指南。它涵盖模型列表、聊天补全(支持 SSE 流式)以及通过 OpenRouter 的 openrouter:web_search 工具实现网页搜索。Worker 使用自动注入的环境变量(API_KEY、PROJECT_NAME、BASE_URL),无需手动配置。技能提供了完整的 TypeScript 代码示例、错误处理和前端流式消费示例,帮助开发者快速集成 LLM 功能。
该技能指导如何在 PinMe Worker 中实现:1) 调用 GET /api/v1/models 列出可用模型;2) 调用 POST /api/v1/chat/completions 进行非流式聊天补全;3) 支持流式 SSE 响应的透传;4) 通过 tools 数组传入 openrouter:web_search 工具实现网页搜索;5) 解析 PinMe 包装的错误格式并提取 OpenRouter 错误信息。
- 构建一个需要与 LLM 聊天的全栈应用,例如 AI 客服、聊天机器人,后端运行在 PinMe Worker 上
- 需要流式输出回答的场景,例如打字机效果的前端聊天界面
- 需要 LLM 提供最新信息的场景,例如搜索增强回答或实时信息总结
- 开发者希望使用 OpenRouter 的各种模型,但不想直接暴露 API key,而是通过 PinMe 平台管理认证
这个 Skill 有哪些优点和局限?
- 自动注入环境变量,无需手动设置 API key 或 base URL
- 支持流式 SSE 和网页搜索,功能全面
- 提供清晰的错误码表和错误提取函数,便于调试
- 代码示例完整,可直接复制使用
- 仅适用于 PinMe Worker 项目,需使用 PinMe 平台创建项目
- 错误信息依赖 PinMe 的包装格式,可能随平台更新而变化
- 没有提供测试或单元测试示例,需要自己完善测试
- 必须先有 PinMe 项目(create_worker),不能独立使用
如何安装这个 Skill?
在 Claude Code 中运行:npx skills add glitternetwork/pinme。技能会随仓库安装。
如何使用这个 Skill?
在 Worker 项目中,确保存在由 create_worker 生成的 Env 接口(包含 API_KEY、PROJECT_NAME、BASE_URL)。参考技能中的代码示例,实现路由处理。例如,可添加 POST /api/chat 路由,调用 callLLM 函数获取非流式回答,或添加 POST /api/chat/stream 路由,使用 handleChatStream 透传 SSE 事件。无需手动配置环境变量,它们会自动注入。