跳至主要內容

Instructor

將 LiteLLM 與 jxnl 的 instructor 函式庫 結合,以取得更穩健的結構化輸出。輸出會自動驗證為 Pydantic 類型,且驗證錯誤會回傳給模型,以提高重試時成功回應的機會。

用法(同步)

import instructor
from litellm import completion
from pydantic import BaseModel


client = instructor.from_litellm(completion)


class User(BaseModel):
name: str
age: int


def extract_user(text: str):
return client.chat.completions.create(
model="gpt-4o-mini",
response_model=User,
messages=[
{"role": "user", "content": text},
],
max_retries=3,
)

user = extract_user("Jason is 25 years old")

assert isinstance(user, User)
assert user.name == "Jason"
assert user.age == 25
print(f"{user=}")

用法(非同步)

import asyncio

import instructor
from litellm import acompletion
from pydantic import BaseModel


client = instructor.from_litellm(acompletion)


class User(BaseModel):
name: str
age: int


async def extract(text: str) -> User:
return await client.chat.completions.create(
model="gpt-4o-mini",
response_model=User,
messages=[
{"role": "user", "content": text},
],
max_retries=3,
)

user = asyncio.run(extract("Alice is 30 years old"))

assert isinstance(user, User)
assert user.name == "Alice"
assert user.age == 30
print(f"{user=}")
🚅
LiteLLM Enterprise
為正式環境打造的 SSO/SAML、稽核記錄、支出追蹤、多團隊管理與防護欄。
深入瞭解 →