LangGraph ๊ธฐ๋ฐ State Machine ๋์ ์ ํตํ ๋น์ ํ ์๋ฃ ์๋ต ์๋ํ ์ค๊ณ
Building a Life-Saving AI: Automating Medical Response with LangGraph and Python ๐ฅ
AI ์์ฝ
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 ๊ฐํ