关于ollama部署DEEPSEEK以及接口调用

部署运行你感兴趣的模型镜像
from fastapi import FastAPI,HTTPException
from pydantic import BaseModel
import requests,json
from sse_starlette.sse import EventSourceResponse


punct_list = ["。", "!", "?"]


app = FastAPI()
OLLAMA_URL = "http://localhost:11434/api/chat"

class ChatRequestDirect(BaseModel):
    prompt: str
    max_tokens: int = 1024
    temperature: float = 0.7

class ChatRequestStream(BaseModel):
    prompt: str


@app.post("/v1/chat")
def chat_completion(request: ChatRequestDirect):
    try:
        payload = {
            "model": "deepseek-r1:32b",
            "messages": [
                {
                "role": "user",
                "content": request.prompt}
                ],
            "stream": False,
            "options": {
                "temperature": request.temperature,
                "num_predict": request.max_tokens
            }
        }
        response = requests.post(OLLAMA_URL, json=payload)
        return response.json()['message']
    except:
        raise HTTPException(status_code=404, detail="Item not found")

    

@app.post("/v1/stream")
async def chat_stream(request: ChatRequestStream):
    try:
        def stream():
            jsons = {
                "model": "deepseek-r1:32b",
                "messages": [{
                    "role": "user",
                    "content": request.prompt}],
                "stream": True
            }
            response = requests.post(OLLAMA_URL, json=jsons, stream=True)
            text2tts = ''
            for line in response.iter_lines():
                data = json.loads(line.decode('utf-8'))
                text = data['message']['content']
                text2tts += text
                for punct in punct_list:
                    if punct in text:
                        front, back = text2tts.replace('\n', '').rsplit(punct, 1)
                        yield front + punct
                        text2tts = back
                        break
            if text2tts:
                yield text2tts
    except:
        return 

    return EventSourceResponse(stream())

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8001)

以上是关于ollama接口的简单本地调用。ollama国内网络也能pull

关于ollama部署deepseek-r1 主要还是看什么模型适合自己的电脑配置,cpu版本其实1.5b速度也蛮快好用。如果要用显卡的话就要配置cuda,版本不能错Ai学习之Ollama使用GPU运行模型的环境部署-优快云博客

您可能感兴趣的与本文相关的镜像

Llama Factory

Llama Factory

模型微调
LLama-Factory

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调

<think>好的,用户想在Ubuntu上安装Ollama部署DeepSeek模型来调用API接口。首先,我需要确认Ollama的安装步骤。Ollama通常可以通过脚本安装,记得要使用curl下载安装脚本然后执行。可能需要用sudo权限运行,所以用户要注意权限问题。安装完成后,启动服务可能需要systemctl命令,但具体服务名称可能需要查一下,比如ollama.service是否正确。 接下来是部署DeepSeek模型。需要确认DeepSeek模型是否在Ollama的模型库中可用。如果官方支持,直接使用ollama run命令就可以拉取模型。如果不在库中,可能需要自己构建Modelfile,指定模型的路径和参数。这里可能需要用户有模型文件,比如GGUF格式的,并正确配置。 然后是API调用部分。Ollama默认的API端口是11434,用户可以通过curl发送POST请求到localhost:11434/api/generate。需要确保JSON格式正确,包括model、prompt等参数。用户可能需要安装HTTP客户端如Postman来测试API,或者用Python的requests库写脚本。 安全方面,如果用户需要外部访问,应该配置防火墙,比如UFW允许11434端口,或者设置反向代理如Nginx,并考虑HTTPS加密。这部分可能需要用户有一定的网络配置经验。 常见问题方面,安装时的权限问题、模型下载的网络问题、端口冲突都需要检查。模型部署失败可能是路径错误或者格式不支持,需要确认模型文件是否正确。API调用失败可能是参数错误或服务未启动,可以用systemctl status检查服务状态。 最后生成相关问题,考虑安装步骤的细节、模型支持情况、API调用方法、安全措施以及故障排除方法。这些可以帮助用户进一步解决问题。</think>### 在 Ubuntu 上安装 Ollama部署 DeepSeek 模型 API 的步骤 #### 1. 安装 Ollama ```bash # 使用官方脚本安装 curl -fsSL https://ollama.com/install.sh | sh # 启动服务(安装完成后自动启动) sudo systemctl enable ollama sudo systemctl start ollama ``` #### 2. 部署 DeepSeek 模型 ```bash # 拉取 DeepSeek 模型(需确认模型在Ollama库中存在) ollama run deepseek # 若模型未收录,需手动构建 Modelfile echo "FROM /path/to/deepseek-model.Q4_0.gguf" > Modelfile ollama create deepseek -f Modelfile ``` #### 3. 调用 API 接口 ```bash # 使用 curl 测试 API curl http://localhost:11434/api/generate -d '{ "model": "deepseek", "prompt": "你好", "stream": false }' # Python 示例代码 import requests response = requests.post( "http://localhost:11434/api/generate", json={"model": "deepseek", "prompt": "解释量子力学"} ) print(response.json()["response"]) ``` #### 4. 安全配置(可选) ```bash # 开放端口(如果需要远程访问) sudo ufw allow 11434/tcp # 使用 Nginx 反向代理 location /ollama { proxy_pass http://localhost:11434; proxy_set_header Host $host; } ``` ### 常见问题排查 1. **安装失败**:检查网络连接和脚本执行权限 2. **模型加载失败**:确认模型文件路径正确且为GGUF格式 3. **API 无响应**:验证服务状态 `sudo systemctl status ollama` 4. **内存不足**:建议至少16GB内存,可尝试量化版本模型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值