deepseek本地部署及java、python調(diào)用步驟詳解
1.下載Ollama
(需要科學(xué)上網(wǎng))
https://ollama.com/
2.拉取模型
輸入命令
ollama pull deepseek-v3


由于v3太大,改為r1,命令為:
ollama run deepseek-r1:1.5b
查看安裝的模型
ollama ls
查看啟動(dòng)的模型
ollama ps

對話框輸入/bye退出

3.Java調(diào)用
目前僅支持jdk17以上版本使用,本文使用的是jdk21,springboot版本為3.3.6版本過高、過低時(shí)都無法正常啟動(dòng)
3.1引入pom
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo21</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo21</name>
<description>demo21</description>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>io.springboot.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
3.2配置application.yml
server:
port: 8088
spring:
application:
name: demo21
ai:
ollama:
base-url: http://localhost:11434
chat:
options:
model: deepseek-r1:1.5b
3.2創(chuàng)建Controller
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatClient;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class OllamaClientController {
@Autowired
@Qualifier("ollamaChatClient")
private OllamaChatClient ollamaChatClient;
/**
* http://localhost:8088/ollama/chat/v1?msg=java就業(yè)前景
*/
@GetMapping("/ollama/chat/v1")
public String ollamaChat(@RequestParam String msg) {
return this.ollamaChatClient.call(msg);
}
/**
* http://localhost:8088/ollama/chat/v2?msg=java就業(yè)前景
*/
@GetMapping("/ollama/chat/v2")
public Object ollamaChatV2(@RequestParam String msg) {
Prompt prompt = new Prompt(msg);
ChatResponse chatResponse = ollamaChatClient.call(prompt);
return chatResponse.getResult().getOutput().getContent();
}
/**
* http://localhost:8088/ollama/chat/v3?msg=java就業(yè)前景
*/
@GetMapping("/ollama/chat/v3")
public Object ollamaChatV3(@RequestParam String msg) {
Prompt prompt = new Prompt(
msg,
OllamaOptions.create()
.withModel("deepseek-r1:1.5b")
.withTemperature(0.4F));
ChatResponse chatResponse = ollamaChatClient.call(prompt);
return chatResponse.getResult().getOutput().getContent();
}
}

4.python調(diào)用
pip引入
pip install ollama
創(chuàng)建.py文件
import ollama
# 流式輸出
def api_generate(text: str):
print(f'提問:{text}')
stream = ollama.generate(
stream=True,
model='deepseek-r1:1.5b',
prompt=text,
)
print('-----------------------------------------')
for chunk in stream:
if not chunk['done']:
print(chunk['response'], end='', flush=True)
else:
print('\n')
print('-----------------------------------------')
print(f'總耗時(shí):{chunk['total_duration']}')
print('-----------------------------------------')
def api_chat(text: str):
print(f'提問:{text}')
stream = ollama.chat(
stream=True,
model='deepseek-r1:1.5b',
messages=[{"role":"user","content":text}]
)
print('-----------------------------------------')
for chunk in stream:
if not chunk['done']:
print(chunk['message'].content, end='', flush=True)
else:
print('\n')
print('-----------------------------------------')
print(f'總耗時(shí):{chunk['total_duration']}')
print('-----------------------------------------')
if __name__ == '__main__':
# 流式輸出
api_generate(text='python就業(yè)前景')
api_chat(text='python就業(yè)前景')
# 非流式輸出
content = ollama.generate(model='deepseek-r1:1.5b', prompt='python就業(yè)前景')
print(content)
content = ollama.chat(model='deepseek-r1:1.5b', messages=[{"role":"user","content":'python就業(yè)前景'}])
print(content)總結(jié)
到此這篇關(guān)于deepseek本地部署及java、python調(diào)用的文章就介紹到這了,更多相關(guān)deepseek本地部署java、python調(diào)用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- ClaudeCode中的Agent系統(tǒng)工作原理、如何使用和自定義開發(fā)
- 如何使用 Deepseek 寫的html油耗計(jì)算器
- 如何用 Deepseek 寫的uniapp血型遺傳查詢工具
- 如何使用 Deepseek 寫的uniapp油耗計(jì)算器
- 通過Docker為本地DeepSeek-r1部署WebUI界面的完整教程
- 本地部署DeepSeek開源多模態(tài)大模型Janus-Pro-7B實(shí)操教程
- 華為昇騰920b服務(wù)器部署DeepSeek翻車現(xiàn)場演示
- 5分鐘獲取deepseek api并搭建簡易問答應(yīng)用
- DeepSeek V4-Pro驅(qū)動(dòng)Claude Code,OA審批+BI大屏+自動(dòng)部署的真實(shí)體驗(yàn)
相關(guān)文章
javax.validation.constraints如何校驗(yàn)參數(shù)合法性
本文將深入探討javax.validation.constraints的基本用法和高級應(yīng)用,幫助讀者更好地理解和運(yùn)用這個(gè)強(qiáng)大的校驗(yàn)框架,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
MyBatis分頁插件PageHelper深度解析與實(shí)踐指南
在數(shù)據(jù)庫操作中,分頁查詢是最常見的需求之一,傳統(tǒng)的分頁方式通常有兩種內(nèi)存分頁和SQL分頁,MyBatis作為優(yōu)秀的ORM框架,本身并未提供統(tǒng)一的分頁解決方案,這正是PageHelper誕生的背景,下面小編給大家詳細(xì)說說MyBatis分頁插件PageHelper,需要的朋友可以參考下2025-05-05
Java JDK動(dòng)態(tài)代理的基本原理詳細(xì)介紹
這篇文章主要介紹了Java JDK動(dòng)態(tài)代理的基本原理詳細(xì)介紹的相關(guān)資料,這里對動(dòng)態(tài)代理進(jìn)行了詳解并附簡單實(shí)例代碼,需要的朋友可以參考下2017-01-01
SpringBoot事件機(jī)制相關(guān)知識(shí)點(diǎn)匯總
這篇文章主要介紹了SpringBoot事件機(jī)制相關(guān)知識(shí)點(diǎn)匯總,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決
本文主要介紹了mybatis-plus內(nèi)置雪花算法主鍵重復(fù)問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Java利用Spire.XLS?for?Java實(shí)現(xiàn)查找并替換Excel中的數(shù)據(jù)
在日常的數(shù)據(jù)處理工作中,Excel?文件無疑是最常見的載體之一,本文將深入探討如何借助?Java?語言和強(qiáng)大的?Spire.XLS?for?Java?自動(dòng)化處理?Excel?文件的查找替換任務(wù),感興趣的小伙伴可以了解下2025-09-09

