메인 콘텐츠로 건너뛰기
Colab에서 열기 Instructor는 LLM에서 JSON과 같은 구조화된 데이터를 쉽게 얻을 수 있게 해주는 경량 라이브러리입니다. 이 가이드에서는 Weave로 Instructor 호출을 트레이스하여 구조화된 추출을 디버그하고, Pydantic 검증을 캡처하고, 재시도 로직을 검사하는 방법을 보여줍니다.

트레이싱

개발 중이든 프로덕션이든, 언어 모델 애플리케이션의 트레이스를 한곳에 중앙 집중식으로 저장하는 것이 중요합니다. 이러한 트레이스는 디버깅에 유용할 뿐 아니라, 애플리케이션 개선에 도움이 되는 데이터셋으로도 활용할 수 있습니다. Weave는 Instructor의 트레이스를 자동으로 캡처합니다. 추적을 시작하려면 weave.init(project_name="[YOUR-WANDB-PROJECT-NAME]")를 호출한 다음, 평소처럼 라이브러리를 사용하세요.

직접 만든 ops 추적하기

함수를 @weave.op로 감싸면 입력, 출력, 앱 로직 캡처가 시작되어 앱에서 데이터가 어떻게 흐르는지 디버그할 수 있습니다. ops를 깊게 중첩해 추적하려는 함수들의 트리를 구성할 수 있습니다. 또한 실험하는 동안 코드 버전 관리도 자동으로 시작되어 Git에 커밋되지 않은 임시 세부 정보까지 캡처합니다. @weave.op으로 데코레이트된 함수를 만드세요. 다음 예시에서 extract_person 함수는 @weave.op로 감싼 metric 함수입니다. 이를 통해 OpenAI chat completion call과 같은 중간 step를 확인할 수 있습니다.

Model로 더 쉽게 실험하기

구성 요소가 많아질수록 실험을 체계적으로 정리하기가 어렵습니다. Model 클래스를 사용하면 system 프롬프트나 사용 중인 모델처럼 앱 실험의 세부 사항을 캡처하고 정리할 수 있습니다. 이렇게 하면 앱의 여러 반복 버전을 더 쉽게 정리하고 비교할 수 있습니다. 코드를 버전 관리하고 입력과 출력을 캡처하는 것에 더해, Model은 애플리케이션의 동작을 제어하는 구조화된 파라미터도 캡처하므로 어떤 파라미터가 가장 잘 작동했는지 찾을 수 있습니다. 또한 Weave Models를 서빙평가와 함께 사용할 수도 있습니다. 다음 예시에서는 PersonExtractor를 실험해 볼 수 있습니다. 이 항목들 중 하나를 변경할 때마다 PersonExtractor의 새 version이 생성됩니다.

Weave Model 서빙하기

weave.Model을 저장한 후에는 이를 FastAPI 엔드포인트로 서빙하여 노트북 외부에서 테스트하거나 다른 애플리케이션과 통합할 수 있습니다. weave.Model 객체를 가리키는 weave 레퍼런스가 있으면 FastAPI 서버를 실행하고 서빙할 수 있습니다. 모델을 서빙하려면 터미널에서 다음 명령어를 실행하세요: