--- name: simple-llm description: 简单的 LLM 请求 - 明确上下文、明确需求结果,不支持推理/工具调用/复杂过程,支持 1M 上下文和图片识别 domain: utilities version: 1.2.0 tags: [llm, api, simple, context, qwen, vision] triggers: keywords: primary: [llm, simple llm, 简单llm, qwen, 大模型] secondary: [文本生成, 总结, 翻译, 改写, 分析, 图片识别, 图片分析, ocr] context_boost: [文本, context, context window, 上下文, 图片] priority: low --- # Simple LLM 简单的 LLM 请求工具,适用于明确上下文和明确需求结果的场景。 ## 特点 | 特性 | 说明 | |------|------| | 上下文 | 支持 1M tokens | | 成本 | 本地部署,无 token 成本 | | 功能 | 文本生成 + 图片识别/分析 | | 限制 | 不支持推理、工具调用、复杂过程 | ## API 配置 ``` Endpoint: https://one.hao.work/v1/chat/completions Model: qwen3.5-plus Auth: Bearer sk-2e51c350efdeb41e27fcea4c3116567e514435db291b291e ``` ## 图片上传服务 本地图片需要先上传获取 URL,再传给 LLM 识别。 ### 上传 API ```bash curl -u admin:whoami139 \ -F "file=@/path/to/image.png" \ https://img.hao.work/upload ``` | 参数 | 说明 | |------|------| | file | 图片或 JSON 文件 | | ttl_days | 可选,默认 90 天,小于 90 天按 90 天保存 | ### 返回示例 ```json {"filename":"abc123.png","size":12345,"url":"https://img.hao.work/images/abc123.png"} ``` ### 本地图片处理流程 ``` ┌─────────────────────────────────────────────────────────────┐ │ 本地图片识别流程 │ │ │ │ ┌─────────────┐ │ │ │ 本地图片路径 │ │ │ └──────┬──────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 上传到图床 │ curl -u admin:whoami139 -F "file=@..." │ │ │ img.hao.work│ │ │ └──────┬──────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 获取图片URL │ https://img.hao.work/images/xxx.png │ │ └──────┬──────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 调用LLM识别 │ image_url + prompt │ │ └──────┬──────┘ │ │ ▼ │ │ ┌─────────────┐ │ │ │ 返回结果 │ │ │ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` --- ## 使用方式 ### 文本请求 ```bash curl -X POST https://one.hao.work/v1/chat/completions \ -H "Authorization: Bearer sk-2e51c350efdeb41e27fcea4c3116567e514435db291b291e" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3.5-plus", "messages": [{"role": "user", "content": "<你的提示词>"}], "stream": true }' ``` ### 图片识别请求 ```bash curl -X POST https://one.hao.work/v1/chat/completions \ -H "Authorization: Bearer sk-2e51c350efdeb41e27fcea4c3116567e514435db291b291e" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3.5-plus", "messages": [{ "role": "user", "content": [ {"type": "text", "text": "<你的问题或指令>"}, {"type": "image_url", "image_url": {"url": "https://example.com/image.png"}} ] }], "stream": true }' ``` ### 多图片请求 ```bash curl -X POST https://one.hao.work/v1/chat/completions \ -H "Authorization: Bearer sk-2e51c350efdeb41e27fcea4c3116567e514435db291b291e" \ -H "Content-Type: application/json" \ -d '{ "model": "qwen3.5-plus", "messages": [{ "role": "user", "content": [ {"type": "text", "text": "对比这两张图片的区别"}, {"type": "image_url", "image_url": {"url": "https://example.com/image1.png"}}, {"type": "image_url", "image_url": {"url": "https://example.com/image2.png"}} ] }], "stream": true }' ``` --- ## 自动任务分配机制 当主模型接收到任务时,自动评估是否适合委托给 Simple LLM: ### 任务适配规则 ``` ┌─────────────────────────────────────────────────────────────┐ │ 任务分发决策 │ │ │ │ 收到任务 │ │ │ │ │ ▼ │ │ ┌─────────────┐ 否 ┌─────────────┐ │ │ │ 是否需要推理? │ ──────→ │ 主模型处理 │ │ │ └─────────────┘ └─────────────┘ │ │ │是 │ │ ▼ │ │ ┌─────────────┐ 是 ┌─────────────┐ │ │ │ 是否需要工具? │ ──────→ │ 主模型处理 │ │ │ └─────────────┘ └─────────────┘ │ │ │否 │ │ ▼ │ │ ┌─────────────┐ 是 ┌─────────────┐ │ │ │ 是否多步骤? │ ──────→ │ 主模型处理 │ │ │ └─────────────┘ └─────────────┘ │ │ │否 │ │ ▼ │ │ ┌─────────────┐ │ │ │ Simple LLM │ ──→ 执行 → 评估 → 记录结果 │ │ └─────────────┘ │ └─────────────────────────────────────────────────────────────┘ ``` ### 适合自动分配的任务类型 | 类型 | 示例 | 优先级 | |------|------|--------| | 文本总结 | 总结这篇文章的核心观点 | 高 | | 翻译 | 将这段文字翻译成英文 | 高 | | 格式转换 | 将 JSON 转成 YAML | 高 | | 代码解释 | 这段代码做了什么 | 中 | | 图片描述 | 描述这张图片的内容 | 高 | | OCR | 识别图片中的文字 | 高 | | 简单分析 | 分析这段文字的情感倾向 | 中 | | 改写润色 | 改写这段文字使其更专业 | 中 | ### 不适合分配的任务 - 需要多轮对话推理 - 需要调用外部工具/API - 需要文件系统操作 - 需要代码执行验证 - 复杂的规划和决策 --- ## 效果评估与记录 ### 评估标准 执行完成后,按以下标准评估效果: ```yaml 评估维度: 准确性: 输出是否正确回答了问题 (1-5) 完整性: 输出是否覆盖了所有要求 (1-5) 格式: 输出格式是否符合预期 (1-5) 速度: 响应是否及时 (1-5) 综合评分: (准确性 + 完整性 + 格式) / 3 ``` ### 记录机制 在 `~/.agents/skills/simple-llm/records.json` 中记录: ```json { "task_records": [ { "id": "task_001", "timestamp": "2026-02-26T10:00:00Z", "task_type": "summarize", "prompt": "总结以下文章...", "result_quality": 4.5, "success": true, "notes": "总结准确,要点清晰" } ], "type_stats": { "summarize": {"count": 10, "avg_quality": 4.3}, "translate": {"count": 15, "avg_quality": 4.5}, "ocr": {"count": 5, "avg_quality": 4.0} } } ``` ### 优先级调整 根据历史记录动态调整任务分配优先级: ``` if (任务类型 in type_stats && avg_quality >= 4.0) { 优先分配给 Simple LLM } else if (任务类型 in type_stats && avg_quality < 3.0) { 优先使用主模型 } else { 首次尝试 Simple LLM,记录结果 } ``` --- ## 示例模板 ### 文本总结 ``` 请总结以下文章的核心内容,用 3-5 个要点表示: [文章内容] 要求: - 每个要点不超过 50 字 - 保留关键数据和结论 ``` ### 图片识别 ``` 识别这张图片中的所有文字,按原文排版输出: [图片URL] 要求: - 保持原始排版 - 标注不确定的文字 ``` ### 翻译 ``` 将以下内容翻译成英文: [内容] 要求: - 保持原文语气 - 专业术语保持准确 ``` --- ## 注意事项 1. **充分利用 1M 上下文** - 可以传入大段文本,无需担心 token 限制 2. **图片支持** - 通过 image_url 传入图片链接进行识别 3. **避免复杂指令** - 单步任务效果最佳 4. **明确输出格式** - 让模型清楚知道期望的输出形式 5. **效果反馈** - 执行后评估效果,用于优化后续任务分配