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

ollama介绍

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

Llama 3

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

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

安装

pip install ollama

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

用法

import ollamaresponse = ollama.chat(model='llama2', messages=[ { 'role': 'user', 'content': 'Why is the sky blue?', },])print(response['message']['content'])

流式响应

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

import ollama stream = 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 llama2 SYSTEM You are mario from super mario bros. ''' ollama.create(model='example', modelfile=modelfile)

复制

ollama.copy('llama2', 'user/llama2')

删除

ollama.delete('llama2') Pull ollama.pull('llama2') push ollama.push('user/llama2')

嵌入

ollama.embeddings(model='llama2', prompt='The sky is blue because of rayleigh scattering')

定制客户端

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

  • host:要连接的 Ollama 主机
  • timeout: 请求超时时间

from ollama import Client client = Client(host='http://localhost:11434') response = client.chat(model='llama2', messages=[ { 'role': 'user', 'content': 'Why is the sky blue?', }, ])

异步客户端

import asyncio from ollama import AsyncClient async 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 asyncio from ollama import AsyncClient async 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)

相关推荐
StarPrayers.6 分钟前
Binary Classification& sigmoid 函数的逻辑回归&Decision Boundary
人工智能·分类·数据挖掘
渡我白衣11 分钟前
C++:链接的两难 —— ODR中的强与弱符号机制
开发语言·c++·人工智能·深度学习·网络协议·算法·机器学习
大模型真好玩13 分钟前
LangChain1.0速通指南(一)——LangChain1.0核心升级
人工智能·agent·mcp
私人珍藏库15 分钟前
Parallels Desktop 26.1.1 for Mac 秋叶QiuChenly中文解锁直装版,最好用的macOS虚拟机
人工智能
程序员大雄学编程31 分钟前
用Python来学微积分23-微分中值定理
人工智能·python·数学·微积分
GMICLOUD34 分钟前
网易科技专访 GMI Cloud 创始人&CEO Alex Yeh:以“产品+布局+服务”构建全球竞争力
人工智能·科技·ai·gpu算力·agi·ai应用·ai基础设施
wwlsm_zql38 分钟前
石头科技专利创新:清洁机器人维护简化,效率升级
人工智能·科技·microsoft·机器人
luoganttcc41 分钟前
加快高水平科技自立自强,引领发展新质生产力 <十五五 规划节选>
大数据·人工智能·科技
夕阳染色的坡道1 小时前
LineSlam线特征投影融合(Fuse) 中pML->GetLineNormalVector()的理解代码理解
人工智能·opencv·计算机视觉
rengang661 小时前
502-Spring AI Alibaba React Agent 功能完整案例
人工智能·spring·agent·react·spring ai·ai应用编程