์ฌ์ฉ์ ์ฒด๊ฐ ์๋๋ฅผ ๋์ด๋ ค๋ฉด ์คํธ๋ฆฌ๋ฐ์ด ํ์ํ๊ณ , ์ด์ ์์ ์ฑ์ ๋์ด๋ ค๋ฉด ๊ตฌ์กฐํ ์ถ๋ ฅ์ด ํ์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ด๋ฏธ์งยท๋ฌธ์ ๊ฐ์ ๋ฉํฐ๋ชจ๋ฌ ์ ๋ ฅ๊น์ง ๋ถ์ผ๋ฉด ์ค์๋น์ค ํํ์ ๊ฐ๊น์์ง๋๋ค.
AI ํ์ฉ ์๋ด: ์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์์ฑํ์ผ๋ฉฐ, Pydantic AI ๊ณต์ ๋ฌธ์๋ฅผ 1์ฐจ ์ถ์ฒ๋ก ๊ฒํ ํด ์ ๋ฆฌํ์ต๋๋ค.
๊ณต์๋ฌธ์ ํ๋ฆ ์ ๊ฒ (๊ฐ์ ๋ณด์)
- ํ๋ฆ: ์คํธ๋ฆฌ๋ฐ ์ด๋ฒคํธ ์ค๊ณ โ ๊ตฌ์กฐํ ์ถ๋ ฅ ๋ชจ๋ ์ ํ/๊ฒ์ฆ โ ๋ฉํฐ๋ชจ๋ฌ ์ ๋ ฅ(์ด๋ฏธ์งยท์ค๋์คยท๋ฌธ์) ์ง์ ๋ชจ๋ธ ํ์ธ โ ์ ๋ก๋/URL ์ ๋ ฅ ์ ๋ต ์ ํ.
- ์ด๋ฒ ํธ์์ ๋น ์ง๋ฉด ์ ๋๋ ํฌ์ธํธ:
- ์คํธ๋ฆฌ๋ฐ ์๋์ ๊ตฌ์กฐํ ๊ฒ์ฆ์ ๋ถ๋ฆฌํด ์ค๋ช ํ๋ค.
- ์ ๋ ฅ ํ์ ๋ณ(provider๋ณ) ์ง์ ์ฐจ์ด๋ฅผ ๊ฐ์์์ ๋จผ์ ๊ฒฝ๊ณ ํ๋ค.
streamed result์ ์ต์ข ๊ฒฐ๊ณผ ํ์ ์์ ์ ๋ช ํํ ๊ตฌ๋ถํ๋ค.
- ๊ณต์ ๋ฌธ์ ์ฒดํฌ ๋งํฌ:
์ธ ๊ฐ์ง๋ฅผ ๊ฐ์ด ๋ด์ผ ํ๋ ์ด์
- ์คํธ๋ฆฌ๋ฐ: ๊ธฐ๋ค๋ฆผ์ ์ค์ฌ UX ๊ฐ์
- ๊ตฌ์กฐํ ์ถ๋ ฅ: ํ์ฒ๋ฆฌ ์๋ํ ์์ ํ
- ๋ฉํฐ๋ชจ๋ฌ ์ ๋ ฅ: ํ ์คํธ ๋ฐ์ ์ค์ ์ ๋ฌด ๋ฐ์ดํฐ ์์ฉ
๊ณต์ ๋ฌธ์:
- Agent streaming: https://ai.pydantic.dev/agent/
- Output streaming: https://ai.pydantic.dev/output/
- Input types: https://ai.pydantic.dev/input/
flowchart LR A[ํ ์คํธ/์ด๋ฏธ์ง/๋ฌธ์ ์ ๋ ฅ] --> B[Agent run_stream] B --> C[์ค๊ฐ ํ ํฐ/์ด๋ฒคํธ ์ ๋ฌ] C --> D[์ต์ข ๊ตฌ์กฐํ ๊ฒฐ๊ณผ ๊ฒ์ฆ] D --> E[UI/์๋ํ ํ์ดํ๋ผ์ธ ์ ๋ฌ]
๋ฏธ๋ ์ฌ๋ก A: ์๋ต์ด 20์ด ๊ฑธ๋ ค ์ฌ์ฉ์ ์ดํ์ด ์๊ธด ๊ฒฝ์ฐ
์ต์ข ๋ต๋ณ๋ง ํ ๋ฒ์ ๋ณด๋ด๋ ์ฑ ํ๋ฉด์์ ์ดํ๋ฅ ์ด ๋์์ต๋๋ค. ์คํธ๋ฆฌ๋ฐ์ผ๋ก ์งํ ์ํฉ์ ๋จผ์ ๋ณด์ฌ์ฃผ์, ๊ฐ์ ์ฒ๋ฆฌ ์๊ฐ์ด์ด๋ ์ดํ์ด ์ค์์ต๋๋ค.
๋ฏธ๋ ์ฌ๋ก B: ์คํธ๋ฆฌ๋ฐ์ ๋น ๋ฅธ๋ฐ ํ์ฒ๋ฆฌ๊ฐ ์์ฃผ ๊นจ์ง ๊ฒฝ์ฐ
ํ
์คํธ ์์ฃผ ์ถ๋ ฅ์ผ๋ก๋ ํ์๊ฐ ์์ฃผ ์คํจํ์ต๋๋ค. ๋ง์ง๋ง ๊ฒฐ๊ณผ๋งํผ์ output_type์ผ๋ก ๊ณ ์ ํด UI ํ์ดํ๋ผ์ธ ์ค๋ฅ๋ฅผ ์ค์์ต๋๋ค.
์ค๋ฌด ์ ์ฉ ์์
- ์ฌ์ฉ์-facing ์ฑ๋์ ์คํธ๋ฆฌ๋ฐ ์ฐ์ ๋์
- ์ ์ฅ/์ฐ๋ ๊ตฌ๊ฐ์ ๊ตฌ์กฐํ ์ถ๋ ฅ ๊ฐ์
- ํ์ผ ์ ๋ ฅ(๋ฌธ์/์ด๋ฏธ์ง) 1๊ฐ ์๋๋ฆฌ์ค๋ถํฐ ์์
์ฑ๊ณต ํ์ :
- ์ฌ์ฉ์ ์ฒด๊ฐ ๋๊ธฐ ์๊ฐ์ด ์ค์๋ค
- ํ์ฒ๋ฆฌ ํ์ฑ ์ค๋ฅ์จ์ด ๋ด๋ ค๊ฐ๋ค
- ๋ฉํฐ๋ชจ๋ฌ ์ ๋ ฅ 1๊ฐ๋ฅผ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค