侧边栏壁纸
博主头像
Pullautumn‘s blog博主等级

世间安得双全法,不负如来不负卿

  • 累计撰写 4 篇文章
  • 累计创建 8 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

Cloudflare 平台一键部署 DeepSeek R1 推理模型教程

Pullautumn
2025-02-22 / 0 评论 / 0 点赞 / 69 阅读 / 32977 字

Cloudflare 平台一键部署 DeepSeek R1 推理模型教程:一分钟搞定,真正免费!

DeepSeek 作为当下最热门的 AI 大模型之一,有时会因用户过多导致服务器繁忙。想要本地部署,又面临 GPU 算力资源的高门槛,这让随时随地轻松使用 DeepSeek 变得困难。

这时,我们的“大善人” Cloudflare 又一次出手了!他们在平台上悄悄上线了 Deepseek-R1 32B 推理大模型,让我们能够快速且免费地部署 DeepSeek,畅享大模型的魅力。

今天,就为大家详细讲解如何利用 Cloudflare 的免费平台,轻松白嫖属于自己的 DeepSeek 大模型!

一、 注册或登录 Cloudflare 平台 (CF 老手可跳过)

如果您已经是 Cloudflare 用户,可以直接跳过此步骤。

  1. 进入 Cloudflare 平台官网,访问 Cloudflare 官网,点击登录或注册账号。
    Cloudflare 平台一键部署 DeepSeek R1 推理模型教程1.png

  2. 新用户注册

    • 注册过程可能需要您选择域名,无需理会,直接点击页面底部的 Start building 按钮。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程2.png
  3. 进入仪表盘

    • 成功登录后,您将进入 Cloudflare 仪表盘。

二、正式开始部署 Deepseek API 项目

  1. 创建 Workers AI 项目

    • 在 Cloudflare 仪表盘左侧菜单栏中,找到 【AI】 选项,点击展开。
    • 在 AI 菜单下,选择 【Workers AI】
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程3.png
    • 您可能会看到不同的界面,但目标一致:创建新的 Worker 项目。 通常会看到类似 Llama 3 WorkerCreate project 的选项,按照页面提示创建即可。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程4.png
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程5.png
  2. 为项目命名并部署

    • 为您的项目取一个易于识别的名称,例如 DeepSeek-R1-API
    • 命名完成后,点击 【部署】 按钮,开始项目初始化部署。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程6.png
  3. 编辑 Worker 代码

    • 项目部署完成后,您需要编辑 Worker 的默认代码,替换为 DeepSeek R1 的推理代码。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程7.png
  4. 获取 DeepSeek R1 部署代码

    • 复制代码。
export default {
 async fetch(request, env) {
   // 检查 Authorization 请求头中的 Bearer Token
   const apiKey = this.getApiKeyFromAuthorization(request);

   if (!apiKey || apiKey !== "Pullautumn") {
     return new Response('Unauthorized', { status: 401 });
   }

   if (request.method === 'POST' && request.url.includes('v1/chat/completions')) {
     try {
       const requestData = await request.json();
       const { model, messages, stream: isStream = false } = requestData;

       const created = Math.floor(Date.now() / 1000);
       const uuid = crypto.randomUUID();

       const aiResponse = await env.AI.run('@cf/deepseek-ai/deepseek-r1-distill-qwen-32b', {
         messages,
         max_tokens: 2048,
         stream: isStream,
       });

       if (isStream) {
         return this.handleStreamResponse(aiResponse, model, uuid, created);
       } else {
         return this.handleJsonResponse(aiResponse, model, uuid, created);
       }
     } catch (error) {
       return this.handleError(error);
     }
   }

   return new Response('Not Found', { status: 404 });
 },

 // 从请求头中提取 API 密钥
 getApiKeyFromAuthorization(request) {
   const authorizationHeader = request.headers.get('Authorization');
   if (authorizationHeader && authorizationHeader.startsWith('Bearer ')) {
     return authorizationHeader.slice(7); // 返回 Bearer 后面的部分
   }
   return null;
 },

 handleStreamResponse(stream, model, uuid, created) {
   const { readable, writable } = new TransformStream();
   const writer = writable.getWriter();
   const reader = stream.getReader();

   const processStream = async () => {
     const decoder = new TextDecoder();
     const encoder = new TextEncoder();

     try {
       while (true) {
         const { done, value } = await reader.read();
         if (done) break;

         const stringValue = decoder.decode(value);
         const lines = stringValue.split('\n').filter(line => !!line);

         for (const line of lines) {
           if (line.endsWith('data: [DONE]')) continue;

           try {
             const json = JSON.parse(line.replace(/^data: /, ''));
             const formattedValue = this.formatStreamResponse(json, model, uuid, created);
             await writer.write(encoder.encode(formattedValue));
           } catch (e) {
             console.error('Failed to parse JSON: ', e);
           }
         }
       }

       await writer.write(encoder.encode('data: [DONE]\n\n'));
       writer.close();
     } catch (err) {
       console.error('Stream processing error: ', err);
       writer.close();
     }
   };

   processStream().catch(err => {
     console.error('Stream processing error: ', err);
   });

   return new Response(readable, {
     headers: {
       'content-type': 'text/event-stream',
       'Cache-Control': 'no-cache',
       'Connection': 'keep-alive',
     },
   });
 },

 handleJsonResponse(aiResponse, model, uuid, created) {
   return Response.json({
     id: uuid,
     model,
     created,
     object: 'chat.completion',
     choices: [
       {
         index: 0,
         message: {
           role: 'assistant',
           content: aiResponse.response,
         },
         finish_reason: 'stop',
       },
     ],
     usage: {
       prompt_tokens: 0,
       completion_tokens: 0,
       total_tokens: 0,
     },
   });
 },

 formatStreamResponse(json, model, uuid, created) {
   return `data: ${JSON.stringify({
     id: uuid,
     created,
     object: 'chat.completion.chunk',
     model,
     choices: [
       {
         delta: { content: json.response },
         index: 0,
         finish_reason: null,
       },
     ],
   })}\n\n`;
 },

 handleError(error) {
   console.error('Error processing request: ', error);
   return new Response(JSON.stringify({ error: 'Invalid request' }), {
     status: 400,
     headers: { "Content-Type": "application/json" },
   });
 },
};
  1. 粘贴并部署代码

    • 返回 Cloudflare Worker 项目编辑页面。
    • 清空 编辑器中原有的默认代码。
    • 第 4 步复制的 DeepSeek R1 代码 粘贴到代码编辑器中。
    • 确认代码粘贴完整后,点击右上角的 【部署】 按钮,完成代码更新部署。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程9-1.png
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程10-1.png
  2. 获取项目 URL

    • 部署完成后,返回 Cloudflare 仪表盘,点击您刚刚部署的项目名称。
    • 进入项目详情页面,点击 【设置】 选项卡。
    • 在设置页面中,找到平台为您分配的 项目网址 (通常以 .workers.dev 结尾)。
    • 复制 此网址,并妥善保存,后续配置 UI 软件时需要用到。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程11.png
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程12.png

三、选择可用的 UI 软件 (以 Chatbox AI 为例,Cherry Studio也很好用)

Cloudflare 部署的 DeepSeek API 接口兼容 OpenAI API 规范,因此可以与许多支持 OpenAI API 的 UI 软件或插件配合使用。 这里我们以 Chatbox AI 为例进行演示。

  1. 下载 Chatbox AI

    • 根据您使用的操作系统平台 (Windows/macOS/Linux 等),下载对应的 Chatbox AI 安装包。
    • 您可以在 Chatbox AI 官网 下载,或者从博主提供的 全平台软件安装包 中获取。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程13.png
  2. 打开 Chatbox AI 并进入设置

    • 安装完成后,打开 Chatbox AI 客户端。
    • 点击 Chatbox AI 界面左下角的 【设置】 图标 (通常是齿轮状)。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程14.png
  3. 添加自定义提供方

    • 在设置菜单中,选择 【添加自定义提供方】 选项。
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程15.png
  4. 配置自定义提供方

    • 按照以下说明填写自定义提供方信息:
      • 【模型提供方名称】: 您可以自定义名称,例如 Cloudflare DeepSeek R1
      • 【API 域名】: 填写您在 第二步第 6 点复制的项目网址务必在网址末尾加上 /v1。 例如:https://your-project-name.your-namespace.workers.dev/v1
      • 【改善网络兼容性】务必开启 此功能,以确保网络连接的稳定性。
      • 【API 密钥】默认 API 密钥为 ”Pullautumn” (注意是英文双引号)。 您可以根据代码中的设置自行修改密钥。 如果使用默认密钥,此处填写 Pullautumn 即可。
        Cloudflare 平台一键部署 DeepSeek R1 推理模型教程16.png
  5. 保存配置并开始使用

    • 填写完毕后,点击 【保存】 按钮。
    • 现在,您就可以在 Chatbox AI 中选择您刚刚配置的 Cloudflare DeepSeek R1 提供方,开始与 DeepSeek R1 模型进行对话了!
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程17-1.png
      Cloudflare 平台一键部署 DeepSeek R1 推理模型教程17-2.png

总结

恭喜您!您已经成功在 Cloudflare 平台上 一键部署 了 DeepSeek R1 推理模型,并且 完全免费

Cloudflare 部署的 DeepSeek API 接口具有良好的 OpenAI API 兼容性,您可以将其导入到许多支持 AI 功能的软件或插件中如:Cherry Studio,尽情探索 DeepSeek R1 大模型的强大能力。

希望本教程对您有所帮助!如果您在部署过程中遇到任何问题,欢迎留言交流。


提示:

  • 请确保您使用的代码包来源可靠,并仔细阅读代码中的相关说明。
  • Cloudflare 免费版 Workers 有一定的使用限制,如果您的请求量过大,可能会受到限制。
  • API 密钥 Pullautumn 仅为默认密钥,出于安全考虑,建议您在实际使用中修改为您自己的密钥。

感谢阅读!

0

评论区