首页 > Python资料 博客日记
python调用ollama库详解
2025-01-12 12:00:07Python资料围观18次
这篇文章介绍了python调用ollama库详解,分享给大家做个参考,收藏Python资料网收获更多编程知识
0 准备
1)准备Ollama软件(注意:两个不是同一个东西)
详见上次的文章 Ollama通过gguf文件加载AI模型(补充:关于Ollama加载AI模型的补充)
2)准备ollama库
如果您还未安装ollama库,请使用pip安装:
pip install ollama
#1 ollama库的基本使用
import ollama
# 普通输出(请先按照准备工作中的要求安装模型)
back = ollama.chat(model="你的模型名称",messages=[{"role": "user","content": "生成一句简短的话"}],
stream = False, # 是否流式输出
)
print(back)
#流式输出
back = ollama.chat(model="你的模型名称",messages=[{"role": "user","content": "生成一句简短的话"}],
stream = True, # 是否流式输出
)
for i in back:
print(back,end = "")
#2 ollama库的进阶使用
1)options参数设置
import ollama
back = ollama.chat(model="你的模型名称",messages=[{"role": "user","content": "生成一句简短的话"}],
options = {"temperature":10, # 模型温度
"num_ctx":4096 # 返回的最大token数
} # ...
stream = True, # 是否流式输出
)
for i in back:
print(back,end = "")
参数 | 描述 | 值的类型 | 示例用法 |
---|---|---|---|
mirostat | 启用 Mirostat 采样以控制困惑度。(默认值:0、0 = 禁用、1 = Mirostat、2 = Mirostat 2.0) | int | mirostat 0 |
mirostat_eta | 影响算法响应生成文本的反馈的速度。较低的学习率将导致较慢的调整,而较高的学习率将使算法的响应速度更快。(默认值:0.1) | float | mirostat_eta 0.1 |
mirostat_tau | 控制输出的连贯性和多样性之间的平衡。较低的值将导致文本更集中、更连贯。(默认值:5.0) | float | mirostat_tau 5.0 |
num_ctx | 设置用于生成下一个标记的上下文窗口的大小。(默认值:2048) | int | num_ctx 4096 |
num_gqa | transformer 层中 GQA 组的数量。某些模型需要,例如,对于 llama2:70b,它是 8 | int | num_gqa 1 |
num_gpu | 要发送到 GPU 的层数。在 macOS 上,默认为 1 表示启用 Metal 支持,默认为 0 表示禁用。 | int | num_gpu 50 |
num_thread | 设置计算期间要使用的线程数。默认情况下,Ollama 将检测此参数以获得最佳性能。建议将此值设置为系统具有的物理 CPU 内核数(而不是内核的逻辑数)。 | int | num_thread 8 |
repeat_last_n | 设置模型回溯多长时间以防止重复。(默认值:64,0 = 禁用,-1 = num_ctx) | int | repeat_last_n 64 |
repeat_penalty | 设置对重复项的惩罚强度。较高的值(例如 1.5)将更强烈地惩罚重复,而较低的值(例如 0.9)将更宽松。(默认值:1.1) | float | repeat_penalty 1.1 |
temperature | 模型的温度。提高温度会使模型更有创意地回答。(默认值:0.8) | float | temperature 0.7 |
seed | 设置用于生成的随机数种子。将此设置为特定数字将使模型为同一提示生成相同的文本。(默认值:0) | int | seed 42 |
stop | 设置要使用的停止序列。遇到此模式时,LLM 将停止生成文本并返回。可以通过在模型文件中指定多个单独的参数来设置多个停止模式。 | string | stop “AI assistant:” |
tfs_z | 无尾采样用于减少输出中可能性较小的标记的影响。较高的值(例如 2.0)将减少更多影响,而值 1.0 将禁用此设置。(默认值:1) | float | tfs_z 1 |
num_predict | 生成文本时要预测的最大令牌数。(默认值:128,-1 = 无限生成,-2 = 填充上下文) | int | num_predict 42 |
top_k | 降低产生无意义的可能性。较高的值(例如 100)将给出更多样化的答案,而较低的值(例如 10)将更保守。(默认值:40) | int | top_k 40 |
top_p | 与 top-k 一起使用。较高的值(例如 0.95)将导致文本更加多样化,而较低的值(例如 0.5)将生成更集中和保守的文本。(默认值:0.9) | float | top_p 0.9 |
20240829:
终于找到了官方释义:
docs/modelfile.md 的 ·OLLAMA/OLLAMA - Gitee.com
上面的已经改为了官方释义中的内容(翻译过)
2)返回的json对象处理
返回的json对象在没有问题的情况下应该是类似这种结构的:
1.无流式输出:
{
"model": "qwen_q2",
"created_at": "2024-08-26T04:36:19.6943135Z",
"response": "请问你有什么需要帮助的吗?",
"done": true,
"context": [1, 2, 3],
"total_duration": 5043500667,
"load_duration": 5025959,
"prompt_eval_count": 26,
"prompt_eval_duration": 325953000,
"eval_count": 290,
"eval_duration": 4709213000
}
2.流式输出(过程中)
{
'model': 'qwen_q2',
'created_at': '2024-08-26T04:40:30.6774372Z',
'message':{
'role': 'assistant',
'content': '我的'
},
'done': False
}
3.流式输出(输出完毕的最后一个)
{
'model': 'qwen_q2',
'created_at': '2024-08-26T04:44:04.4184675Z',
'message':
{
'role': 'assistant',
'content': ''
},
'done_reason': 'stop',
'done': True,
'total_duration': 13224925100,
'load_duration': 298635100,
'prompt_eval_count': 16,
'prompt_eval_duration': 4843681000,
'eval_count': 11,
'eval_duration': 8048190000
}
可以根据"done"的内容判断输出是否完成。
流式输出时可以在每次获得输出时记录时间,以计算实时响应速度。
不使用流式输出和使用流式输出时都可以在输出完毕后通过 ‘eval_count’ 和 ‘eval_duration’ 参数来计算这次对话中的平均响应速度(token/s)
制作不易,感谢大家的支持!、
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- 光流法结合深度学习神经网络的原理及应用(完整代码都有Python opencv)
- Python 图像处理进阶:特征提取与图像分类
- 大数据可视化分析-基于python的电影数据分析及可视化系统_9532dr50
- 【Python】入门(运算、输出、数据类型)
- 【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南
- 华为OD机试E卷 --第k个排列 --24年OD统一考试(Java & JS & Python & C & C++)
- Python已安装包在import时报错未找到的解决方法
- 【Python】自动化神器PyAutoGUI —告别手动操作,一键模拟鼠标键盘,玩转微信及各种软件自动化
- Pycharm连接SQL Sever(详细教程)
- Python编程练习题及解析(49题)
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Anaconda版本和Python版本对应关系(持续更新...)
- Python与PyTorch的版本对应
- Windows上安装 Python 环境并配置环境变量 (超详细教程)
- Python pyinstaller打包exe最完整教程