职贝云数AI新零售门户

标题: Python集成Ollama:AI大模型的日常实际 [打印本页]

作者: amgGWumZq    时间: 2025-2-11 18:20
标题: Python集成Ollama:AI大模型的日常实际
简介

Ollama 是一个开源项目,它允许你在本地运转大型言语模型(LLMs)。它提供了简单易用的 API 接口,方便开发者在本人的运用程序中集成各种盛行的言语模型,如 Llama、DeepSeek 系列等,从而完成自然言语处理相关的功能,无需依赖云服务。

Python 是一种广泛运用的编程言语,具有丰富的库和简约的语法。经过 Python 对接 Ollama,开发者可以应用 Python 的优势,如数据处理、机器学习等,结合 Ollama 提供的弱小言语模型才能,疾速开发出各种自然言语处理运用,如聊天机器人、文本生成、问答系统等。
环境预备

安装 Ollama

Ollama 的安装大家可以去其官网下载对应平台架构的软件停止下载双击安装即可:

https://ollama.com/

(, 下载次数: 0)

根据提示安装完成之后,我们可以在终端输入下面的命令来查看能否工作正常:
ollama -v

(, 下载次数: 0)

Ollama 提供了非常多的大模型可供下载和运用:

https://ollama.com/search

(, 下载次数: 0)

以最近抢手的DeepSeek R1大模型来举例:

https://ollama.com/library/deepseek-r1

经过下图来选择需求的模型,然后担任右侧的命令在终端执行即可下载并运转该模型:

(, 下载次数: 0)

ollama run deepseek-r1:1.5b

(, 下载次数: 0)

安装 Python

Python 的安装就不再详细的赘述了,前往下面的地址选择本人的架构停止下载安装即可。

https://www.python.org/

(, 下载次数: 0)

对接方式

有两种方式可以停止对接,第一种方式比较敌对,直接去调用Ollama的API,这样不只可以在Python中与Ollama交互也可以运用其他言语停止交互。第二种方式则是运用Ollama Python 库。

Ollama Python 库是一个用于与本地运转的 Ollama 大言语模型(LLM)停止交互的工具。它提供了简单、高效的 API 接口,使得开发者可以在 Python 环境中轻松地调用和管理本地模型,执行各种自然言语处理义务。
调用Ollama API

我们先看一下如何调用Ollama的API来停止简单的交互,在运用API之前,我们需求确保Ollama在后台运转。默许状况下Ollama服务会运转在http://localhost:11434上。

1、生成文本(Generate Text)

2、聊天(chat)

3、流式呼应(Streaming Response)

Ollama 支持流式呼应,适用于实时生成文本的场景。在央求中设置 "stream": true,API 会逐行前往生成的文本。每行前往一个 JSON 对象,例如:
{
  "response": "<partial-text>", // 部分生成的文本
  "done": false // 能否完成
}

示例:
curl http://localhost:11434/api/generate -d'{
  "model": "deepseek-r1:1.5b",
  "prompt": "你好!",
  "stream": true
}'

4、列出本地模型(List Models)

5、拉取模型(Pull Model)

6、删除模型(Delete Model)
运用Ollama Python库

运用以下命令安装 Ollama Python 库:
pip install ollama

1、聊天功能

经过 ollama.chat() 方法与模型停止对话交互。例如:
from ollama import chat

response = chat(
    model='deepseek-r1:1.5b',
    messages=[
{'role': 'user', 'content': '你好,你是DeepSeek吗?'}
])
print(response['message']['content'])

(, 下载次数: 0)

此外,支持流式呼应,经过设置 stream=True,可以逐渐获取模型的输入:
from ollama import chat

stream = chat(
    model='deepseek-r1:1.5b',
    messages=[
{'role': 'user',
'content': '你好'}
],
    stream=True)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)

(, 下载次数: 0)

2、文本生成

运用 ollama.generate() 方法根据提示生成文本。例如:
import ollama

response = ollama.generate(
    model='deepseek-r1:1.5b',
    prompt='请引见 Python 言语的特点。'
)
print(response)

3、管理模型

以下的几种函数可以用于操作模型:
# 列出可用的模型
models = ollama.list()

# 显示模型信息
info = ollama.show('deepseek-r1:1.5b')

# 创建自定义模型
modelfile = '''
FROM deepseek-r1:1.5b
SYSTEM 你是青檬小栈御用智能大模型。
'''
ollama.create(model='bystart', modelfile=modelfile)

# 复制模型
ollama.copy('deepseek-r1:1.5b', 'deepseek-r1:1.5b_copy')

# 删除模型
ollama.delete('deepseek-r1:1.5b_copy')

4、自定义客户端

可以经过 Client 类创建自定义客户端,以满足特定需求,例如设置自定义的央求头或指定 Ollama 服务的地址:
from ollama import Client

client = Client(
    host='http://localhost:11434',
    headers={'x-some-header': 'some-value'}
)
response = client.chat(
    model='deepseek-r1:1.5b',
    messages=[
{
'role': 'user',
'content': '你好!'}
])
print(response['message']['content'])

5、异步操作

Ollama Python 库支持异步操作,适用于需求处理多个并发央求的运用。例如,异步聊天:
import asyncio
from ollama import AsyncClient

async def chat():
    message = {
'role': 'user',
'content': '你好!'
}
    response = await (AsyncClient()
.chat(
        model='deepseek-r1:1.5b',
        messages=[message]
))
print(response['message']['content'])
asyncio.run(chat())

6、多模态输入

支持多模态输入,例如在聊天中包含图像:
import ollama

with open('image.png', 'rb') as file:
    response = ollama.chat(
        model='deepseek-r1:1.5b',
        messages=[
{
'role': 'user',
'content': '这张图片有什么奇异的地方?',
'images': [file.read()],
},
],
)
print(response['message']['content'])

7、结构化输入

支持以 JSON、YAML 等格式前往结构化数据,便于程序解析和运用:
import ollama

response = ollama.chat(
    model='deepseek-r1:1.5b',
    messages=[
{
'role': 'user',
'content': '请引见美国的首都、人口、占地面积信息,并以 JSON 格式前往。'
}
],
format='json',
    options={'temperature': 0},
)
print(response['message']['content'])
处理Ollama API无法穿透

默许状况下,Ollama 服务仅监听本地地址(127.0.0.1),无法从其他设备访问。要允许局域网内的设备访问 Ollama 服务,需求将 OLLAMA_HOST 环境变量设置为 0.0.0.0,并设置 OLLAMA_ORIGINS 为 *。

windows 用户可以在终端输入以下命令:
setx OLLAMA_HOST "0.0.0.0"
setx OLLAMA_ORIGINS "*"

Mac 用户可以执行:
launchctl setenv OLLAMA_HOST "0.0.0.0"
launchctl setenv OLLAMA_ORIGINS "*"

对于 Linux 用户且 llama 作为 systemd 服务运转,则需编辑服务配置:
sudo systemctl edit ollama.service

在 [Service] 部分添加以下内容:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"

重新加载 systemd 并重启 Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama

欢迎大家关注我的公众号,将会为大家引荐更优质的内容!




欢迎光临 职贝云数AI新零售门户 (https://www.taojin168.com/cloud/) Powered by Discuz! X3.5