examples/6_field_validation.py
from langchain_core.tools import tool
from pydantic import BaseModel, Field
class SentimentInput(BaseModel):
article: str = Field(
description="감성 분석할 글",
min_length=10, # 최소 10자 이상
)
language: str = Field(
description="결과 언어",
default="한국어", # 기본값
)
@tool(args_schema=SentimentInput)
def analyze_sentiment(article: str, language: str = "한국어") -> str:
"""글의 감성(긍정/부정/중립)을 분석합니다."""
return f"{language} 감성 분석 결과"
# 기본값이 있는 입력값은 생략 가능
print(analyze_sentiment.invoke({"article": "국내 A사가 AI 칩 개발에 성공..."}))
# min_length=10 조건을 만족하지 않으면 검증 오류 발생
try:
print(analyze_sentiment.invoke({"article": "짧음"}))
except Exception as e:
print(f"검증 오류: {e}")