Spring 한국어
팔로우
Spring AI 2.0에서의 자기 수정 구조화 출력
대규모 언어 모델은 강력하지만 소프트웨어 통합을 위한 구조화된 데이터에는 어려움을 겪습니다. Spring AI의 구조화된 출력은 모델이 정의된 스키마를 준수하는 텍스트를 생성하도록 허용하여 이 간극을 메우며, 이는 타입이 지정된 객체로 파싱됩니다. Spring AI 2.0은 두 가지 주요 개선 사항을 도입합니다. 공급자 네이티브 구조화된 출력 및 자체 수정 스키마 유효성 검사입니다. 기존 코드는 변경되지 않은 기본값으로 인해 호환됩니다.구조화된 출력을 생성하기 위해 개발자는 Java record를 정의한 다음 .entity() 메서드를 사용하여 대상 유형을 지정합니다. 이 프로세스는 내부적으로 레코드에서 JSON 스키마를 생성하고, 이를 프롬프트에 추가하고, 모델의 JSON 응답을 원하는 객체로 다시 파싱합니다. Spring AI 2.0 이전에는 이 프로세스에 보장이 부족하여 모델이 스키마에서 벗어날 경우 잠재적인 파싱 오류가 발생했습니다..validateSchema() 스위치는 자체 수정 재시도 루프를 활성화하여 스키마에 대해 모델의 응답을 자동으로 유효성 검사하고 유효성 검사에 실패하면 특정 오류 피드백과 함께 프롬프트를 다시 발행합니다. 더 강력한 보장을 위해 .useProviderStructuredOutput()은 공급자별 API 기능을 활용하여 소스에서 스키마 준수를 강제합니다. 이렇게 하면 잘못된 응답이 처음부터 생성되지 않도록 하여 잘못된 출력을 최소화합니다.이 두 가지 기능은 최대 복원력을 위해 결합될 수 있으며, 공급자 네이티브 출력이 기본 제약 역할을 하고 스키마 유효성 검사가 대체 역할을 합니다. List 및 Map과 같은 제네릭 유형의 경우 간단한 Class 대신 ParameterizedTypeReference가 사용됩니다. .responseEntity() 메서드를 사용하면 파싱된 엔티티와 메타데이터를 위한 원시 ChatResponse 모두에 액세스할 수 있습니다.내장된 변환기가 불충분한 경우 사용자 지정 StructuredOutputConverter 구현을 사용하여 비표준 JSON 래핑 또는 YAML 또는 CSV와 같은 완전히 다른 형식을 처리할 수 있습니다. 이는 다양한 통합 요구에 대한 추가 유연성을 제공합니다.