跳至主要内容

DeepSeek V3:带演示项目的指南

了解如何使用 DeepSeek-V3 和 Gradio 构建一款由 AI 驱动的代码审查助手。
· 8分钟 阅读

使用 AI 探索

DeepSeek 推出了 DeepSeek-V3,在编码、数学推理和自然语言处理能力上全面超越前代的模型。

在本教程中,我将一步步带您用 DeepSeek-V3 创建一款代码审查助手。我们还将学习如何将其与 Gradio 集成,为应用提供友好的用户界面。

什么是 DeepSeek-V3?

DeepSeek V3 是一款专家混合(MoE)语言模型,拥有 6710 亿参数,其中每个 token 启用 370 亿参数。

它基于 14.8 万亿高质量 token 进行训练,在代码生成与分析等多种任务中表现出色。其模型架构引入了多头潜在注意力(MLA)以及无辅助损失的负载均衡策略,确保推理高效、训练成本可控。

多头潜在注意力(MLA)机制使模型能同时聚焦输入的多个方面,提升推理效率。DeepSeekMoE 架构采用专家混合方法,以优化训练成本与性能。

DeepSeek V3 Architecture

来源:DeepSeek-AI

无辅助损失的负载均衡策略无需依赖辅助损失函数即可均匀分配计算负载,增强训练稳定性。此外,多 token 预测目标使模型能够同时预测多个 token,从而提升性能,并支持推测式解码以加速推理。

我对 DeepSeek-V3 特别感兴趣的原因包括:

  • 具备更强的推理与理解能力,适合代码补全与分析等复杂任务。
  • 处理速度达每秒 60 个 token,比前代 DeepSeek-V2 快三倍。
  • 模型及其配套论文均完全开源,促进透明度与社区协作。

如何连接 DeepSeek-V3 API

要将 DeepSeek V3 集成到我们的应用中,需要先设置 API 密钥。按照以下步骤获取您的 API 密钥:

1. 访问 DeepSeek.com,点击“Access API”。

deepseek homepage view

Deepseek 主页

2. 在 DeepSeek 的 API 平台注册账号。

3. 点击“Top up”为账户充值。撰文时,DeepSeek API 价格为:

  • 输入(缓存未命中):$0.27/百万 tokens
  • 输入(缓存命中):$0.07/百万 tokens
  • 输出:$1.10/百万 tokens

Deepseek API Platform

3. 在左侧进入 API Keys 选项卡,点击“Create new API key”。最后为密钥命名并复制以备后用。

Deepseek create new API Key

演示项目概览:基于 Gradio 的代码审查助手

我们将要构建的应用是一款交互式助手,利用 DeepSeek V3 的能力,通过友好的界面提供有见地的代码审查。

在开始之前,请确保您已安装以下环境:

  • Python 3.8+
  • 所需库:使用 pip 安装必要的 Python 包:
pip install requests gradio 

现在依赖都已安装,让我们来设置 DeepSeek API。

步骤 1:连接 DeepSeek 的 API

下面的脚本演示了如何与 DeepSeek API 交互,以根据用户提示获取回复。请注意,DeepSeek 的 API 兼容 OpenAI 的格式,并使用用于发起 API 请求的基础 URL。

import requests
import json

# Replace 'YOUR_API_KEY' with your actual DeepSeek API key
API_KEY = 'YOUR_API_KEY'
API_URL = 'https://api.deepseek.com/chat/completions'

HEADERS = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {API_KEY}'
}

def get_deepseek_response(prompt):
    """Fetches a response from the DeepSeek API based on the given prompt."""
    data = {
        'model': 'deepseek-chat',  # Specifies the DeepSeek V3 model
        'messages': [
            {'role': 'system', 'content': 'You are a helpful code reviewer.'},
            {'role': 'user', 'content': prompt}
        ],
        'stream': False  # Set to True for streaming responses
    }

    response = requests.post(API_URL, headers=HEADERS, data=json.dumps(data))

    if response.status_code == 200:
        result = response.json()
        return result['choices'][0]['message']['content'].strip()
    else:
        raise Exception(f"Error {response.status_code}: {response.text}")

我们来更详细地解析上述代码:

  • 导入 requests 与 JSON 库,分别用于向 DeepSeek API 发起 HTTP POST 请求,以及将请求载荷编码为 JSON 格式。
  • 设置您的 API 密钥和用于聊天补全的 DeepSeek API 端点基础 URL。
  • get_deepseek_response 函数将用户提示发送至 API 并获取响应。
  • 我们构造包含指定模型、消息历史和流式偏好的请求载荷,然后使用相应的请求头与 JSON 载荷向 API 端点发送 POST 请求。若响应状态码为 200,表示成功;解析并返回助手回复。否则抛出异常并附上错误详情。

接下来,设计应用的核心功能。

步骤 2:设计核心功能

我们将定义一个函数,接收代码片段作为输入,使用 DeepSeek-V3 对其进行分析,并提供反馈与建议。

def review_code(code_snippet):
    prompt = f"""
    Code Snippet:
    {code_snippet}

    Task: Analyze the provided code snippet. Identify any errors or potential improvements, suggest optimizations, and provide alternative implementations if applicable.
    """
    return get_deepseek_response(prompt)

我们已经就位了一个代码审查器:它接收代码片段,将其与任务提示一同嵌入到提示词中,然后将最终提示词传给模型以获取响应。

接下来,为代码审查应用开发一个简单的 Gradio Web 界面。

步骤 3:创建 Gradio 界面

Gradio 允许我们为应用创建交互式 Web 界面。下面的代码片段为 review_code() 函数创建了一个用户友好的 Gradio 界面。Gradio 界面接收用户输入并将其传递给模型进行验证。

import gradio as gr

def code_reviewer_ui(code):
    return review_code(code)

interface = gr.Interface(
    fn=code_reviewer_ui,
    inputs=gr.Code(language='python', lines=20, label="Paste your code here"),
    outputs=gr.Textbox(label="Review Feedback"),
    title="AI Code Reviewer Assistant",
    description="Analyze your code snippets, receive feedback, and discover improvements.",
)

interface.launch(share=True)

以上设置包含三个组件:

  • 输入:一个 gr.Code 组件,用户可以在其中粘贴代码。
  • 输出:一个 gr.Textbox,用于展示来自 DeepSeek V3 的反馈。
  • 界面:gr.Interface 将输入与输出连接起来,启动供用户交互的 Web 应用。

步骤 4:测试应用

让我们用一个简单示例来测试应用:

AI code review assistant example

我用多个代码示例对该模型进行了测试,每次都给出了正确的审查结果。

AI code review assistant example

结语

在本教程中,我们使用 DeepSeek V3 和 Gradio 构建了一款由 AI 驱动的代码审查助手。该工具可以分析代码片段、提供建设性反馈并给出改进建议,助力您的开发流程。

您可以随时扩展其功能,或将其集成到更大的项目中,进一步优化编码工作流。

想进一步了解 DeepSeek 生态,推荐阅读以下博文:

Aashi Dutt

作者

Aashi Dutt

我是一名 Google Developers 机器学习(生成式 AI)领域的专家、Kaggle 三项专家,以及 Women Techmakers 大使,拥有 3 年以上的技术从业经验。2020 年我共同创办了一家健康科技初创公司,目前在佐治亚理工学院攻读计算机科学硕士,专攻机器学习。

主题