本地部署deepseek
1,首先下载本地大语言模型运行平台Ollama。
首先我们需要安装Ollama,它可以在本地运行和管理大模型。
到Ollama官网 https://ollama.com,点击下载,然后选择适合自己系统的版本,这里选择Windows:
2,根据自己的硬件,选择不同量级的deepseek模型,通过相应的命令进行下载安装,安装成功后,可以实现在终端使用。
下载完成之后,就可以和DeepSeek对话了:
在终端命令行窗口下对话,不美观,我们需要一个美观的图文交互界面。
3,最后为了优化体验,借助第三方平台Cherry Studio实现窗口式的对话。
为了更灵活地集成deepseek,下文尝试使用Java实现前后端交互的方式使用本地部署的deepseek。
基于本地部署deepseek,Java前后端开发,实现网页deepseek问答
本地部署deepseek的API地址是http://localhost:11434/v1/chat/completions
前端:
定义了一个异步函数 sendQuestion,用于处理用户在聊天输入框中输入问题并发送给后端服务器:
try {
const response = await fetch('/ds/chat', { //fetch('/ds/chat', ...) 是一个 JavaScript 的内置函数,用于发起一个 HTTP 请求。
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ question: question })
});
fetch(‘/ds/chat’, …) 是一个 JavaScript 的内置函数,用于发起一个 HTTP 请求。
- /ds/chat 是请求的 URL,即后端服务器处理聊天请求的接口。
- method: ‘POST’ 指定请求方法为 POST,通常用于向服务器提交数据。
- headers: { ‘Content-Type’: ‘application/json’ } 设置请求头,表明请求体的格式是 JSON。
- body: JSON.stringify({ question: question }) 将包含用户问题的对象转换为 JSON 字符串,并作为请求体发送给服务器。
- await 关键字暂停函数的执行,直到 fetch 请求完成并返回响应。
后端:
使用的是 Spring Boot 作为后端框架,并且前端通过 fetch 以 JSON 格式发送包含用户问题的请求体,在控制层接收这个 JSON 数据可以按照以下步骤进行:
- 定义请求实体类
首先,你需要定义一个 Java 类来映射前端发送的 JSON 数据。这个类中的属性名要和前端 JSON 对象的键名保持一致。 - 在控制层接收 JSON 数据
接下来,在控制层的方法中使用 @RequestBody 注解来接收前端发送的 JSON 数据,并将其自动转换为 QuestionRequest 对象。 - 后端处理数据
首先提取问题文本,构建一个请求体,发送到deepseek的本地API地址,接着处理该API的响应,如果请求成功且响应体不为空,会从响应体中提取出机器人的回答,并返回到前端。 - 后端返回数据
后端通过 ResponseEntity 对象返回数据给前端,返回的数据是一个字符串,即机器人的回答
前端:
前端使用await response.text()来获取后端返回的数据,然后对返回的数据进行一定的处理,最后将机器人的回答显示在聊天窗口中。