.with_structured_output() 메소드는 모델 응답을 구조화된 형식으로 처리할 수 있게 하여 API 개발에서 더 직관적이고 안정적인 구현을 가능하도록 합니다.
.with_structured_output()은 OpenAI 모델이 출력하는 데이터를 특정 형식(Schema)으로 구조화할 수 있도록 도와주는 메소드입니다. 이를 통해 응답 데이터가 예상한 형식을 벗어나지 않도록 강제할 수 있습니다.
from pydantic import BaseModel
from typing import List
class AnalyzeResponse(BaseModel):
sentiment_score: str
scores: List[str]
keywords: List[str]
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model_name="gpt-4",
temperature=0
).with_structured_output(AnalyzeResponse)
from langchain_core.prompts import load_prompt
prompt = load_prompt("./prompts/analyze_prompt.yaml")
chain = prompt | llm
response = chain.invoke({"document": ["OpenAI 정말 대단하네"]})
print(response)
>>
{
"sentiment_score": "0.6",
"scores": ["0.9", "0.7", "0.8"],
"keywords": ["OpenAI", "정말", "대단하네"]
}