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