Ollama Python 库
Ollama Python 库为将 Python 3.8+ 项目与 Ollama 集成提供了最简单的方式。
安装
pip install ollama
使用方法
import ollama
response = ollama.chat(model='llama3.1', messages=[
{
'role': 'user',
'content': '为什么天空是蓝色的?',
},
])
print(response['message']['content'])
流式响应
通过设置 stream=True
可以启用响应流,这会修改函数调用以返回一个 Python 生成器,其中每个部分都是流中的一个对象。
import ollama
stream = ollama.chat(
model='llama3.1',
messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}],
stream=True,
)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
API
Ollama Python 库的 API 是基于 Ollama REST API 设计的
聊天
ollama.chat(model='llama3.1', messages=[{'role': 'user', 'content': '为什么天空是蓝色的?'}])
生成
ollama.generate(model='llama3.1', prompt='为什么天空是蓝色的?')
列表
ollama.list()
显示
ollama.show('llama3.1')
创建
modelfile='''
FROM llama3.1
SYSTEM 你是超级马里奥兄弟中的马里奥。
'''
ollama.create(model='example', modelfile=modelfile)
复制
ollama.copy('llama3.1', 'user/llama3.1')
删除
ollama.delete('llama3.1')
拉取
ollama.pull('llama3.1')
推送
ollama.push('user/llama3.1')
嵌入
ollama.embeddings(model='llama3.1', prompt='天空是蓝色的,这是因为瑞利散射')
Ps
ollama.ps()
自定义客户端
可以使用以下字段创建自定义客户端:
host
:要连接的 Ollama 主机timeout
:请求的超时时间
from ollama import Client
client = Client(host='http://localhost:11434')
response = client.chat(model='llama3.1', messages=[
{
'role': 'user',
'content': '为什么天空是蓝色的?',
},
])
异步客户端
import asyncio
from ollama import AsyncClient
async def chat():
message = {'role': 'user', 'content': '为什么天空是蓝色的?'}
response = await AsyncClient().chat(model='llama3.1', messages=[message])
asyncio.run(chat())
设置 stream=True
会修改函数以返回一个 Python 异步生成器:
import asyncio
from ollama import AsyncClient
async def chat():
message = {'role': 'user', 'content': '为什么天空是蓝色的?'}
async for part in await AsyncClient().chat(model='llama3.1', messages=[message], stream=True):
print(part['message']['content'], end='', flush=True)
asyncio.run(chat())
错误
如果请求返回错误状态或在流式传输过程中检测到错误,将会引发错误。
model = 'does-not-yet-exist'
try:
ollama.chat(model)
except ollama.ResponseError as e:
print('错误:', e.error)
if e.status_code == 404:
ollama.pull(model)