[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EEMTMQ8P9B85QZ5DP41ZBA":3,"skill-same:01M6EEMTMQ8P9B85QZ5DP41ZBA":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":20,"linkOnly":21,"markdownContent":22,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M6EEMTMQ8P9B85QZ5DP41ZBA","cloudflare-ai",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fcloudflare-ai\u002FSKILL.md",[],[18,19],"cloudflare","cloudflare ai","2026-11-10 10:12:30",false,"# Cloudflare Workers AI — AI Inference at the Edge\n\nYou are an expert in Cloudflare Workers AI, the serverless AI inference platform running on Cloudflare's global network. You help developers run LLMs, embedding models, image generation, speech-to-text, and translation models at the edge with zero cold starts, pay-per-use pricing, and integration with Workers, Pages, and Vectorize — enabling AI features without managing GPU infrastructure.\n\n## Core Capabilities\n\n### AI Inference in Workers\n\n```typescript\n\u002F\u002F src\u002Fworker.ts — AI-powered API at the edge\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const url = new URL(request.url);\n\n    \u002F\u002F Text generation (LLM)\n    if (url.pathname === \"\u002Fapi\u002Fchat\") {\n      const { messages } = await request.json();\n\n      const response = await env.AI.run(\"@cf\u002Fmeta\u002Fllama-3.1-8b-instruct\", {\n        messages,\n        max_tokens: 1024,\n        temperature: 0.7,\n        stream: true,\n      });\n\n      return new Response(response, {\n        headers: { \"Content-Type\": \"text\u002Fevent-stream\" },\n      });\n    }\n\n    \u002F\u002F Text embeddings (for RAG)\n    if (url.pathname === \"\u002Fapi\u002Fembed\") {\n      const { text } = await request.json();\n\n      const embeddings = await env.AI.run(\"@cf\u002Fbaai\u002Fbge-base-en-v1.5\", {\n        text: Array.isArray(text) ? text : [text],\n      });\n\n      return Response.json({ embeddings: embeddings.data });\n    }\n\n    \u002F\u002F Image generation\n    if (url.pathname === \"\u002Fapi\u002Fgenerate-image\") {\n      const { prompt } = await request.json();\n\n      const image = await env.AI.run(\"@cf\u002Fstabilityai\u002Fstable-diffusion-xl-base-1.0\", {\n        prompt,\n        num_steps: 20,\n      });\n\n      return new Response(image, {\n        headers: { \"Content-Type\": \"image\u002Fpng\" },\n      });\n    }\n\n    \u002F\u002F Speech to text\n    if (url.pathname === \"\u002Fapi\u002Ftranscribe\") {\n      const audioData = await request.arrayBuffer();\n\n      const result = await env.AI.run(\"@cf\u002Fopenai\u002Fwhisper\", {\n        audio: [...new Uint8Array(audioData)],\n      });\n\n      return Response.json({ text: result.text });\n    }\n\n    \u002F\u002F Translation\n    if (url.pathname === \"\u002Fapi\u002Ftranslate\") {\n      const { text, source_lang, target_lang } = await request.json();\n\n      const result = await env.AI.run(\"@cf\u002Fmeta\u002Fm2m100-1.2b\", {\n        text,\n        source_lang,\n        target_lang,\n      });\n\n      return Response.json({ translated: result.translated_text });\n    }\n\n    return new Response(\"Not Found\", { status: 404 });\n  },\n};\n```\n\n### RAG with Vectorize\n\n```typescript\n\u002F\u002F RAG pipeline: Embed → Store in Vectorize → Query → Generate\nexport default {\n  async fetch(request: Request, env: Env): Promise\u003CResponse> {\n    const { question } = await request.json();\n\n    \u002F\u002F Step 1: Embed the question\n    const queryEmbedding = await env.AI.run(\"@cf\u002Fbaai\u002Fbge-base-en-v1.5\", {\n      text: [question],\n    });\n\n    \u002F\u002F Step 2: Search Vectorize\n    const matches = await env.VECTORIZE.query(queryEmbedding.data[0], {\n      topK: 5,\n      returnMetadata: \"all\",\n    });\n\n    \u002F\u002F Step 3: Generate answer with context\n    const context = matches.matches.map(m => m.metadata?.text).join(\"\\n\\n\");\n\n    const answer = await env.AI.run(\"@cf\u002Fmeta\u002Fllama-3.1-8b-instruct\", {\n      messages: [\n        { role: \"system\", content: `Answer based on this context:\\n${context}` },\n        { role: \"user\", content: question },\n      ],\n    });\n\n    return Response.json({\n      answer: answer.response,\n      sources: matches.matches.map(m => ({ text: m.metadata?.text, score: m.score })),\n    });\n  },\n};\n```\n\n## Installation\n\n```bash\n# Create Workers project\nnpm create cloudflare@latest my-ai-app\n\n# wrangler.toml\n[ai]\nbinding = \"AI\"\n\n[[vectorize]]\nbinding = \"VECTORIZE\"\nindex_name = \"my-index\"\n\n# Deploy\nnpx wrangler deploy\n```\n\n## Best Practices\n\n1. **Edge inference** — Models run on Cloudflare's network; \u003C50ms latency worldwide, zero cold starts\n2. **Streaming** — Use `stream: true` for LLM responses; first token in ~200ms at the edge\n3. **Vectorize for RAG** — Use Cloudflare Vectorize for embedding storage; integrated with Workers AI\n4. **Free tier** — 10K neurons\u002Fday free; enough for prototyping and low-volume production\n5. **Model catalog** — Browse `@cf\u002F` models; Llama 3.1, Mistral, Stable Diffusion, Whisper, BGE all available\n6. **Gateway for routing** — Use AI Gateway for caching, rate limiting, analytics, and fallback to OpenAI\u002FAnthropic\n7. **R2 for storage** — Store generated images, audio in R2 (S3-compatible); zero egress fees\n8. **No GPU management** — Cloudflare manages GPU fleet; you pay per inference, not per GPU-hour\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Fcloudflare-ai",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-ai",{"tool":39,"command":40},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-ai",{"tool":42,"command":43},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill cloudflare-ai","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fcloudflare-ai\u002FSKILL.md",true,[],[48,62,72,81,87,94],{"skillNo":49,"name":50,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":51,"categories":52,"keywords":58,"publishedAt":20},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[53],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[59,60,61],"model","model hierarchy","model hierarchy skill",{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":68,"publishedAt":20},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[67],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[69,70,71],"MCP","zoom","zoom mcp",{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":20},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[78,79,80,70],"sdk","zoom apps sdk","apps",{"skillNo":82,"name":83,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":20},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[83],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":93,"publishedAt":20},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[92],{"categoryNo":54,"categoryName":55,"taxonomyType":56,"taxonomyTypeDesc":57},[89],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":20},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[96]]