ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
Building a Life-Saving AI: Automating Medical Response with LangGraph and Python ๐Ÿฅ
Dev.toDev.to
AI/ML

LangGraph ๊ธฐ๋ฐ˜ State Machine ๋„์ž…์„ ํ†ตํ•œ ๋น„์„ ํ˜• ์˜๋ฃŒ ์‘๋‹ต ์ž๋™ํ™” ์„ค๊ณ„

Building a Life-Saving AI: Automating Medical Response with LangGraph and Python ๐Ÿฅ

wellallyTech2026๋…„ 6์›” 6์ผ5๋ถ„intermediate

Context

๊ธฐ์กด LLM Chain์˜ ์„ ํ˜•์  ๊ตฌ์กฐ๋กœ๋Š” ๋ฃจํ”„์™€ ์กฐ๊ฑด๋ถ€ ๋ถ„๊ธฐ๊ฐ€ ํ•„์ˆ˜์ ์ธ ์˜๋ฃŒ ์‘๊ธ‰ ์ƒํ™ฉ์˜ ๋ณต์žกํ•œ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•œ๊ณ„ ๋ฐœ์ƒ. ์ƒํƒœ ์œ ์ง€(State Persistence)๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์— ๋”ฐ๋ฅธ ์œ ์—ฐํ•œ ๋Œ€์‘ ์ฒด๊ณ„ ๊ตฌ์ถ•์ด ์–ด๋ ค์› ๋˜ ์ƒํ™ฉ.

Technical Solution

  • LangGraph์˜ StateGraph๋ฅผ ํ†ตํ•œ ์ƒํƒœ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„๋กœ LLM์˜ ์ž„์˜์  ์ถ”๋ก  ๋ฐฉ์ง€ ๋ฐ ์‹คํ–‰ ๊ฒฝ๋กœ ์ œ์–ด
  • TypedDict ๊ธฐ๋ฐ˜์˜ AgentState ๊ณต์œ  ์Šคํ‚ค๋งˆ๋ฅผ ์ •์˜ํ•˜์—ฌ ๋…ธ๋“œ ๊ฐ„ ํ™˜์ž ์‹ฌ๋ฐ•์ˆ˜ ๋ฐ ํŠธ๋ฆฌ์•„์ง€(Triage) ๊ฒฐ๊ณผ์˜ ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๊ตฌํ˜„
  • Conditional Edges ๋กœ์ง์„ ํ†ตํ•ด Severity(Emergency, High, Normal)์— ๋”ฐ๋ฅธ ๋™์  ๋ผ์šฐํŒ… ๋ฐ ๋ถ„๊ธฐ ์ฒ˜๋ฆฌ ์ž๋™ํ™”
  • Tavily API์™€ Twilio๋ฅผ ์™ธ๋ถ€ ๋„๊ตฌ ๋…ธ๋“œ๋กœ ํ†ตํ•ฉํ•˜์—ฌ LLM์˜ ๋‚ด๋ถ€ ์ง€์‹ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•œ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ๋ฌผ๋ฆฌ์  ์•Œ๋ฆผ ์ „์†ก ์ฒด๊ณ„ ๊ตฌ์ถ•
  • State Machine ๊ตฌ์กฐ ์ฑ„ํƒ์„ ํ†ตํ•œ ๋น„๊ฒฐ์ •๋ก ์  LLM ์›Œํฌํ”Œ๋กœ์šฐ์˜ ๊ฒฐ์ •๋ก ์  ์ œ์–ด ๋ฐ ์‹ ๋ขฐ์„ฑ ํ™•๋ณด

- ๋ณต์žกํ•œ ๋น„์„ ํ˜• ์›Œํฌํ”Œ๋กœ์šฐ ์„ค๊ณ„ ์‹œ Chain ๋Œ€์‹  State Machine ๊ธฐ๋ฐ˜์˜ Graph ๊ตฌ์กฐ ๊ฒ€ํ†  - LLM์˜ ํ• ๋ฃจ์‹œ๋„ค์ด์…˜ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•ด ์ƒํƒœ ๊ณต์œ  ์Šคํ‚ค๋งˆ(State Schema)๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ œ์–ด - ๊ณ ์œ„ํ—˜ ๋„๋ฉ”์ธ ์ ์šฉ ์‹œ Human-in-the-loop(HITL) ํŒจํ„ด์„ ํ†ตํ•œ ์ตœ์ข… ์Šน์ธ ๋‹จ๊ณ„ ์‚ฝ์ž… ๊ณ ๋ ค - ์‹ค์‹œ๊ฐ„ ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ „์šฉ ๊ฒ€์ƒ‰ API๋ฅผ Tool ๋…ธ๋“œ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ Grounding ๊ฐ•ํ™”

์›๋ฌธ ์ฝ๊ธฐ