Ollama簡介
Ollama 是一個開源的大型語言模型(LLM)平臺,旨在讓用戶能夠輕松地在本地運行、管理和與大型語言模型進行交互。
Ollama 提供了一個簡單的方式來加載和使用各種預訓練的語言模型,支持文本生成、翻譯、代碼編寫、問答等多種自然語言處理任務。
Ollama 的特點在于它不僅僅提供了現成的模型和工具集,還提供了方便的界面和 API,使得從文本生成、對話系統到語義分析等任務都能快速實現。
docker部署Ollama
前提主機上安裝了docker 并且主機的規格大小至少為:4C8G
安裝docker: yum install -y docker
或者其他docker 安裝方式參考: https://blog.csdn.net/weixin_48953586/article/details/145597723
拉取ollama的鏡像:
docker pull ollama/ollama
# 這里如果docker不能直接拉取鏡像,需要配置下docker的鏡像源
運行ollama容器
# 僅CPU運行: 映射出11434端口
docker run -d -v ollama:/root/ollama -p 11434:11434 --name ollama ollama/ollama
這里采用linux主機運行所以使用僅cpu運行,如需使用gpu運行可以參考: https://ollama.cadn.net.cn/docker.html
通過ollama安裝模型: llama3.2
下載模型:
docker exec -it ollama ollama run llama3.2
拉取過程取決網速.
上面的模型下載成功之后,會自動進入命令行的對話界面可以進行對話,
測試為小模型,模型的準確性和性能比較差強人意.目的是為了測試跑通整個流程
以上就是通過docker部署完成了
api調用
部署地址: 10.155.252.193
查詢當前模型列表命令:
# 在部署主機上執行命令
curl http://localhost:11434/api/tags
使用Python調用api
# -*- coding: utf-8 -*-
"""
-------------------------------------------------
@ File : lear
@ Author :wuchangping
@ Date :2025/4/22 15:16
@ Description:xxx
-------------------------------------------------
"""
import requests
import json
import time## 構建調用主函數
def send_request(prompt):response = requests.post("http://10.155.252.193:11434/api/generate",json={"model": "llama3.2:1b", "prompt": prompt, "stream": True},stream=True)for line in response.iter_lines():if line:data = json.loads(line.decode("utf-8"))full_text = data.get("response", "")for char in full_text:print(char, end="", flush=True)time.sleep(0.01) # 模擬逐字輸出的延遲# print(data.get("response", ""), end="", flush=True)## 傳遞參數模塊
## 這里讓他去讀取日志文件內容
def analyse():with open("log" ,"r",encoding='UTF-8') as file:log_content=file.read()#構建提示詞prompt = f"""請分析以下日志文件內容:- 統計請求的客戶端ip和分別對應的數量- 統計響應碼和數量日志內容:{log_content}"""send_request(prompt)if __name__ == '__main__':analyse()
模型的性能
主機的cpu使用情況:
參考文檔:
https://blog.csdn.net/weixin_40280870/article/details/145300048
https://blog.csdn.net/weixin_48953586/article/details/145597723
https://ollama.cadn.net.cn/docker.html