PydanticAI๋ โLLM ๋ฐ๋ชจ ์ฝ๋โ๋ฅผ โ์ด์ ๊ฐ๋ฅํ ์์ด์ ํธ ์ฝ๋โ๋ก ๋ฐ๊ฟ ๋ ํนํ ๊ฐํ ์ ํ์ง์ ๋๋ค. ํต์ฌ์ ๋จ์ํฉ๋๋ค. ํ์ ์ผ๋ก ์ ๋ ฅยท๋๊ตฌยท์ถ๋ ฅ์ ๊ณ์ฝ์ฒ๋ผ ๊ณ ์ ํด์, ์คํํ ์๋ก ํ์ง์ด ํ๋ค๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ์ค์ด๋ ๋ฐ ์ ๋ฆฌํฉ๋๋ค.
์ฒ์์๋ Agent ํ๋๋ก ์์ํ ์ ์๊ณ , ์ดํ ToolยทMCPยทGraphยทEvalsยทDurable Execution์ผ๋ก ์ ์ง ํ์ฅํ ์ ์์ต๋๋ค. ์ฆ, ์๊ฒ ์์ํด์ ํฌ๊ฒ ์ด์ํ๊ธฐ ์ข์ ๊ตฌ์กฐ์
๋๋ค.
AI ํ์ฉ ์๋ด: ์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์์ฑํ์ผ๋ฉฐ, Pydantic AI ๊ณต์ ๋ฌธ์๋ฅผ 1์ฐจ ์ถ์ฒ๋ก ๊ฒํ ํด ์ ๋ฆฌํ์ต๋๋ค.
๊ณต์๋ฌธ์ ํ๋ฆ ์ ๊ฒ (๊ฐ์ ๋ณด์)
- ํ๋ฆ:
indexํฌ์ง์ ๋ โinstall์ค์น ๋ถ๊ธฐ(์ผ๋ฐ/slim) โagent์คํ ๋ฐฉ์(run_sync/run, Run vs Conversation) โmodels/overview๊ณต๊ธ์ยทํด๋ฐฑยท๋์์ฑ โlogfire๊ด์ธก. - ์ด๋ฒ ํธ์์ ๋น ์ง๋ฉด ์ ๋๋ ํฌ์ธํธ:
Runs vs. Conversations๋ฅผ ๋ถ๋ฆฌํด์ ์ค๋ช ํ๋ค.- ๋ชจ๋ธ ์ฐ๊ฒฐ์ โ๋ชจ๋ธ๋ช โ์ด ์๋๋ผ Provider + ๋ชจ๋ธ + ์์ธ/ํด๋ฐฑ ๊ด์ ์ผ๋ก ์ค๋ช ํ๋ค.
- ๊ด์ธก(Tracing)๊ณผ ๋๋ฒ๊น ์ ์ ๋ฌธ ๋จ๊ณ์์ ํจ๊ป ์๊ฐํ๋ค.
- ๊ณต์ ๋ฌธ์ ์ฒดํฌ ๋งํฌ:
ํต์ฌ ์์ฝ
- PydanticAI์ ์ค์ฌ์
Agent์ด๋ฉฐ, ์ด Agent๋ instructions / tools / output_type / deps_type / model์ ํ๋์ ์คํ ๋จ์๋ก ๋ฌถ์ต๋๋ค.
๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/agent/ - ์ค์น๋ ๋น ๋ฅด๊ฒ ์์ ๊ฐ๋ฅํ๊ณ (
pip install pydantic-ai), ํ์ ์pydantic-ai-slim[...]์ผ๋ก ์์กด์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/install/ - ๋ชจ๋ธ์ ํน์ ๋ฒค๋์ ๋ฌถ์ด์ง ์๋ ๊ตฌ์กฐ๋ผ์ OpenAI, Anthropic, Gemini ๋ฑ์ผ๋ก ๋ผ์ฐํ
์ ๋ฐ๊พธ๊ธฐ ์ฝ์ต๋๋ค.
๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/models/overview/ - ์ด ์๋ฆฌ์ฆ์ ๋ชฉํ๋ โ์ฝ๋๊ฐ ๋์๊ฐ๋คโ์์ ๋๋์ง ์๊ณ โํ ์คํธ/๊ด์ธก/๋ณต๊ตฌ๊ฐ ๋๋คโ๊น์ง ๊ฐ์ ธ๊ฐ๋ ๊ฒ์ ๋๋ค.
์ ์ง๊ธ PydanticAI์ธ๊ฐ
์์ด์ ํธ ํ๋ก์ ํธ๊ฐ ์ด๋ฐ์ ๋ง๊ฐ์ง๋ ์ด์ ๋ ๋ชจ๋ธ ์ฑ๋ฅ ์์ฒด๋ณด๋ค, ์ด์ ๊ณ์ฝ์ด ๋์จํ๊ธฐ ๋๋ฌธ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ๋กฌํํธ๋ ๊ธธ์ด์ง๋๋ฐ ์ถ๋ ฅ ํ์์ ๋งค๋ฒ ๋ฌ๋ผ์ง๊ณ , ๋๊ตฌ ์ธ์ ๊ฒ์ฆ์ด ์ฝํด์ ์ฌ์๋๊ฐ ํญ๋ฐํ๋ ํจํด์ด ์์ฃผ ๋์ต๋๋ค.
PydanticAI๋ ์ด ๊ตฌ๊ฐ์ โํ์
๊ธฐ๋ฐ ๊ณ์ฝโ์ผ๋ก ๋น๊ฒจ์ต๋๋ค. deps_type์ผ๋ก ๋ฐํ์ ์์กด์ฑ(์: DB ์ฐ๊ฒฐ, ์ฌ์ฉ์ ID)์ ๋ช
์ํ๊ณ , output_type์ผ๋ก ์ต์ข
๊ฒฐ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ณ ์ ํ๋ฉฐ, Tool ์
๋ ฅ๋ ์คํค๋ง๋ก ๊ฒ์ฆํฉ๋๋ค.
๊ณต์ ๋ฌธ์์์ Agent๋ฅผ โinstructions, tools, structured output, dependencies, model์ ์ปจํ
์ด๋โ๋ก ์ค๋ช
ํ๋ ์ด์ ๊ฐ ๋ฐ๋ก ์ฌ๊ธฐ์
๋๋ค.
๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/agent/
flowchart TD A[์์ฒญ ์ ๋ ฅ] --> B[Agent ๊ณ์ฝ: instructions + deps + tools] B --> C[๋ชจ๋ธ ํธ์ถ] C --> D[๋๊ตฌ ํธ์ถ/์ฌ์๋] D --> E[output_type ๊ฒ์ฆ] E --> F[์์ ๋ ๊ฒฐ๊ณผ ๋ฐํ]
ํ์ฅ ๋ฏธ๋ ์ฌ๋ก 2๊ฐ
์ฌ๋ก 1) ๊ณ ๊ฐ์ง์ ๋ด: ๋ต๋ณ์ ๊ทธ๋ด๋ฏํ๋ฐ ์กฐ์น๊ฐ ๋ค์ญ๋ ์ญํ ๋ฌธ์
์ด๊ธฐ์๋ โ์น์ ํ๊ฒ ๋ต๋ณํดโ ์์ค์ ํ๋กฌํํธ๋ง ์ฌ์ฉํด, ๊ฐ์ ์ง๋ฌธ์์๋ ์นด๋ ์ ์ง ์ฌ๋ถ ๊ฐ์ ํต์ฌ ์กฐ์น๊ฐ ๋งค๋ฒ ๋ฌ๋ผ์ก์ต๋๋ค.
๊ฐ์ ์ ์ธ ๋จ๊ณ์์ต๋๋ค.
- ์ถ๋ ฅ์
support_advice / block_card / risk๊ฐ์ ๊ตฌ์กฐ๋ก ๊ณ ์ (output_type) - ๊ณ ๊ฐ ID์ DB ์ฐ๊ฒฐ์
deps_type์ผ๋ก ๋ถ๋ฆฌ - ์์ก ์กฐํ/์ํ ํ์ ๋ก์ง์ Tool๋ก ๋ถ๋ฆฌ
์ดํ์๋ ๋ฆฌ๋ทฐ ํฌ์ธํธ๊ฐ โ๋ฌธ์ฅ ํคโ์ด ์๋๋ผ โrisk ๊ธฐ์ค์ด ๋ง๋๊ฐโ๋ก ์ด๋ํ๊ณ , QA ์๊ฐ์ด ์ค์์ต๋๋ค.
์ฐธ๊ณ ์์ (๊ณต์): https://ai.pydantic.dev/examples/bank-support/
์ฌ๋ก 2) ์ฌ๋ด ๋ฆฌ์์น ์์ด์ ํธ: ๋ชจ๋ธ ๊ต์ฒด ๋๋ง๋ค ์ฝ๋๊ฐ ๊นจ์ง๋ ๋ฌธ์
ํ ๋ชจ๋ธ์ ํ๋์ฝ๋ฉ๋ SDK ํธ์ถ์ด ๋ง์์, ๊ณต๊ธ์ ๋ณ๊ฒฝ ์ ์ฝ๋ ์์ ๋ฒ์๊ฐ ์ปค์ก์ต๋๋ค.
PydanticAI๋ก ์ ํ ํ์๋ <provider>:<model> ํํ๋ก ๋ชจ๋ธ ๋ผ์ฐํ
์ ๋ฐ๊พธ๊ณ , ํ์ํ ๋๋ง Provider/Model ํด๋์ค๋ฅผ ์ง์ ์ง์ ํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชจ๋ธ ๊ต์ฒด ์คํ ์ฃผ๊ธฐ๊ฐ ์งง์์ก๊ณ , ์ฅ์ ์ ๋์ฒด ๊ฒฝ๋ก ์ค๊ณ๊ฐ ์ฌ์์ก์ต๋๋ค.
๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/models/overview/
์ฉ์ด๋ฅผ ์ฌ์ด ๋น์ ๋ก ์ ๋ฆฌ
- Agent: ๋งค์ฅ ์ ์ฅ(์ ์ฒด ์ด์ ๊ท์น ๋ด๋น)
- Tool: ์ ์ฅ์ด ํธ์ถํ๋ ์ง์(๊ฒ์, DB ์กฐํ, ๊ณ์ฐ)
- deps_type: ์ค๋ ๊ทผ๋ฌดํ(๋๊ฐ ์ด๋ค ๊ถํ/๋ฐ์ดํฐ๋ฅผ ๋ค๊ณ ๋ค์ด์ค๋์ง)
- output_type: ๊ณ ๊ฐ์๊ฒ ๊ฑด๋ค๋ ์์์ฆ ์์(ํ์์ด ๋งค๋ฒ ๋ฐ๋๋ฉด ์ ๋จ)
์ด ๋น์ ๋ฅผ ๊ธฐ์ตํ๋ฉด, โํ๋กฌํํธ๋ฅผ ๋ ๊ธธ๊ฒ ์ธ๊น?โ๋ณด๋ค โ๊ณ์ฝ์ด ๋น์ด ์๋ ๊ณณ์ด ์ด๋์ง?โ๋ฅผ ๋จผ์ ๋ณด๊ฒ ๋ฉ๋๋ค.
10๋ถ ์ค์ต (๋๊ฐ/๋ฌด์์/์์)
๊ฐ๋ฐ์ 1๋ช ์ด ๋ก์ปฌ์์ ๋ฐ๋ก ํด๋ณผ ์ ์๋ ์ ๋ฌธ ๋ฃจํด์ ๋๋ค.
- ์ค์น
pip install pydantic-ai๋๋uv add pydantic-ai- ๊ณต์ ๋ฌธ์: https://ai.pydantic.dev/install/
- ์ฒซ Agent ์คํ
Agent(...)์์ฑ ํrun_sync()๋ก ๋จ์ผ ์ง์ ์คํ
- ์ถ๋ ฅ ๊ณ์ฝ ์ถ๊ฐ
- ๊ฐ๋จํ Pydantic ๋ชจ๋ธ์
output_type์ผ๋ก ์ง์
- ๊ฐ๋จํ Pydantic ๋ชจ๋ธ์
- ๊ฒ์ฆ
- ๊ฐ์ ์ ๋ ฅ 3ํ ๋ฐ๋ณต ์คํํด ๊ฒฐ๊ณผ ๊ตฌ์กฐ๊ฐ ์ ์ง๋๋์ง ํ์ธ
์ฑ๊ณต ํ์ :
- ์คํ์ 1ํ๊ฐ ์๋๋ผ 3ํ ๋ฐ๋ณตํด๋ ๊ฒฐ๊ณผ ๊ตฌ์กฐ๊ฐ ์ ์ง๋๋ค
- ์์ ํ ์คํธ๊ฐ ์๋๋ผ ํฉ์ํ ํ๋ ๊ตฌ์กฐ๋ก ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค
- ๋ค์ ํธ(01ํธ)์์ ๊ทธ๋๋ก ํ์ฅ ๊ฐ๋ฅํ ์ต์ ์ฝ๋๊ฐ ๋จ๋๋ค
์น ํ ์นํธ์ํธ
- PydanticAI๋ โํ๋กฌํํธ ํ๋ ์์ํฌโ๋ณด๋ค โ์ด์ ๊ณ์ฝ ํ๋ ์์ํฌโ์ ๊ฐ๊น๋ค
- Agent = instructions + tools + deps + output + model
- ์ฒ์๋ถํฐ output_type์ ์ก์์ผ ์ฌ์์ ์ด ์ค์ด๋ ๋ค
- ๋ชจ๋ธ ๊ต์ฒด ๊ฐ๋ฅ์ฑ์ ์ด์ด๋๋ฉด ์คํ ์๋๊ฐ ๋นจ๋ผ์ง๋ค
- ๋ชฉํ๋ ๋ฐ๋ชจ ์ฑ๊ณต์ด ์๋๋ผ ๋ฐ๋ณต ์ด์ ์ฑ๊ณต์ด๋ค