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

如何在本地部署 DeepSeek 并提供接口用于開發(fā)AI對話應(yīng)用?

人工智能
本篇文章將介紹如何在你本地的電腦上部署一個(gè) DeepSeek 模型,并提供接口供你調(diào)用,以便后續(xù)基于它開發(fā)一些 AI 對話應(yīng)用。

最近,DeepSeek 異?;鸨胺Q國產(chǎn) AI 之光,并且它還是免費(fèi)開源的。只需打開 DeepSeek 對話界面,就能免費(fèi)與其對話,讓它解決你的問題,關(guān)鍵是它的回答質(zhì)量非常高。當(dāng)然,本篇文章并不是介紹如何使用 DeepSeek 進(jìn)行對話的,因?yàn)檫@太簡單了,連我 5 歲的兒子都會(huì)用。本篇文章將介紹如何在你本地的電腦上部署一個(gè) DeepSeek 模型,并提供接口供你調(diào)用,以便后續(xù)基于它開發(fā)一些 AI 對話應(yīng)用。

了解 huggingface

  • 什么是 huggingface?

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

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

準(zhǔn)備工作

  • 安裝 python 環(huán)境

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

  • 安裝依賴
pip install torch transformers flask

其中 torch 是 PyTorch 的核心庫,PyTorch 是一個(gè)開源的機(jī)器學(xué)習(xí)庫,用于構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)。transformers 是一個(gè)用于自然語言處理(NLP)任務(wù)的庫,它提供了許多預(yù)訓(xùn)練的模型和工具。flask 是一個(gè)輕量級的 Web 應(yīng)用框架,用于構(gòu)建 Web 應(yīng)用。

編寫代碼

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)

# 設(shè)置 pad_token_id
if tokenizer.pad_token isNone:
    tokenizer.pad_token = tokenizer.eos_token
model.config.pad_token_id = tokenizer.pad_token_id

# 設(shè)置設(shè)備
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):
    """
    根據(jù)輸入的提示(prompt)生成文本。

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

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

    # 調(diào)用模型的 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,  # 返回的序列數(shù)量(這里只生成一個(gè)序列)
        no_repeat_ngram_size=2,  # 避免重復(fù)的 n-gram 大?。ǚ乐怪貜?fù)生成相同的短語)
        do_sample=True,  # 是否使用采樣(而不是貪婪解碼)
        top_p=top_p,  # 核采樣概率閾值
        temperature=temperature,  # 溫度參數(shù),控制隨機(jī)性
        pad_token_id=tokenizer.pad_token_id,  # 填充標(biāo)記的 ID
    )

    # 將生成的編碼(outputs)解碼為可讀的文本。
    # skip_special_tokens=True 表示跳過特殊標(biāo)記(如 [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

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

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

運(yùn)行應(yīng)用

打開app.py所在終端,輸入以下命令可以直接運(yùn)行應(yīng)用:

python app.py

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

  • 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"

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

image.pngimage.png

調(diào)用接口http://172.16.10.157:5000/generate傳入相關(guān)參數(shù)即可,這里我們只傳入一個(gè)提問 prompt 參數(shù),其他參數(shù)都用默認(rèn)值。

測試接口

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

當(dāng)然這里因?yàn)槲覀冸娔X配置有限,只能使用 deepseek 提供的最簡單的 1.5b 的模型作為演示。參數(shù)量越大,生成的文本質(zhì)量肯定就越好,同時(shí)需要的電腦配置就越高。

后續(xù)調(diào)用

接口部署完成之后,后續(xù)我們可以根據(jù)需要在工程項(xiàng)目中調(diào)用接口,來實(shí)現(xiàn)一些 AI 對話應(yīng)用。同時(shí)可以根據(jù)每個(gè)用戶的 id 來保存用戶的歷史對話,以便后續(xù)根據(jù)用戶的歷史對話來生成更好的回答。下篇文章將介紹如何使用 nodejs 來調(diào)用這個(gè)接口,并實(shí)現(xiàn)一個(gè) AI 對話應(yīng)用,歡迎點(diǎn)贊收藏加關(guān)注

標(biāo)注

[1] https://huggingface.co

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

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

責(zé)任編輯:龐桂玉 來源: web前端進(jìn)階
相關(guān)推薦

2025-02-08 11:07:35

2025-03-03 02:00:00

DeepSeekAIToken

2024-03-19 15:09:07

2025-03-28 08:14:18

2025-02-28 07:11:20

2025-04-14 00:22:00

2025-02-12 08:21:55

OllamaChatboxDeepSeek

2025-02-11 00:00:25

2025-06-16 08:11:47

2025-02-06 08:06:05

2025-02-14 09:10:47

2025-03-10 00:00:00

2010-08-19 10:15:57

Chrome 7

2025-02-18 00:04:00

DeepSeek模型ChatGPT

2025-03-12 08:01:29

2025-02-13 08:30:11

2015-10-10 15:56:22

OpenShiftNodeJS部署PaaS

2025-05-22 02:00:00

AI人工智能前端

2025-02-12 11:59:15

DeepSeekAI語言模型

2020-10-21 10:16:03

AI保護(hù)公共安全?
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 一级免费毛片 | a欧美| 色婷婷av一区二区三区软件 | 日韩有码一区 | 午夜久久久久 | 一区二区中文字幕 | 亚洲国产精品网站 | 亚洲一区精品在线 | 免费在线a视频 | 国产精品久久久久久久久婷婷 | 欧洲毛片| 欧美做暖暖视频 | 欧美日韩在线电影 | 国产97碰免费视频 | 午夜三区 | 99精品视频免费观看 | 97伦理电影网 | 亚洲三级在线观看 | 99久久精品国产一区二区三区 | 国产美女h视频 | 国产精品久久久久久亚洲调教 | 成人午夜激情 | 99久久夜色精品国产亚洲96 | 久久精品国产亚洲一区二区三区 | 国产精品久久久久久久午夜 | av网站免费观看 | 欧美成人一区二区三区片免费 | 精品99久久久久久 | 色橹橹欧美在线观看视频高清 | 精品成人免费一区二区在线播放 | 超碰日本 | 国产美女免费视频 | 精品日韩一区二区 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | av天天干 | 日韩欧美国产精品一区二区三区 | 欧美成人一区二区三区 | 成人日韩av | 视频二区 | 亚洲视频免费 | 国产精品精品视频一区二区三区 |