강사 라이브러리 탐색: 구조화되지 않은 데이터 구조화(및 그 과정에서 재미있는 점)

Mary-Kate Olsen
풀어 주다: 2024-11-24 15:36:44
원래의
218명이 탐색했습니다.

Exploring the Instructor Library: Structuring Unstructured Data (and Some Fun along the Way)

최근 강사 라이브러리를 우연히 발견했는데, 꽤 감동받았다고 해야 할까요. 구조화되지 않은 데이터를 구조화한다는 개념은 강력하면서도 약간 마술적이라고 감히 말할 수 있습니다. 여기저기에 있는 데이터를 가져와서 어떻게든 그것에 질서를 부여할 수 있다는 생각이 바로 제 마법입니다.

그런데… 정확히 어떻게 작동하나요?

그것을 알아보기 위해 이 라이브러리의 내부를 파헤치는 데 시간을 보냈고, 이 라이브러리의 마법의 대부분을 담당하는 두 명의 핵심 플레이어가 배후에 있다는 사실을 발견했습니다.

플레이어를 만나보세요: Pydantic과 멋진 프롬프트

import instructor
from pydantic import BaseModel
from openai import OpenAI

로그인 후 복사
로그인 후 복사

Python의 데이터 유효성 검사 및 설정 관리에 익숙하신 분이라면 아마도 Pydantic에 대해 들어보셨을 것입니다. 그렇지 않다면... 음, 버클을 채우세요! 데이터 구조를 정의한 다음 들어오는 데이터가 해당 구조와 일치하는지 실시간으로 확인할 수 있는 놀라운 라이브러리입니다. 올바른 데이터만 들어오는지 확인하는 멋진 클럽의 경비원이라고 생각해보세요.

또 다른 훌륭한 도구인 FastAPI는 Pydantic을 훌륭하게 활용하여 API를 통해 전달되는 데이터가 올바른 형식인지 확인합니다. 그렇다면 다음 단계는 무엇입니까? 이제 구조를 정의했으므로 LLM(예: OpenAI의 GPT)이 이를 따르도록 하려면 어떻게 해야 할까요? 흠...

가설 1: Pydantic의 직렬화

제 첫 번째 가설은 Pydantic이 일종의 직렬화를 허용할 수 있다는 것입니다. 즉, 데이터 구조를 LLM이 쉽게 이해하고 사용할 수 있는 구조로 변환하는 것입니다. 그리고 알고보니 제 생각은 틀리지 않았습니다.

Pydantic을 사용하면 다음 방법을 사용하여 데이터를 사전으로 직렬화할 수 있습니다.

model.model_dump(...)  # Dumps the model into a dictionary
로그인 후 복사

이 방법은 Pydantic 모델을 사전으로 재귀적으로 변환한 다음 처리를 위해 LLM에 공급할 수 있습니다. 지금까지는 너무 좋았습니다. 그런데 더 흥미로운 사실을 발견했습니다.

가설 2: JSON 스키마 생성

좋아지고 있어요. Pydantic은 데이터를 사전으로 변환할 뿐만 아니라 모델에 대한 JSON 스키마를 생성할 수도 있습니다. 이제 LLM이 따르기를 원하는 구조의 청사진이 생겼기 때문에 이것이 핵심입니다.

여기서 정말 흥미가 생기기 시작했습니다.

# Generate a JSON schema for a Pydantic model
response_model.model_json_schema()
로그인 후 복사

빙고! 이제 데이터가 어떻게 표시되어야 하는지를 정확하게 정의하는 명확한 스키마가 생겼습니다. 이는 LLM에 보낼 수 있는 청사진이므로 출력 구성 방법을 정확히 알고 있습니다.

모든 것을 하나로 모으기

import instructor
from pydantic import BaseModel
from openai import OpenAI

로그인 후 복사
로그인 후 복사

여기서 라이브러리는 스키마를 LLM에 전달하여 해당 구조에 맞는 데이터를 반환하도록 요청합니다. 메시지는 명확합니다. "Hey LLM, 출력을 생성할 때 이 스키마를 존중하세요." 이는 LLM에게 자세한 지도를 제공하고 "이 지침을 정확히 따르세요"라고 말하는 것과 같습니다.

함께 해주셔서 감사합니다

이 모든 조사를 마친 후에 저는 이제 확신합니다. Pydantic의 직렬화 및 JSON 스키마 생성 덕분에 강사 라이브러리가 구조화된 데이터 형식을 따르는 LLM을 얻을 수 있게 되었습니다.

재미있고 약간 복잡한 조사를 끝까지 함께해주셔서 감사합니다. Python 라이브러리의 도움과 약간의 창의적인 자극으로 구조화되지 않은 데이터를 길들일 수 있다는 것을 누가 알았겠습니까?

위 내용은 강사 라이브러리 탐색: 구조화되지 않은 데이터 구조화(및 그 과정에서 재미있는 점)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿