搭建属于自己的 DeepSeek 本地部署环境,需要结合模型部署、API 接口搭建以及前端交互等步骤。以下是详细的流程:
git clone https://github.com/deepseek-ai/deepseek-model.git
cd deepseek-model
deepseek_model.pth
)并放置到指定目录。
python3 -m venv deepseek-env
source deepseek-env/bin/activate
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
pip install transformers flask uvicorn fastapi
from fastapi import FastAPI
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
app = FastAPI()
# 加载模型和分词器
model_path = "./deepseek-model"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path)
@app.post("/generate")
async def generate_text(prompt: str, max_length: int = 100):
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(inputs.input_ids, max_length=max_length)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"response": response}
api.py
,然后启动服务:
uvicorn api:app --host 0.0.0.0 --port 8000
curl -X POST "http://localhost:8000/generate" -H "Content-Type: application/json" -d '{"prompt": "你好,DeepSeek", "max_length": 50}'
Dockerfile
:
FROM python:3.8-slim
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
RUN pip install --no-cache-dir transformers fastapi uvicorn
EXPOSE 8000
CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "8000"]
docker build -t deepseek-api .
docker run -d --name deepseek-container -p 8000:8000 deepseek-api
<!DOCTYPE html>
<html>
<body>
<h1>DeepSeek 本地部署</h1>
<textarea id="prompt" rows="4" cols="50"></textarea><br>
<button onclick="generate()">生成文本</button>
<pre id="response"></pre>
<script>
async function generate() {
const prompt = document.getElementById("prompt").value;
const response = await fetch("http://localhost:8000/generate", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt, max_length: 100 }),
});
const data = await response.json();
document.getElementById("response").innerText = data.response;
}
</script>
</body>
</html>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号