1.?本地ollama
1.1?本地安裝ollama
方法 1:手動檢查最新版本并下載 訪問 Ollama 的 GitHub Releases 頁面:
打開 https://github.com/ollama/ollama/releases
查看最新的穩定版本(如 v0.7.0 或更高) 手動下載最新版本(替換 v0.7.0 為實際版本):
wget https://github.com/ollama/ollama/releases/download/v0.7.0/ollama-linux-amd64 -O ~/.local/bin/ollama chmod +x ~/.local/bin/ollama
方法 2:使用官方安裝腳本(推薦)需要root權限, Ollama 提供了自動安裝腳本,無需手動下載:
需要root權限,或者sudo # curl -fsSL https://ollama.com/install.sh | sh >>> Installing ollama to /usr/local >>> Downloading Linux amd64 bundle ######################################################################## 100.0% >>> Creating ollama user... >>> Adding ollama user to render group... >>> Adding ollama user to video group... >>> Adding current user to ollama group... >>> Creating ollama systemd service... >>> Enabling and starting ollama service... Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service. >>> NVIDIA GPU installed.
該腳本會自動檢測系統架構并下載最新版本 安裝完成后,運行 ollama pull llama3 測試
方法 3:使用 AppImage(免安裝)
如果仍然無法下載,可以直接使用 AppImage 版本:
wget https://ollama.com/download/Ollama-linux-x86_64.AppImage chmod +x Ollama-linux-x86_64.AppImage ./Ollama-linux-x86_64.AppImage
安裝完成后查看ollama版本
$ ollama --version
ollama version is 0.6.5
1.2?本地模型導入ollama
$ ollama create Qwen2.5-0.5B-Instruct-f16 -f ./Modelfile2
????????Modelfile中的內容一定要配置正確,不然模型會胡言亂語。?
$ ollama list
NAME ID SIZE MODIFIED
Qwen2.5-0.5B-Instruct-f16:latest b6c92e7256aa 1.4 GB 18 minutes ago
Qwen2.5-0.5B-Instruct-Q4_K_M.gguf:latest b6c92e7256aa 1.4 GB 16 hours ago
$ ollama run qwen2.5-0.5b-instruct-f16
>>> 你叫什么名字
我是阿里云自主研發的超大規模語言模型,我叫通義千問。>>> Send a message (/? for help)
1.3?刪除ollama中的模型
$ ollama rm Qwen2.5-0.5B-Instruct-f16
deleted 'Qwen2.5-0.5B-Instruct-f16'
2. docker webui中的ollama
2.1 安裝docker
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.2 webui docker中安裝ollama
啟動webui docker?
docker run -d -p 3003:8080 --add-host=host.docker.internal:host-gateway -v /home/pretrained_model/output/:/app/backend/output --name open-webui-2 --restart always ghcr.io/open-webui/open-webui:main
?安裝ollama
# curl -fsSL https://ollama.com/install.sh | sh
?docker中運行ollama 模型
?但是發現webui界面上找不到模型
用帶ollama的webui來啟動容器
docker run -d -p 3004:8080 --gpus=all -v ollama:/root/.ollama -v /home/pretrained_model/output/:/app/backend/output --name open-webui-3 --restart always ghcr.io/open-webui/open-webui:ollama
3. docker ollama服務
3.1 啟動docker ollama 服務
docker run -d --gpus=all -v ollama:/root/.ollama -p 11435:11434 --name ollama ollama/ollama
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ce3281b88186 ollama/ollama "/bin/ollama serve" 4 minutes ago Up 4 minutes 0.0.0.0:11435->11434/tcp, :::11435->11434/tcp ollama
3.2 ollama的幾個命令
1. 確認服務狀態 首先檢查容器是否正常運行:
docker ps | grep ollama
如果狀態為 Up ,且端口映射正確( 0.0.0.0:11435->11434/tcp ),說明服務已就緒。
2. 通過命令行與 Ollama 交互 本地直接訪問 Ollama 默認監聽 11434 端口,但你的容器將 容器內的 11434 映射到了 主機的 11435,因此需要通過 11435 端口訪問:
curl http://localhost:11435/api/tags
# 查看已下載的模型
$ curl -s http://localhost:11435/api/tags | python3 -m json.tool {"models": [{"name": "qwen2.5-0.5b-instruct-fp16:latest","model": "qwen2.5-0.5b-instruct-fp16:latest","modified_at": "2025-04-25T08:36:14.196107125Z","size": 994158862,"digest": "1628bedb88991403c55134f79603cd867faa7d064a5209b34c54f4446e38c43e","details": {"parent_model": "","format": "gguf","family": "qwen2","families": ["qwen2"],"parameter_size": "494.03M","quantization_level": "F16"}},
3. 通過 API 調用
Ollama 提供 REST API,可通過代碼或工具(如
、Postman)調用:curl
# 生成文本 curl -X POST http://localhost:11435/api/generate -d '{"model": "llama3","prompt": "為什么天空是藍色的?" }'# 聊天接口 curl -X POST http://localhost:11435/api/chat -d '{"model": "llama3","messages": [{ "role": "user", "content": "解釋光的散射現象" }] }'
postman調用:?
3.3 流式與非流式調用
流式(逐字返回結果)
$ curl -X POST http://localhost:11435/api/chat -d '{
> "model": "qwen2.5-0.5b-instruct-fp16",
> "messages": [
> { "role": "user", "content": "解釋光的散射現象" }
> ]
> }'
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T09:56:07.766177288Z","message":{"role":"assistant","content":"光"},"done":false}
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T09:56:07.798616753Z","message":{"role":"assistant","content":"的"},"done":false}
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T09:56:07.825641344Z","message":{"role":"assistant","content":"散"},"done":false}
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T09:56:07.852898933Z","message":{"role":"assistant","content":"射"},"done":false}
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T09:56:07.879627403Z","message":{"role":"assistant","content":"是指"},"done":false}
非流式("stream": false)
$ curl -X POST http://localhost:11435/api/chat -d '{
> "model": "qwen2.5-0.5b-instruct-fp16",
> "messages": [
> { "role": "user", "content": "解釋光的散射現象" }
> ],
> "stream": false
> }'
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-25T10:14:43.393744802Z","message":{"role":"assistant","content":"光的散射是光在傳播過程中,部分光波由于波長、方向、速度等特性不同而相互偏轉的現象。這一現象不僅在日常生活中觀察到,而且在科學實驗中也有應用。\n\n在光學中,光的散射通常發生在大氣中的雨滴或塵埃顆粒中,當這些顆粒與光相互作用時,會吸收一部分光波,使其他光波得以通過。這種現象被稱為“折射”,即光線在不同介質之間發生改變的方向。\n\n此外,散射還存在于水中、玻璃、塑料等透明介質中。當水中的懸浮顆粒(如小魚、微小的植物或微粒)與光相互作用時,它們會吸收一部分光波并使其散射出去,導致光線被分散,形成所謂的“光斑”。\n\n在科學研究和工程實踐中,理解光的散射現象是非常重要的。例如,在光學設計中,了解如何設計透鏡以減少光的散射是提高圖像質量、減少反射和減少散射污染的關鍵。此外,在雷達技術中,散射現象有助于在空中識別目標。\n\n綜上所述,光的散射是一個普遍存在的自然現象,它不僅影響我們日常生活中的許多活動,還為科學研究提供了重要的工具。"},"done_reason":"stop","done":true,"total_duration":11849484701,"load_duration":7625965711,"prompt_eval_count":35,"prompt_eval_duration":339442232,"eval_count":259,"eval_duration":3869595024}
?格式化輸出:
$ curl -X POST http://localhost:11435/api/chat -d '{
> "model": "qwen2.5-0.5b-instruct-fp16",
> "messages": [
> { "role": "user", "content": "解釋光的散射現象" }
> ],
> "stream": false
> }' | python3 -m json.tool% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed
100 1643 100 1498 100 145 154 14 0:00:10 0:00:09 0:00:01 333
{"model": "qwen2.5-0.5b-instruct-fp16","created_at": "2025-04-25T10:21:43.376511973Z","message": {"role": "assistant","content": "\u5149\u7684\u6563\u5c04\u662f\u6307\u5149\u5728\u4f20\u64ad\u8fc7\u7a0b\u4e2d\u53d1\u751f\u7684\u4e00\u79cd\u81ea\u7136\u73b0\u8c61\uff0c\u5b83\u662f\u6307\u5149\u6ce2\u5728\u9047\u5230\u7269\u4f53\u65f6\u88ab\u5206\u6563\u6216\u5206\u5f00\u7684\u73b0\u8c61\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u662f\u7531\u4e8e\u5149\u6ce2\u7684\u6ce2\u957f\u4e0d\u540c\uff0c\u5bfc\u81f4\u4e0d\u540c\u9891\u7387\u7684\u5149\u5b50\u76f8\u4e92\u5e72\u6270\u800c\u4ea7\u751f\u7684\u3002\n\n\u6563\u5c04\u73b0\u8c61\u4e3b\u8981\u53d1\u751f\u5728\u7a7a\u6c14\u3001\u6c34\u6216\u5176\u4ed6\u900f\u660e\u4ecb\u8d28\u4e2d\uff0c\u5f53\u5149\u7a7f\u8fc7\u8fd9\u4e9b\u4ecb\u8d28\u65f6\uff0c\u7531\u4e8e\u4ecb\u8d28\u4e2d\u7684\u5206\u5b50\u548c\u539f\u5b50\u7ed3\u6784\u5dee\u5f02\uff08\u5982\u5bc6\u5ea6\u3001\u6e29\u5ea6\u3001\u7535\u573a\u7b49\uff09\uff0c\u5149\u6ce2\u88ab\u5206\u6563\u6210\u4e0d\u540c\u7684\u6ce2\u957f\u3002\u8fd9\u4e2a\u8fc7\u7a0b\u79f0\u4e3a\u201c\u5149\u7684\u6563\u5c04\u201d\u6216\u201c\u5149\u7684\u6298\u5c04\u201d\u3002\n\n\u6563\u5c04\u73b0\u8c61\u662f\u81ea\u7136\u754c\u4e2d\u5e38\u89c1\u7684\u73b0\u8c61\uff0c\u5c24\u5176\u662f\u5728\u5149\u7ebf\u901a\u8fc7\u4e0d\u540c\u7684\u4ecb\u8d28\u6216\u7269\u4f53\u65f6\u3002\u5b83\u5bf9\u8bb8\u591a\u6280\u672f\u5e94\u7528\uff08\u5982\u5149\u7ea4\u901a\u4fe1\u3001\u96f7\u8fbe\u548c\u6fc0\u5149\uff09\u81f3\u5173\u91cd\u8981\u3002\u4f8b\u5982\uff0c\u5728\u5149\u7ea4\u901a\u4fe1\u4e2d\uff0c\u5229\u7528\u591a\u6a21\u5149\u7ea4\u53ef\u4ee5\u4f20\u8f93\u591a\u79cd\u4e0d\u540c\u9891\u7387\u7684\u5149\u4fe1\u53f7\uff0c\u4ee5\u63d0\u9ad8\u4fe1\u606f\u4f20\u8f93\u6548\u7387\u548c\u5b89\u5168\u6027\uff1b\u5728\u96f7\u8fbe\u7cfb\u7edf\u4e2d\uff0c\u6563\u5c04\u73b0\u8c61\u4f7f\u5f97\u96f7\u8fbe\u80fd\u591f\u63a2\u6d4b\u5230\u76ee\u6807\uff0c\u5e76\u8fdb\u884c\u7cbe\u786e\u7684\u5b9a\u4f4d\u548c\u8ddf\u8e2a\u3002\n\n\u6b64\u5916\uff0c\u6563\u5c04\u73b0\u8c61\u4e5f\u5bf9\u751f\u7269\u4f53\u6709\u5f71\u54cd\uff0c\u5982\u751f\u7269\u7ec4\u7ec7\u4e2d\u7684\u7ec6\u80de\u819c\u53ef\u80fd\u56e0\u4e3a\u5149\u7684\u6563\u5c04\u800c\u53d7\u5230\u5f71\u54cd\uff0c\u5bfc\u81f4\u4fe1\u53f7\u4f20\u9012\u7684\u969c\u788d\u3002\u56e0\u6b64\uff0c\u7406\u89e3\u5149\u7684\u6563\u5c04\u73b0\u8c61\u5bf9\u4e8e\u79d1\u5b66\u3001\u5de5\u7a0b\u548c\u6280\u672f\u7684\u53d1\u5c55\u90fd\u5177\u6709\u91cd\u8981\u610f\u4e49\u3002"},"done_reason": "stop","done": true,"total_duration": 9697206025,"load_duration": 5521248207,"prompt_eval_count": 35,"prompt_eval_duration": 314856710,"eval_count": 247,"eval_duration": 3845767388
}
3.4 windows命令行調用
調用方法1:直接調用
(py38) C:\Users\PC>curl -X POST http://192.168.x.xxx:11435/api/chat -H "Content-Type: application/json" -d "{\"model\":\"qwen2.5-0.5b-instruct-fp16\",\"messages\":[{\"role\":\"user\",\"content\":\"紅樓夢的作者是誰\"}],\"stream\":false}"
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-27T02:02:24.121938447Z","message":{"role":"assistant","content":"《紅樓夢》是中國古典文學中的巔峰之作,由清代作家曹雪芹所著。曹雪芹,字夢阮,號雪芹,是清代著名小說家。《紅樓夢》的 創作時間大約在1745年至1750年間,其完成于1755年。"},"done_reason":"stop","done":true,"total_duration":6566747257,"load_duration":5350087605,"prompt_eval_count":33,"prompt_eval_duration":266226914,"eval_count":66,"eval_duration":935840614}
注意1:添加Header(重要): -H "Content-Type: application/json"?
注意2:使用雙引號包裹 JSON,并轉義內部雙引號(推薦)
調用方法2:將 JSON 保存到文件再發送
創建一個文件?
request.json
?內容如下:
{
? "model": "qwen2.5-0.5b-instruct-fp16",
? "messages": [{
? ? "role": "user",
? ? "content": "紅樓夢的作者是誰"
? }],
? "stream": false
}然后執行:
curl -X POST http://192.168.x.xxx:11435/api/chat -H "Content-Type: application/json" -d "@request.json"
(py38) D:\test>curl -X POST http://192.168.x.xxx:11435/api/chat -H "Content-Type: application/json" -d "@request.json"
{"model":"qwen2.5-0.5b-instruct-fp16","created_at":"2025-04-27T02:15:49.4885271Z","message":{"role":"assistant","content":"《紅樓夢》是中國古典四大名著之一,由清代作家曹雪芹創作。曹雪芹,字夢阮,號雪芹,別署芹圃、芹溪,原籍陽曲縣(今屬河北 ),后遷居于山陰(今浙江紹興)。他出生于一個世代書香門第的大家庭中,自幼受到良好的教育和家教熏陶,對文學、歷史、哲學等多方面都有濃厚的興趣。曹雪芹在創作《紅樓夢》的過程中,歷時十年之久,耗時四年完成,最終于1740年(乾隆二十七年)正式出版。"},"done_reason":"stop","done":true,"total_duration":6489315899,"load_duration":5293753071,"prompt_eval_count":33,"prompt_eval_duration":228518150,"eval_count":132,"eval_duration":952374614}
postman中的調用錯誤:
'{ "model": "qwen2.5-0.5b-instruct-fp16", "messages": [{ "role": "user", "content": "請回答一個中文文學問題:紅樓夢的作者是誰?" }], "options": { "temperature": 0.7, "repeat_penalty": 1.1 }, "stream": false }'
{ "error": "invalid character '\'' looking for beginning of value" }
在 Postman 中遇到 "invalid character '\\'' looking for beginning of value"
錯誤,通常是因為 JSON 格式不正確或引號轉義問題。
JSON 格式問題
錯誤:在 Postman 中直接復制了外層單引號(
'{}'
),導致解析失敗。解決:JSON body 必須嚴格用?
{}
?包裹,不能有外層單引號。
如:
{"model": "qwen2.5-0.5b-instruct-fp16","messages": [{"role": "user","content": "請回答一個中文文學問題:紅樓夢的作者是誰?"}],"options": {"temperature": 0.7,"repeat_penalty": 1.1},"stream": false
}
3.5 jupyter notebook調用
import requestsurl = '192.168.x.xxx:11435' # ollama 服務params = {"model": "qwen2.5-0.5b-instruct-fp16","messages": [{"role": "user","content": "紅樓夢的作者是誰"}],"stream": False
}x = requests.post(rf'http://{url}/api/chat', json=params) print(x.status_code)
# print(x.text)
data = x.json()
print(data)
輸出?
200 {'model': 'qwen2.5-0.5b-instruct-fp16', 'created_at': '2025-04-27T05:56:10.132446588Z', 'message': {'role': 'assistant', 'content': '《紅樓夢》是中國古典文學的巔峰之作,由清代作家曹雪芹創作。曹雪芹是清代著名小說家,字夢阮,號雪芹,別號芹溪,世稱芹溪先生。他在創作過程中,經歷了長期的思慮和奮斗,最終完成了一部宏大的小說巨著。《紅樓夢》以賈、王、史、薛四大家族為背景,講述了以賈寶玉、林黛玉、薛寶釵為代表的青年男女的愛情、婚姻、悲劇以及家族興衰的故事。這部作品以其深刻的人物刻畫、豐富的社會歷史背景和精湛的文學技巧,被譽為中國古代小說的巔峰之作。'}, 'done_reason': 'stop', 'done': True, 'total_duration': 1072925721, 'load_duration': 41171766, 'prompt_eval_count': 33, 'prompt_eval_duration': 19348930, 'eval_count': 137, 'eval_duration': 999026759}
參考文章:
https://github.com/ollama/ollama/blob/main/docs/linux.md
Ubuntu | Docker Docs
https://github.com/open-webui/open-webui