문의 한 건이 들어오면 분류(dict)와 회신 초안(str)을 동시에 만드는 체인입니다. Pydantic 스키마가 형식 지침이 되어 프롬프트에 끼고, 모델이 쓴 JSON 글자가 파서를 거쳐 dict 가 되는 과정, 그리고 RunnableParallel 이 같은 입력을 두 체인에 나눠 넣고 결과를 합치는 과정을 한 단계씩 따라갑니다. 모델이 쓰는 값은 실행마다 달라서 보라색 자리 표시로만 보여 줍니다.
점선 상자가 RunnableParallel 입니다. 위 갈래(routing)는 프로그램이 읽을 dict 를, 아래 갈래(draft)는 사람이 읽을 글을 만듭니다. 보라색 점선은 Pydantic 스키마가 파서를 거쳐 형식 지침으로 프롬프트에 끼는 길입니다. my_inquiry_chain.py 는 같은 모양에서 위 갈래의 이름표만 ticket 으로 바꿨습니다.
result["routing"]["department"] 같은 곳에서 KeyError 가 납니다. JSON 자체가 깨지면 OutputParserException 입니다. 값의 범위까지 묶으려면 3일차처럼 Literal 타입과 with_structured_output() 을 씁니다.{ } 가 빈칸 표시로 읽혀 버립니다. 이 코드처럼 {format_instructions} 빈칸을 두고 partial_variables 로 값을 넣어야 안전합니다.routing, 응용판은 ticket 입니다. 이름을 바꾸면 결과를 꺼내는 코드도 함께 바꿔야 합니다.day1_practice/structured_output.pyPydantic 스키마와 JsonOutputParser 로 사내 문의 분석 결과를 dict 로 받습니다.day1_practice/inquiry_chain.py분류 체인(dict)과 회신 초안 체인(str)을 RunnableParallel 로 묶은 기본형입니다.day1_practice/my_inquiry_chain.py같은 구조를 DevOps 도구 운영팀 접수 창구로 바꾼 응용판입니다. 칸 넷, 입력 여섯 개.