????????前文,我們已經在本地基于Ollama部署好了DeepSeek大模型,并且已經告知過如何查看本地的API。為了避免網絡安全問題,我們希望已經在本地調優的模型,能夠嵌入到在本地的其他應用程序中,發揮本地DeepSeek的作用。因此需要知道本地DeepSeek的API結構,知道什么接口地址要輸入什么參數,以及如何使用。
?????? 前置文章:
????????(1)個人windows電腦上安裝DeepSeek大模型:https://lzm07.blog.csdn.net/article/details/145491693
????????(2)查看和使用本地Windows系統下通過Ollama部署的DeepSeek模型的API:https://lzm07.blog.csdn.net/article/details/145601121
????????先了解接口的詳細內容,再postman對接口進行驗證。
一、核心接口文檔說明
1. ?模型列表查詢?
?接口地址?:GET http://localhost:11434/api/tags
?功能?:獲取本地已部署的模型列表,包含模型名稱、版本及大小信息?。
?響應示例?(json):
{"models": [{"name": "deepseek-r1:8b", "modified_at": "2025-03-20T12:00:00Z", "size": 8.2e9}]}
2. ?文本生成?
?接口地址?:POST http://localhost:11434/api/generate
?功能:根據輸入提示生成文本內容,支持代碼、文章、問答等場景?。
請求參數(json)?:
{"model": "deepseek-r1:8b",? // 必填,需與本地模型名稱一致?:ml-citation{ref="2,4" data="citationList"}"prompt": "輸入問題",??????? // 必填"stream": false,?????????? // 是否流式輸出(默認true)?:ml-citation{ref="4,7" data="citationList"}"temperature": 0.7,??????? // 隨機性控制(0-1,默認0.8)?:ml-citation{ref="4,7" data="citationList"}"max_tokens": 1000???????? // 最大輸出長度?:ml-citation{ref="4,7" data="citationList"}}
?響應示例?(json):
{"response": "生成內容","created_at": "2025-03-21T10:00:00Z","done": true}
3. ?對話交互?
?接口地址?:POST http://localhost:11434/api/chat
??功能?: 支持多輪對話交互,維護上下文語義。
請求參數(json)?:
{"model": "deepseek-r1:8b","messages": [{"role": "user", "content": "你好"},{"role": "assistant", "content": "有什么可以幫助您?"}],"options": {"temperature": 0.7,????? // 可選參數?:ml-citation{ref="4,7" data="citationList"}"num_ctx": 4096????????? // 上下文窗口大小?:ml-citation{ref="7" data="citationList"}}}
?響應示例(json)?:
{"message": {"role": "assistant", "content": "回復內容"},"done": true}
二、模型管理接口
4. ?拉取模型?
?接口地址?:POST http://localhost:11434/api/pull
?功能?: 從倉庫下載指定模型到本地。
請求參數(json)?:
{"name": "deepseek-r1:14b",? // 需與模型倉庫名稱一致?:ml-citation{ref="5,8" data="citationList"}"stream": false??????? ?????// 是否顯示下載進度流?:ml-citation{ref="5,8" data="citationList"}}
?響應示例?(json):
{"status": "success", "digest": "sha256:..."}
5. ?創建自定義模型?
?接口地址?:POST http://localhost:11434/api/create
?
請求參數?(json):
{"name": "custom-model",??? // 自定義模型名稱"modelfile": "FROM deepseek-r1:8b\nPARAMETER temperature 0.9"? // 模型配置文件?:ml-citation{ref="5,8" data="citationList"}}
6. ?刪除模型?
?接口地址?:DELETE http://localhost:11434/api/delete
?功能?: 移除本地已部署的模型。
請求參數?(json):
{"name": "deepseek-r1:1.5b"}? // 需刪除的模型名稱?:ml-citation{ref="6,8" data="citationList"}
三、高級接口
7. ?查看模型信息?
?接口地址?:GET http://localhost:11434/api/show
?請求參數?(json):
{"name": "deepseek-r1:8b"}??? // 模型名稱?:ml-citation{ref="8" data="citationList"}
?響應示例(json)?:
{"license": "Apache-2.0","modelfile": "...","parameters": "temperature 0.8"}
?8. 流式響應處理?
?說明?: 在請求(文本生成/對話)中設置?"stream": true?時,響應將以數據流形式分塊返回?。
??數據格式?: 分塊返回SSE(Server-Sent Events)格式數據。
示例?(使用?curl)(CMD中執行):
curl http://localhost:11434/api/generate -d '{"model": "deepseek-r1:8b","prompt": "寫一首關于春天的詩","stream": true}'
四、Postman下載安裝
????????了解了以上接口之后,我們要先對接口進行驗證,看接口的地址、類型、以及請求的參數是否都正常,便于之后在其他程序中應用這些接口。當前我們使用來postman驗證接口。
????????先下載和安裝postman程序。
1. 下載postman
?????? 官方網址:https://www.postman.com/downloads/
2. postman安裝
?????? 點擊Postman-win64-Setup.exe。不用登錄,點擊下方的“Continue without an account”。
?????? 不用登錄,點擊“Open Lightweight API Client”。
?????? 進入postman主界面
五、Postman測試說明
?1.配置請求頭?
設置 Content-Type: application/json?。
?
2.發送請求示例(對話接口)?
?步驟?:
(1)選擇 POST 方法,輸入 http://localhost:11434/api/chat
(2)在 ?Body? 標簽中選擇 ?raw? 格式,粘貼以下內容(json):
?????? 模型名稱一定要寫對,根據自己本地安裝好的模型修改,如我們前面已經在本地部署好了deepseek模型,并將模型命名為my_model_name ,則此時,應該填寫:"model": "my_model_name"
{"model": "deepseek-r1:8b","messages": [{"role": "user", "content": "解釋機器學習中的過擬合"}]}
(3)點擊 ?Send? 獲取響應?。
?3.流式響應處理?
若設置 "stream": true,需在Postman中啟用 ?Stream? 模式,逐塊接收數據?。
(1)在 ?Body? 標簽選擇 ?raw? → ?JSON?,輸入以下內容(json):
{"model": "deepseek-chat",?"messages": [{"role": "user", "content": "你的問題"}],?"stream": true? // 關鍵參數,啟用流式輸出?:ml-citation{ref="7,8" data="citationList"}}
?
(2)關閉 SSL 驗證(可選)?
在 Postman 設置(Settings → General)中關閉 ?SSL certificate verification?,避免證書錯誤中斷流式傳輸?。
六、注意事項
??????? (1)模型名稱匹配?:確保接口中的 model 參數與通過 ollama list 查看到的名稱完全一致?。
??????? (2)顯存限制?:高參數版本(如14B)需至少32GB內存,低配置設備建議使用1.5B或8B版本?。
??????? (3)端口占用?:若端口11434被占用,可通過 OLLAMA_HOST 環境變量修改服務端口?。
??????? (4)跨域問題?: 若通過 Swagger 調用,需在Ollama服務端配置CORS頭(bash):
# 啟動服務時添加參數OLLAMA_ORIGINS=* ollama serve
通過以上接口,可全面管理本地部署的DeepSeek模型并實現交互式調用。