ollama python
v0.4.4
ไลบรารี Ollama Python มอบวิธีที่ง่ายที่สุดในการรวมโปรเจ็กต์ Python 3.8+ เข้ากับ Ollama
ollama pull <model>
เช่น ollama pull llama3.2
pip install ollama
from ollama import chat
from ollama import ChatResponse
response : ChatResponse = chat ( model = 'llama3.2' , messages = [
{
'role' : 'user' ,
'content' : 'Why is the sky blue?' ,
},
])
print ( response [ 'message' ][ 'content' ])
# or access fields directly from the response object
print ( response . message . content )
ดู _types.py สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทการตอบกลับ
สามารถเปิดใช้งานการสตรีมการตอบสนองได้โดยการตั้งค่า stream=True
from ollama import chat
stream = chat (
model = 'llama3.2' ,
messages = [{ 'role' : 'user' , 'content' : 'Why is the sky blue?' }],
stream = True ,
)
for chunk in stream :
print ( chunk [ 'message' ][ 'content' ], end = '' , flush = True )
ไคลเอนต์แบบกำหนดเองสามารถสร้างขึ้นได้โดยการสร้างอินสแตนซ์ Client
หรือ AsyncClient
จาก ollama
อาร์กิวเมนต์คำหลักพิเศษทั้งหมดจะถูกส่งผ่านไปยัง httpx.Client
from ollama import Client
client = Client (
host = 'http://localhost:11434' ,
headers = { 'x-some-header' : 'some-value' }
)
response = client . chat ( model = 'llama3.2' , messages = [
{
'role' : 'user' ,
'content' : 'Why is the sky blue?' ,
},
])
คลาส AsyncClient
ถูกใช้เพื่อสร้างคำขอแบบอะซิงโครนัส สามารถกำหนดค่าด้วยฟิลด์เดียวกันกับคลาส Client
import asyncio
from ollama import AsyncClient
async def chat ():
message = { 'role' : 'user' , 'content' : 'Why is the sky blue?' }
response = await AsyncClient (). chat ( model = 'llama3.2' , 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 = 'llama3.2' , messages = [ message ], stream = True ):
print ( part [ 'message' ][ 'content' ], end = '' , flush = True )
asyncio . run ( chat ())
API ของไลบรารี Ollama Python ได้รับการออกแบบโดยใช้ Ollama REST API
ollama . chat ( model = 'llama3.2' , messages = [{ 'role' : 'user' , 'content' : 'Why is the sky blue?' }])
ollama . generate ( model = 'llama3.2' , prompt = 'Why is the sky blue?' )
ollama . list ()
ollama . show ( 'llama3.2' )
modelfile = '''
FROM llama3.2
SYSTEM You are mario from super mario bros.
'''
ollama . create ( model = 'example' , modelfile = modelfile )
ollama . copy ( 'llama3.2' , 'user/llama3.2' )
ollama . delete ( 'llama3.2' )
ollama . pull ( 'llama3.2' )
ollama . push ( 'user/llama3.2' )
ollama . embed ( model = 'llama3.2' , input = 'The sky is blue because of rayleigh scattering' )
ollama . embed ( model = 'llama3.2' , input = [ 'The sky is blue because of rayleigh scattering' , 'Grass is green because of chlorophyll' ])
ollama . ps ()
ข้อผิดพลาดจะเกิดขึ้นหากคำขอแสดงสถานะข้อผิดพลาดหรือหากตรวจพบข้อผิดพลาดขณะสตรีม
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 )