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=}")

더 알아보기 (Learn more)