当前位置: 首页 > news >正文

【deepseek-r1模型】linux部署deepseek

1、快速安装

Ollama 下载:Download Ollama on macOS

Ollama 官方主页:https://ollama.com

Ollama 官方 GitHub 源代码仓库:https://github.com/ollama/ollama/

官网提供了一条命令行快速安装的方法。

(1)下载Ollama

curl -fsSL https://ollama.com/install.sh | sh

此命令将自动下载最新版本的 Ollama 并完成安装,以下是 Ollama 使用常见的指令:

ollama serve         #启动ollama
ollama create        #从模型文件创建模型
ollama show          #显示模型信息
ollama run           #运行模型
ollama pull          #从注册表中拉取模型
ollama push          #将模型推送到注册表
ollama list          #列出模型
ollama cp            #复制模型
ollama rm            #删除模型
ollama help          #获取有关任何命令的帮助信息
  • 验证安装完成,在 Exec 处输入:

ollama -h

输出如下:即表示安装成功🎉

(2)开启并使用 Ollama

1).在Service中增加下面两行

vi /etc/systemd/system/ollama.service

Environment="OLLAMA_HOST=0.0.0.0"

Environment="OLLAMA_ORIGINS=*"

2).首先,在终端中开启 Ollama,并在后台挂起(这里有可能有问题,启动的时候是127.0.0.1监听的)

ollama serve

(3)下载大模型

然后下载大模型选择Models 选择一个模型 我这里选择的是deepseek-r1

执行命令以下是成功的结果

(4)以下是常用的指令

1.运行指定大模型指令

ollama run deepseek-r1:7b

2.停止ollama服务

systemctl stop ollama

3.指令启动方式(这个是解决ollama serve启动时ip监听错误的指令)

OLLAMA_HOST=0.0.0.0:11434 /usr/local/bin/ollama serve

这是错误的监听界面

这是正确的监听界面

2. Ollama接口概览

Ollama 提供了以下主要接口:

(1) 生成文本
  • URL: POST /api/generate
  • 功能: 向模型发送提示(prompt),生成文本。

请求体:

{"prompt": "你的提示文本","max_tokens": 50, // 可选,生成的最大 token 数量"temperature": 0.7, // 可选,控制生成文本的随机性"top_p": 0.9, // 可选,控制生成文本的多样性"stop": ["\n", "。"] // 可选,生成停止的标记
}

响应体:

{"response": "模型生成的文本","tokens_used": 50 // 使用的 token 数量
}
(2) 对话模式
  • URL: POST /api/chat
  • 功能: 与模型进行多轮对话。

请求体:

{"messages": [{"role": "user", "content": "你好!"},{"role": "assistant", "content": "你好,有什么可以帮助你的?"}],"max_tokens": 100, // 可选,生成的最大 token 数量"temperature": 0.7 // 可选,控制生成文本的随机性
}

响应体:

{"response": "模型生成的回复","tokens_used": 100 // 使用的 token 数量
}
(3) 获取模型信息
  • URL: GET /api/model
  • 功能: 获取当前加载的模型信息。

响应体:

{"model_name": "deepseek-r1:7b","model_size": "7B",
}
(4) 重新加载模型
  • URL: POST /api/reload
  • 功能: 重新加载模型。

请求体:

{"model": "deepseek-r1:7b" // 可选,指定重新加载的模型
}

响应体:

{"status": "success","message": "Model reloaded successfully"
}
(5) 停止服务
  • URL: POST /api/stop
  • 功能: 停止 Ollama 服务。

响应体:

{"status": "success","message": "Service stopped successfully"
}

3. 参数说明

参数名

类型

说明

prompt

string

生成文本的提示。

messages

array

对话模式中的消息列表,每条消息包含 role

(user/assistant)和 content

max_tokens

integer

生成的最大 token 数量。

temperature

float

控制生成文本的随机性,值越高越随机。

top_p

float

控制生成文本的多样性,值越高越多样。

stop

array

生成停止的标记列表。


4. 错误响应

如果请求失败,Ollama 会返回以下格式的错误信息:

{"error": "错误描述","code": 400 // 错误码
}

常见错误码:

  • 400: 请求参数错误。
  • 404: 接口不存在。
  • 500: 服务器内部错误。

5. 注意事项

  • 确保 Ollama 服务已正确启动,并且模型 deepseek-r1:7b 已加载。
  • 如果服务监听在 127.0.0.1,外部无法访问,请修改为 0.0.0.0
  • 如果需要更高的性能,可以调整模型的参数(如 max_tokenstemperature)。

6. Java调用demo

public static void main(String[] args) {try (CloseableHttpClient httpClient = HttpClients.createDefault()) {HttpPost post = new HttpPost("http://你的ip:11434/api/generate");// 注意Ollama的API参数格式String json = "{"+ "\"model\": \"deepseek-r1:7b\","+ "\"prompt\": \"Hello World!\","
//                    + "\"temperature\": 0.7,"  // 新增温度参数
//                    + "\"top_p\": 0.9,"        // 新增top_p参数+ "\"stream\": false,"  // 是否启用流式   true时会逐个返回结果,而不是一次性返回全部结果+ "\"max_tokens\": 50"+ "}";post.setEntity(new StringEntity(json));post.setHeader("Content-Type", "application/json");HttpResponse response = httpClient.execute(post);String result = EntityUtils.toString(response.getEntity());System.out.println("API Response:\n" + result);// 解析 JSONJSONObject jsonObject = JSON.parseObject(result);// 提取 "response" 字段的值String responseStr = jsonObject.getString("response");// 去除 HTML 标签(如果需要)String cleanedResponse = responseStr.replaceAll("\\u003c/?.*?\\u003e", "").trim();// 打印结果System.out.println(String.format("提取的回答内容:%s", cleanedResponse));} catch (Exception e) {e.printStackTrace();}}

以下是请求成功的示例

如果对你有帮助请帮忙点个👍

http://www.lryc.cn/news/539555.html

相关文章:

  • 【Github每日推荐】-- 2024 年项目汇总
  • C++中的.*运算符
  • 深度学习笔记——LSTM
  • spring boot知识点2
  • 【机器学习】CNN与Transformer的表面区别与本质区别
  • 框架篇 - Hearth ArcGIS 框架扩展(DryIoC、Options、Nlog...)
  • JUC并发—7.AQS源码分析三
  • windows系统本地部署DeepSeek-R1全流程指南:Ollama+Docker+OpenWebUI
  • 当C#邂逅Deepseek, 或.net界面集成deepseek
  • Cursor实战:Web版背单词应用开发演示
  • Kotlin Lambda
  • V4L2驱动之UVC
  • numpy(01 入门)
  • Chatgpt论文润色指令整理
  • vscode复制到下一行
  • Python天梯赛刷题-五分题(上)
  • 【优先级队列】任务分配
  • 设计模式之适配模式是什么?以及在Spring AOP中的拦截器链的使用源码解析。
  • Python 库自制 Cross-correlation 算法
  • C++(23):为类成员函数增加this参数
  • javaSE学习笔记23-线程(thread)-总结
  • 【DeepSeek服务器部署全攻略】Linux服务器部署DeepSeek R1模型、实现API调用、搭建Web页面以及专属知识库
  • 【JAVA工程师从0开始学AI】,第四步:闭包与高阶函数——用Python的“魔法函数“重构Java思维
  • 算法日记20:SC72最小生成树(prim朴素算法)
  • 玩转SpringCloud Stream
  • 嵌入式经常用到串口,如何判断串口数据接收完成?
  • iOS App的启动与优化
  • 导出指定文件夹下的文件结构 工具模块-Python
  • Leetcode - 周赛436
  • 【pytest】编写自动化测试用例命名规范README