成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在本地部署 DeepSeek 并提供接口用于開發AI對話應用?

人工智能
本篇文章將介紹如何在你本地的電腦上部署一個 DeepSeek 模型,并提供接口供你調用,以便后續基于它開發一些 AI 對話應用。

最近,DeepSeek 異常火爆,堪稱國產 AI 之光,并且它還是免費開源的。只需打開 DeepSeek 對話界面,就能免費與其對話,讓它解決你的問題,關鍵是它的回答質量非常高。當然,本篇文章并不是介紹如何使用 DeepSeek 進行對話的,因為這太簡單了,連我 5 歲的兒子都會用。本篇文章將介紹如何在你本地的電腦上部署一個 DeepSeek 模型,并提供接口供你調用,以便后續基于它開發一些 AI 對話應用。

了解 huggingface

  • 什么是 huggingface?

Hugging Face 是一個專注于自然語言處理(NLP)的開源社區,它提供了一個強大的平臺,用于研究和開發各種 NLP 模型和工具。也就是說,我們需要的 DeepSeek 模型可以從 Hugging Face 下載。它的官網是 huggingface.co/[1]。國內用戶使用它可能需要一些“魔法”,但不用擔心,它在國內有一些鏡像地址,你可以通過這些鏡像地址來下載模型。比如 hf-mirror.com/[2],點進去之后直接搜索我們需要的模型即可。根據你的電腦配置,可以選擇不同的模型。這里我選用 DeepSeek 提供的最簡單的 1.5B(15 億個參數)的模型 DeepSeek-R1-Distill-Qwen-1.5B,大約 3GB 左右。

image.png當然,這里我們不需要直接在網站上下載,后面可以直接在代碼中加載模型。

準備工作

  • 安裝 python 環境

這里我使用的是 python 3.10,你可以根據自己的電腦配置來選擇合適的版本。官網是 www.python.org/downloads/[3]根據提示安裝即可

  • 安裝依賴
pip install torch transformers flask

其中 torch 是 PyTorch 的核心庫,PyTorch 是一個開源的機器學習庫,用于構建和訓練神經網絡。transformers 是一個用于自然語言處理(NLP)任務的庫,它提供了許多預訓練的模型和工具。flask 是一個輕量級的 Web 應用框架,用于構建 Web 應用。

編寫代碼

from flask import Flask, request, jsonify
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

app = Flask(__name__)

# 加載模型和分詞器
MODEL_NAME = "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(MODEL_NAME)

# 設置 pad_token_id
if tokenizer.pad_token isNone:
    tokenizer.pad_token = tokenizer.eos_token
model.config.pad_token_id = tokenizer.pad_token_id

# 設置設備
device = torch.device("cuda"if torch.cuda.is_available() else"cpu")
model.to(device)

def generate_text(prompt, max_length=100, top_p=0.95, temperature=0.7):
    """
    根據輸入的提示(prompt)生成文本。

    參數:
        prompt (str): 輸入的文本提示,用于引導模型生成后續內容。
        max_length (int): 生成文本的最大長度(包括輸入提示)。
        top_p (float): 核采樣(Nucleus Sampling)的概率閾值,控制生成文本的多樣性。
        temperature (float): 溫度參數,控制生成文本的隨機性。

    返回:
        str: 生成的文本。
    """
    # 使用分詞器將輸入文本(prompt)轉換為模型所需的輸入格式。
    # return_tensors="pt" 表示返回 PyTorch 張量格式。
    # padding=True 和 truncatinotallow=True 確保輸入長度一致且不超過模型的最大長度。
    inputs = tokenizer(prompt, return_tensors="pt", padding=True, truncatinotallow=True).to(device)

    # 調用模型的 generate 方法生成文本。
    # inputs.input_ids 是輸入文本的編碼,attention_mask 是注意力掩碼,用于指示哪些位置是有效的輸入。
    outputs = model.generate(
        inputs.input_ids,  # 輸入文本的編碼
        attention_mask=inputs.attention_mask,  # 注意力掩碼
        max_length=max_length,  # 生成文本的最大長度
        num_return_sequences=1,  # 返回的序列數量(這里只生成一個序列)
        no_repeat_ngram_size=2,  # 避免重復的 n-gram 大小(防止重復生成相同的短語)
        do_sample=True,  # 是否使用采樣(而不是貪婪解碼)
        top_p=top_p,  # 核采樣概率閾值
        temperature=temperature,  # 溫度參數,控制隨機性
        pad_token_id=tokenizer.pad_token_id,  # 填充標記的 ID
    )

    # 將生成的編碼(outputs)解碼為可讀的文本。
    # skip_special_tokens=True 表示跳過特殊標記(如 [CLS]、[SEP] 等)。
    generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)

    # 返回生成的文本。
    return generated_text

# API 路由
@app.route("/generate", methods=["POST"])
def generate():
    data = request.json
    prompt = data.get("prompt", "")
    max_length = data.get("max_length", 100)
    top_p = data.get("top_p", 0.95)
    temperature = data.get("temperature", 0.7)

    ifnot prompt:
        return jsonify({"error": "Prompt is required"}), 400

    try:
        generated_text = generate_text(prompt, max_length, top_p, temperature)
        return jsonify({"generated_text": generated_text})
    except Exception as e:
        return jsonify({"error": str(e)}), 500

# 啟動應用
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

如果你不會 python,直接復制這段代碼到文本文件中,然后將文件修改保存為app.py即可。

運行應用

打開app.py所在終端,輸入以下命令可以直接運行應用:

python app.py

如果你無法訪問 huggingface,可以修改下環境變量使用鏡像地址:

  • windows 修改方法

cmd

set HF_ENDPOINT=https://hf-mirror.com

powershell

set HF_ENDPOINT=https://hf-mirror.com
  • linux 修改方法
export HF_ENDPOINT=https://hf-mirror.com
  • mac 修改方法
export HF_ENDPOINT="https://hf-mirror.com"

修改完成之后再次運行app.py,等待模型下載完畢之后就可以使用了。

image.pngimage.png

調用接口http://172.16.10.157:5000/generate傳入相關參數即可,這里我們只傳入一個提問 prompt 參數,其他參數都用默認值。

測試接口

我們需要使用 postman 或者其他工具來測試接口,這里我使用的是 apifox。調用接口并傳入prompt問題,等待一會就會返回一個生成的文本。 image.png

當然這里因為我們電腦配置有限,只能使用 deepseek 提供的最簡單的 1.5b 的模型作為演示。參數量越大,生成的文本質量肯定就越好,同時需要的電腦配置就越高。

后續調用

接口部署完成之后,后續我們可以根據需要在工程項目中調用接口,來實現一些 AI 對話應用。同時可以根據每個用戶的 id 來保存用戶的歷史對話,以便后續根據用戶的歷史對話來生成更好的回答。下篇文章將介紹如何使用 nodejs 來調用這個接口,并實現一個 AI 對話應用,歡迎點贊收藏加關注

標注

[1] https://huggingface.co

[2] https://hf-mirror.com/

[3] https://www.python.org/downloads

責任編輯:龐桂玉 來源: web前端進階
相關推薦

2025-02-08 11:07:35

2025-03-28 08:14:18

2024-03-19 15:09:07

2025-03-03 02:00:00

DeepSeekAIToken

2025-04-14 00:22:00

2025-02-28 07:11:20

2025-02-12 08:21:55

OllamaChatboxDeepSeek

2025-02-11 00:00:25

2010-08-19 10:15:57

Chrome 7

2025-02-06 08:06:05

2025-02-13 08:30:11

2015-10-10 15:56:22

OpenShiftNodeJS部署PaaS

2025-05-22 02:00:00

AI人工智能前端

2025-02-14 09:10:47

2025-03-10 00:00:00

2025-06-16 08:11:47

2025-02-24 00:00:09

2025-02-18 00:04:00

DeepSeek模型ChatGPT

2025-03-12 08:01:29

2025-02-10 11:11:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产999在线观看 | 日韩一级在线 | 亚洲品质自拍视频网站 | 欧美一区二区三区国产 | 男人的天堂久久 | 亚洲大片在线观看 | 91亚洲欧美| 日本五月婷婷 | 99久久精品免费看国产免费软件 | 欧美国产视频一区二区 | 久久久91精品国产一区二区三区 | 岛国在线免费观看 | 天天艹天天干天天 | 国内精品视频免费观看 | 一区二区三区四区在线视频 | 久久人爽爽人爽爽 | 国产精品美女www爽爽爽视频 | 国产成人精品免费视频大全最热 | 国内精品一区二区 | 夜夜久久 | www.99re| 亚洲精品日韩在线 | 久久综合久久自在自线精品自 | 九九久久国产精品 | 亚洲视频免费播放 | www免费视频 | 日韩一区二区三区精品 | 99国产精品久久久 | 九九精品网| 久久精品一区 | 嫩草视频在线免费观看 | 91九色porny首页最多播放 | 亚洲欧美国产一区二区三区 | 久久久久久久久久久久久久久久久久久久 | 国产日韩精品在线 | 一本色道精品久久一区二区三区 | 色婷婷精品国产一区二区三区 | 美日韩精品 | 日韩一区二区久久 | 精品一级 | 毛片久久久|