Instructor
Instructor
LiteLLM을 jxnl의 instructor 라이브러리와 결합하면 보다 견고한 구조화된 출력을 얻을 수 있어요. 출력은 자동으로 Pydantic 타입으로 검증되고, 검증 오류는 모델에 다시 제공되어 재시도에서 성공 응답을 얻을 확률을 높여줍니다.
출처: 문서
본문
사용법 (동기)
import instructorfrom litellm import completionfrom pydantic import BaseModelclient = instructor.from_litellm(completion)class User(BaseModel): name: str age: intdef extract_user(text: str): return client.chat.completions.create(
model="gpt-5.6-luna",
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 == 25print(f"{user=}")
사용법 (비동기)
import asyncioimport instructorfrom litellm import acompletionfrom pydantic import BaseModelclient = instructor.from_litellm(acompletion)class User(BaseModel): name: str age: intasync def extract(text: str) -> User: return await client.chat.completions.create(
model="gpt-5.6-luna",
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 == 30print(f"{user=}")