μμ΄μ νΈ νμ§μ λ¨λ° μλ΅λ³΄λ€ λ°λ³΅ λνμ μ€ν¨ μν©μμ κ°λ¦½λλ€. νμ€ν 리λ₯Ό μ΄λ»κ² λκΈ°κ³ , μ΄λ€ μ¬μλ μ μ± μ μ°λλκ° μ΄μ μμ μ±μ κ²°μ ν©λλ€.
AI νμ© μλ΄: μ΄ λ¬Έμλ μμ±ν AIλ₯Ό νμ©ν΄ μμ±νμΌλ©°, Pydantic AI 곡μ λ¬Έμλ₯Ό 1μ°¨ μΆμ²λ‘ κ²ν ν΄ μ 리νμ΅λλ€.
곡μλ¬Έμ νλ¦ μ κ² (κ°μ 보μ)
- νλ¦: λ©μμ§ μ μ₯/볡μ(JSON) β νμ€ν 리 νλ‘μΈμ μ μ²λ¦¬ β HTTP μ¬μλ μ λ΅(wait/transport) β RateLimit/λ€νΈμν¬ μ₯μ 볡ꡬ ν¨ν΄.
- μ΄λ² νΈμμ λΉ μ§λ©΄ μ λλ ν¬μΈνΈ:
- λ©μμ§ νμ€ν 리μ μ¬μλλ₯Ό μλ‘ λ€λ₯Έ μ€ν¨ κ³μΈ΅μΌλ‘ ꡬλΆνλ€.
retry-afterλμ, λ€νΈμν¬ μ€λ₯ μ¬μλ μ μ± μ κ°μμ ν¬ν¨νλ€.- νμ€ν 리 νλ‘μΈμ ν μ€νΈ λ°©λ²μ ν μ€μ΄λΌλ λͺ μνλ€.
- 곡μ λ¬Έμ μ²΄ν¬ λ§ν¬:
νμ€ν 리μ μ¬μλμ μν λΆλ¦¬
- λ©μμ§ νμ€ν 리: λ§₯λ½ μ μ§
- μ¬μλ μ μ± : μΌμ μ€λ₯/κ²μ¦ μ€ν¨ 볡ꡬ
곡μ λ¬Έμ:
- Message history: https://ai.pydantic.dev/message-history/
- HTTP retries: https://ai.pydantic.dev/retries/
flowchart TD A[μ§λ¬Έ μ λ ₯] --> B[κΈ°μ‘΄ νμ€ν 리 κ²°ν©] B --> C[λͺ¨λΈ/λꡬ μ€ν] C --> D{μ±κ³΅?} D -->|μ| E[κ²°κ³Ό μ μ₯] D -->|μλμ€| F[μ¬μλ μ μ± μ μ©] F --> C
λ―Έλ μ¬λ‘ A: μ₯λ¬Έ λνμμ μμ ν©μλ₯Ό μκΎΈ μλ λ¬Έμ
νμ€ν 리λ₯Ό ν΅μ§Έλ‘ κ³μ λΆμ΄λ νμ νλ°λΆμμ μ§μ μΆ©λμ΄ μκ²Όμ΅λλ€. ν΅μ¬ ν©μλ§ μμ½ν΄ μ£ΌκΈ°μ μΌλ‘ μ λ¦¬ν΄ λκΈ°μ νμ§μ΄ μμ λμ΅λλ€.
λ―Έλ μ¬λ‘ B: μΈλΆ API μκ° μ₯μ λ‘ μ 체 μμ μ΄ μ€ν¨ν λ¬Έμ
μ¬μλ μμ΄ λ¨λ° νΈμΆνλ ꡬ쑰λ μ₯μ μκ°λ§λ€ μ λ¬΄κ° λκ²Όμ΅λλ€. μ¬μλ νμμ λ°±μ€νλ₯Ό μ€μ ν΄ μΌμ μ€λ₯λ₯Ό ν‘μνλ μ±κ³΅λ₯ μ΄ κ°μ λμ΅λλ€.
μ μ© μ²΄ν¬λ¦¬μ€νΈ
- νμ€ν 리 μ λ¬ μ μ± λ¬Έμν(μ 체/μμ½/μ΅κ·Ό Nν΄)
- μ¬μλ λμ λΆλ¦¬(λ€νΈμν¬ μ€λ₯ vs λΉμ¦λμ€ μ€λ₯)
- μ€ν¨ λ‘κ·Έμ μ¬ν κ°λ₯ν μ λ ₯/μν λ¨κΈ°κΈ°
μ±κ³΅ νμ :
- κ°μ λνλ₯Ό κΈΈκ² μ΄μ΄λ λ§₯λ½ μμ€μ΄ μ€μλ€
- μΌμ μ₯μ μ μλ 볡ꡬ λΉμ¨μ΄ μ¬λΌκ°λ€
- μ₯μ μμΈμ λ‘κ·Έμμ μ¬νν μ μλ€