프로젝트 소개

Instructor는 대형 언어모델(LLM)에서 구조화된 데이터를 추출하는 과정을 단순화하기 위해 설계된 Python 라이브러리입니다. Pydantic와 통합되어 수동 JSON 파싱이나 에러 처리 없이 타입 안전하고 검증된 출력을 제공합니다. 개발자는 원하는 출력 구조를 나타내는 Pydantic 모델을 정의한 후 Instructor의 클라이언트 인터페이스에 전달하면, 라이브러리가 자동으로 스키마 생성, 응답 검증, 검증 실패 시 재시도 로직을 처리합니다. 이 라이브러리는 OpenAI, Anthropic, Google Gemini, Ollama, Groq 등 다양한 LLM 제공자를 지원하며 모두 일관된 API로 동작합니다. 생성 중에 부분 결과를 스트리밍하거나, 중첩 객체 추출, 유효하지 않은 출력에 대한 피드백과 함께 자동 재시도 등 고급 기능도 제공합니다. LangChain이나 LlamaIndex 같은 프레임워크에 비해 Instructor는 경량으로 설계되었으며, 구조화된 추출에만 집중합니다. 현재 OpenAI, Google, Microsoft, AWS의 팀을 포함해 10만 명 이상의 개발자와 기업에서 프로덕션 환경에서 사용되고 있으며, GitHub 별 10,000개 이상, 월간 다운로드 300만 개 이상을 기록하고 있습니다. Python 외에도 Instructor는 TypeScript, Ruby, Go, Elixir, Rust 공식 구현체를 제공합니다. 문서, 예제, 커뮤니티 지원은 웹사이트와 Discord 서버를 통해 이용할 수 있습니다. 보다 복잡한 에이전트 워크플로우에는 Instructor의 기반 위에 추가 도구와 관측 기능을 갖춘 PydanticAI를 권장합니다. pip, uv, Poetry를 통한 설치가 간편하며 복잡한 설정이 필요 없습니다. 모델만 정의하면 자연어 입력에서 구조화된 데이터를 신뢰성 있게 추출할 수 있습니다.