Pydantic
Python에서 데이터를 검증하고 관리하기 위한 라이브러리
데이터의 구조를 정의하는 클래스 BaseModel, 설정을 관리하는 클래스 BaseSettings가 있다.
BaseModel
Pydantic에서 제공하는 부모클래스
request와 response데이터의 구조 schema를 정의하기 위해 사용한다. Schema란 데이터의 설계도.
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
BaseModel을 사용하면 FastAPI가 요청데이터를 검증, 자료형 확인, json데이터를 python 객체로 변환, python객체를 json으로 변환하여 응답 반환, swqgger ui 에서 api문서를 자동생성해준다.
Field()
BaseModel의 각 필드에 대한 추가정보와 검증 조건을 설정하는 함수
from pydantic import BaseModel, Field
class User(BaseModel):
age: int = Field(
ge=0,
le=120
)
- description 필드 설명
name: str = Field(
description="사용자 이름"
)
- example 예시데이터
name: str = Field(
example="홍길동"
)
- default 기본값
temperature: float = Field(
default=0.7
)
- ge / gt 숫자의 최소값
score: int = Field(ge=0)
score: int = Field(gt=0)
- le / lt 숫자의 최대값을 제한
score: int = Field(le=100)
- min_length / max_length 문자열 길이를 제한
password: str = Field(
min_length=8,
max_length=20
)
- alias JSON에서 사용하는 이름을 변경
class User(BaseModel):
user_name: str = Field(alias="username")
basemodel과 fiield를 함께 사용하는 예시
from pydantic import BaseModel, Field
class LLMRequest(BaseModel):
prompt: str = Field(
description="사용자가 입력한 질문",
example="파이썬을 설명해줘"
)
temperature: float = Field(
default=0.7,
ge=0,
le=2,
description="창의성 조절 값"
)
top_p: float = Field(
default=0.95,
ge=0,
le=1
)
max_output_tokens: int = Field(
default=800,
ge=1,
le=8192
)'이론' 카테고리의 다른 글
| ANN 알고리즘이란? HNSW, IVF, PQ, DiskANN (0) | 2026.07.08 |
|---|---|
| BaseModel과 BaseSettings (feat.Pydantic) (0) | 2026.07.07 |
| Chatbot이란? (feat.openai chatgpt) (0) | 2026.07.07 |
| openai api란? api_key, 예시코드, web_search, File Search, Code Interpreter, Function Calling, Remote MCP, Streaming, Agents (0) | 2026.07.07 |
| 시스템 지시 system instruction: 모델에게의 배역 설명서 (0) | 2026.07.06 |