开发与工程 openroutercloudflare-workerstypescriptllm-integrationstreamingweb-search

PinMe Worker OpenRouter API 集成

在 PinMe Worker 中快速调用 OpenRouter 支持的 LLM API,支持流式与网页搜索。

FollowSkills 评估 · FSRS-2.0
谨慎使用
64/ 100 五分制 3.2 / 5
1 2 3 4 5 6
1信任安全17 / 25 · 3.4/5

证据显示:技能文档明确要求Worker仅使用项目API密钥,不持有真实OpenRouter密钥,并说明了数据流(X-API-Key、传递OpenRouter响应)。依赖项均为常见npm包(axios等),CI有依赖审计。未见恶意行为或过度权限。扣分原因:身份未验证,供应商未知;权限最小化仅部分(未明确限制Worker仅能调用本技能的端点,可能存在过度API权限);无回滚机制或用户确认步骤。因此评17分。

2可靠稳定10 / 20 · 2.5/5

证据显示:文档提供了完整的代码示例(models、chat/completions、流式),一致且可运行。错误处理模式详细(extractPinmeOpenRouterError)。测试套件覆盖CLI命令,但没有覆盖此技能的关键路径(OpenRouter API调用)。扣分原因:静态审查,无法执行验证;测试不覆盖LLM集成路径。因此评10分。

3适用触发12 / 15 · 4.0/5

证据显示:技能有明确的应用场景(PinMe Worker调用OpenRouter)、环境变量说明、非适用范围未明确但可推测(不使用Worker时)。触发条件较清晰(描述中提到'PinMe project (Worker TypeScript) needs to call OpenRouter-backed LLM APIs')。扣分原因:未明确非适用场景(如直接使用OpenRouter API或非PinMe项目);未提及中国大陆网络可达性(pinme.cloud可能不可达),构成环境适配减分。因此评12分。

4规范维护13 / 15 · 4.3/5

证据显示:文档结构清晰,有分节标题、错误表格、代码示例。有README、MIT许可证、版本(package.json 2.0.11)、CI、测试。扣分原因:无变更日志;无已知限制章节(仅提到1MB请求限制);维护责任未明确(author字段为'Glitter Protocol',但品牌未验证)。因此评13分。

5有效结果7 / 15 · 2.3/5

证据显示:技能的目标明确(生成正确的Worker TS代码),提供多种示例,预期输出清晰(非流式JSON、流式SSE)。但静态审查无法验证实际效果;边际价值高(避免手动查阅API)。扣分原因:没有实际输出验证;无法证明直接可用性。因此评7分。

6证据核验5 / 10 · 2.5/5

证据显示:存在CI工作流、测试套件(CLI测试),但缺少针对此技能代码的单元测试或集成测试。没有第三方验证。扣分原因:静态审查,无执行证据;测试覆盖不足。因此评5分。

证据充分度: 评估于 2026年8月7日 审查版本 7822b0501607
使用前请注意
  • 技能依赖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 错误信息。

  1. 构建一个需要与 LLM 聊天的全栈应用,例如 AI 客服、聊天机器人,后端运行在 PinMe Worker 上
  2. 需要流式输出回答的场景,例如打字机效果的前端聊天界面
  3. 需要 LLM 提供最新信息的场景,例如搜索增强回答或实时信息总结
  4. 开发者希望使用 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 事件。无需手动配置环境变量,它们会自动注入。

常见问题

我可以在非 PinMe 项目中使用这个技能吗?
不可以。技能专门针对 PinMe Worker 项目设计,需要 PinMe 平台提供的环境变量和代理 API。如果你使用其他部署平台,需要直接调用 OpenRouter 的 API,并自行管理 API key。
需要支付额外费用吗?
PinMe 平台会为每个项目提供 API_KEY 用于认证,但 LLM 调用费用通常由 OpenRouter 收取,PinMe 平台可能还需要项目账户有余额(否则返回 403 错误)。具体计费方式请参考 PinMe 官网。
流式响应如何在前端解析?
技能提供了前端 SSE 消费者代码示例,使用 fetch 读取响应流,按行解析 data: 前缀的 JSON 数据,并处理 [DONE] 信号。
如果请求体超过 1MB 怎么办?
PinMe 会返回 413 错误,提示 “Request body too large (max 1MB)”。技能建议确保请求体不超过 1MB。

同仓库的其他 Skills

均来自 glitternetwork/pinme

相关 Skills