ollama-python-Python快速部署Llama3等大型语言模型最简单方法

科技研习看今朝 2024-05-01 08:58:21
ollama介绍

在本地启动并运行大型语言模型。运行Llama 3、Phi 3、Mistral、Gemma和其他型号。

Llama 3

Meta Llama 3 是 Meta Inc. 开发的一系列最先进的模型,提供8B和70B参数大小(预训练或指令调整)。

Llama 3 指令调整模型针对对话/聊天用例进行了微调和优化,并且在常见基准测试中优于许多可用的开源聊天模型。

安装pip install ollama用法import ollamaresponse = ollama.chat(model='llama2', messages=[ { 'role': 'user', 'content': 'Why is the sky blue?', },])print(response['message']['content'])流式响应

可以通过设置stream=True、修改函数调用以返回 Python 生成器来启用响应流,其中每个部分都是流中的一个对象。

import ollamastream = ollama.chat( model='llama2', messages=[{'role': 'user', 'content': 'Why is the sky blue?'}], stream=True,)for chunk in stream: print(chunk['message']['content'], end='', flush=True)应用程序编程接口

Ollama Python 库的 API 是围绕Ollama REST API设计的

聊天ollama.chat(model='llama2', messages=[{'role': 'user', 'content': 'Why is the sky blue?'}])新增ollama.generate(model='llama2', prompt='Why is the sky blue?')列表ollama.list()展示ollama.show('llama2')

创建modelfile='''FROM llama2SYSTEM You are mario from super mario bros.'''ollama.create(model='example', modelfile=modelfile)复制ollama.copy('llama2', 'user/llama2')删除ollama.delete('llama2')Pullollama.pull('llama2')pushollama.push('user/llama2')嵌入ollama.embeddings(model='llama2', prompt='The sky is blue because of rayleigh scattering')定制客户端

可以使用以下字段创建自定义客户端:

host:要连接的 Ollama 主机timeout: 请求超时时间from ollama import Clientclient = Client(host='http://localhost:11434')response = client.chat(model='llama2', messages=[ {'role': 'user','content': 'Why is the sky blue?', },])异步客户端import asynciofrom ollama import AsyncClientasync def chat(): message = {'role': 'user', 'content': 'Why is the sky blue?'} response = await AsyncClient().chat(model='llama2', messages=[message])asyncio.run(chat())

设置stream=True修改函数以返回 Python 异步生成器:

import asynciofrom ollama import AsyncClientasync def chat(): message = {'role': 'user', 'content': 'Why is the sky blue?'}async for part in await AsyncClient().chat(model='llama2', 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('Error:', e.error)if e.status_code == 404: ollama.pull(model)

高性价比GPU资源:https://www.ucloud.cn/site/active/gpu.html?ytag=gpu_wenzhang_0430_zhihu

0 阅读:0

科技研习看今朝

简介:感谢大家的关注