Pydantic AI သင်ခန်းစာ: ပထမဆုံး ပရိုဂရမ်မှသည် production တင်သည်အထိ type-safe ဖြစ်သော နည်းလမ်းဖြင့် LLM Agent တည်ဆောက်ခြင်း
LLM ဖြင့် အပလီကေးရှင်း ရေးဖူးသူတိုင်း သိကြသည့်အတိုင်း အနာကျင်ရဆုံးအချက်မှာ API ချိတ်ရခြင်းမဟုတ်ဘဲ မော်ဒယ်က ပြန်ပို့လာသော အချက်အလက်များမှာ အခါတိုင်း မတူညီဘဲ ဖြစ်နေခြင်းပင် ဖြစ်သည်။ Pydantic AI သည် Pydantic ၏ type verification (အမျိုးအစား စစ်ဆေးခြင်း) ကို Agent တည်ဆောက်ရေးဆီသို့ ယူဆောင်လာပေးပြီး ထွက်လာသည့် ရလဒ်များကို structure ကျစေကာ ကိရိယာများကို static check လုပ်နိုင်စေပါသည်။ ဤဆောင်းပါးတွင် တပ်ဆင်ခြင်းမှစ၍ အဆင့်မြင့်ပိုင်းအထိ ကိုယ်တိုင်ကြုံတွေ့ခဲ့ရသော အခက်အခဲများနှင့်တကွ ရှင်းပြပေးထားပါသည်။
နိဒါန်း: မော်ဒယ်ဆီက ပြန်လာတဲ့ အချက်အလက်တွေက ဘာလို့ တစ်ခါနဲ့တစ်ခါ မတူရတာလဲ
သင်ဟာ LLM API တစ်ခုခုကို အသုံးပြုဖူးတယ်ဆိုရင် ဒီမြင်ကွင်းနဲ့ ရင်းနှီးပြီးသားဖြစ်မှာပါ - မော်ဒယ်ကို "name နဲ့ score ပါတဲ့ JSON တစ်ခုကို ပြန်ပေးပါ" လို့ တောင်းဆိုလိုက်တဲ့အခါ ပထမ ၉ ကြိမ်မှာ အဆင်ပြေပေမဲ့၊ ၁၀ ကြိမ်မြောက်မှာတော့ JSON မတိုင်ခင်မှာ "ကောင်းပြီ၊ ရလဒ်တွေကတော့ ဒီမှာပါ-" ဆိုပြီး စာကြောင်းတစ်ကြောင်း ထည့်ရေးလာပါတော့တယ်။ အဲဒီအခါမှာ သင့်ရဲ့ json.loads() က ချက်ချင်းပဲ အမှားတက်သွားပါတော့တယ်။ အဲဒီနောက်မှာ စာသားတွေကို ရှင်းထုတ်ဖို့ Regular Expression တွေ လိုက်ရေးရတယ်၊ ကွက်လပ် (field) တွေ ရှိမရှိ စစ်ဆေးဖို့ if အမိန့်တွေ အများကြီး လိုက်ရေးရတယ် - နောက်ဆုံးမှာ သင့်ရဲ့ "AI အက်ပ်" ရဲ့ ကုဒ် ၇၀ ရာခိုင်နှုန်းဟာ မော်ဒယ်ရဲ့ မတည်ငြိမ်တဲ့ အထွက်ရလဒ်တွေနဲ့ ရုန်းကန်နေရပါတော့တယ်။
ကျွန်တော်ကိုယ်တိုင် ထိန်းသိမ်းခဲ့ဖူးတဲ့ အတွင်းပိုင်း အမျိုးအစားခွဲခြားရေး ဝန်ဆောင်မှု (classification service) တစ်ခုမှာဆိုရင် မော်ဒယ်က ကွက်လပ်တစ်ခုကို တစ်ခါတလေ လျော့ပေးတတ်တဲ့ ပြဿနာတစ်ခုတည်းကို ဖြေရှင်းဖို့အတွက်နဲ့တင် သုံးရက်ဆက်တိုက် အချိန်ပို လုပ်ခဲ့ရဖူးပါတယ်။ နောက်ပိုင်းမှာ Pydantic AI ကို ပြောင်းသုံးလိုက်တဲ့အခါမှာတော့ အဲဒီ ကာကွယ်ရေးဆိုင်ရာ ကုဒ်တွေ အကုန်နီးပါး ပျောက်ကွယ်သွားခဲ့ပါတယ်။ ဘာလို့လဲဆိုတော့ အချက်အလက် စစ်ဆေးအတည်ပြုခြင်း (validation) ဆိုတဲ့ အလုပ်ကို ဖรมဝှစ်ခ် (framework) ကိုယ်တိုင်က တာဝန်ယူပေးလိုက်လို့ပါပဲ။ ဒီဆောင်းပါးမှာတော့ အဲဒါကို ဘယ်လိုသုံးရမလဲဆိုတာကို ရှင်းရှင်းလင်းလင်း ဖော်ပြပေးသွားမှာ ဖြစ်ပါတယ်။
Pydantic AI ဆိုတာ ဘ뭡
Pydantic AI ဆိုတာကတော့ Pydantic အဖွဲ့သားတွေ ထုတ်လုပ်ထားတဲ့ Python Agent ဖရိန်ဝှစ်ခ်တစ်ခု ဖြစ်ပါတယ်။ Pydantic ဆိုတဲ့ နာမည်ကို သင် အခြားနေရာတွေမှာလည်း တွေ့ဖူးကောင်း တွေ့ဖူးပါလိမ့်မယ် - OpenAI၊ Anthropic၊ Google ရဲ့ တရားဝင် SDK တွေအပြင် LangChain, LlamaIndex တို့ရဲ့ အောက်ခြေ အချက်အလက် စစ်ဆေးအတည်ပြုမှု အများစုဟာ ဒီအပေါ်မှာ မှီခိုနေကြပါတယ်။ ဆိုလိုချင်တာကတော့ validation လုပ်တဲ့နေရာမှာ ဒီအသိုင်းအဝိုင်း (ecosystem) ထဲမှာ သူတို့ထက် ပိုပြီး အရည်အချင်းပြည့်မီသူ မရှိပါဘူး။
သူ့ရဲ့ ဒီဇိုင်းဒဿနက FastAPI နဲ့ တော်တော်လေး ဆင်တူပါတယ် - Python ရဲ့ မူရင်း အမျိုးအစား သတ်မှတ်ချက်တွေ (type hints) ကို သုံးပြီး အပြုအမူကို ရှင်းရှင်းလင်းလင်း သတ်မှတ်ပေးလိုက်ပြီး ကျန်တာတွေကိုတော့ ဖရိန်ဝှစ်ခ်ကို လွှဲပေးလိုက်ပါတယ်။ အဓိက သဘောတရား အနည်းငယ်သာ ပါရှိပါတယ် - Agent (အေးဂျင့်)၊ Tools (တူးလ်များ)၊ Dependencies (မှီခိုမှုများ)၊ Structured Output (ဖွဲ့စည်းပုံပါရှိသော အထွက်ရလဒ်) တို့ ဖြစ်ပါတယ်။ သူတို့ဘာသာ တီထွင်ထားတဲ့ စိတ္တဇ အတန်းအစား (abstract classes) တွေကို လိုက်ကျက်နေစရာ မလိုပါဘူး။ ရေးရတာက ပုံမှန် Python လိုပဲ ဖြစ်ပေမဲ့ IDE က အလိုအလျောက် ဖြည့်စွက်ပေးတာတွေ (auto-complete) လုပ်ပေးနိုင်ပြီး အမျိုးအစား စစ်ဆေးသူတွေ (Pyright, mypy လိုမျိုး) က ကုဒ်မစမ်းခင်မှာတင် အမှားတွေကို ဖမ်းဆုပ်ပေးနိုင်ပါတယ်။
ဒါဟာ model-agnostic ဖြစ်တဲ့အတွက် သီးသန့် မော်ဒယ် ကုမ္ပဏီတစ်ခုတည်းအပေါ် မှာ မမှီခိုပါဘူး။ OpenAI၊ Anthropic၊ Google၊ Groq၊ Cohere၊ Mistral၊ Ollama စတဲ့ ကုမ္ပဏီ ဒါဇင်နဲ့ချီပြီး ပံ့ပိုးပေးထားပါတယ်။ မော်ဒယ်ပြောင်းချင်ရင် စာသားတစ်ခုတည်းကိုပဲ ပြောင်းလဲပေးလိုက်ရုံပါပဲ။ Agent နဲ့ ပုံမှန် API ခေါ်ဆိုမှု ဘာကွာလဲဆိုတာကို နားလည်ချင်ရင်တော့ AI Agent ဆိုတာ ဘာလဲ ကို အရင်ဖတ်ရှုနိုင်ပါတယ်။
ဘာတွေ လုပ်လို့ရလဲ
ရိုးရိုးရှင်းရှင်းပြောရရင် "မော်ဒယ်ဆီကနေ ယုံကြည်စိတ်ချရတဲ့ ရလဒ်ကို ရရှိဖို့ လိုအပ်တဲ့" မည်သည့်အခါမျိုးမဆို သင့်လျော်ပါတယ် -
- ဖွဲ့စည်းပုံပါရှိသော အချက်အလက် ထုတ်ယူခြင်း (Structured extraction): ဖောက်သည် တိုင်ကြားစာ တစ်စောင်ကို ထည့်လိုက်ပြီး
ခံစားချက် (sentiment)၊အမျိုးအစား (category)၊အရေးကြီးမှုအဆင့် (urgency)ဆိုတဲ့ ကွက်လပ်သုံးခုကို ထုတ်ပေးဖို့ တောင်းဆိုနိုင်ပြီး အမျိုးအစား မှန်ကန်မှုကိုလည်း အာမခံပါတယ်။ - အမျိုးအစားခွဲခြင်းနှင့် တဂ်ပ်တပ်ခြင်း (Classification and labeling): စာရွက်စာတမ်း အမြောက်အများကို တဂ်ပ်တပ်ဖို့ လိုအပ်တဲ့အခါ သქვენသတ်မှတ်ထားတဲ့ Enum ထဲမှာပဲ အထွက်ရလဒ် ကန့်သတ်ထားနိုင်ပြီး မော်ဒယ်က လွဲမှားစွာ ဖြေဆိုလာရင် တားဆီးပေးပါတယ်။
- Tool-based Agent: မော်ဒယ်ကို သင့်ရဲ့ ဖန်ရှင် (function) တွေကို ခေါ်ဆိုခွင့်ပြုပါ - ဒေတာဘေ့စ် စစ်ဆေးခြင်း၊ ရာသီဥတု API ခေါ်ဆိုခြင်း၊ သင်္ချာတွက်ချက်ခြင်း စတာတွေ လုပ်ဆောင်နိုင်ပြီး ဖရိန်ဝှစ်ခ်က ဖန်ရှင်ရဲ့ အမျိုးအစားတွေကို မော်ဒယ် နားလည်တဲ့ တူးလ်ဖော်ပြချက်အဖြစ် ပြောင်းလဲပေးပါတယ်။
- RAG မေးခွန်းအဖြေ: ဗတ္တော် ရှာဖွေမှု (vector retrieval) နဲ့ တွဲဖက်ပြီး အထောက်အထားခိုင်လုံတဲ့ မေးအဖြေ စနစ်ကို တည်ဆောက်နိုင်ပါတယ်။ ဒီအပိုင်းနဲ့ပတ်သက်ပြီး ကျွန်ုပ်တို့ရဲ့ RAG တည်ဆောက်မှု လမ်းညွှန် ကို ကိုးကားနိုင်ပါတယ်။
LangChain လိုမျိုး အရာရာပါဝင်တဲ့ ဖရိန်ဝှစ်ခ်ကြီးတွေနဲ့ ယှဉ်ရင် Pydantic AI က တမင်တကာ ပေါ့ပါးအောင် ဖန်တီးထားပါတယ်။ အကယ်၍ မော်ဒယ်ရဲ့ အထွက်ရလဒ်ကို ယုံကြည်စိတ်ချရအောင် လုပ်ချင်ရုံနဲ့ လုပ်ဆောင်ချက်သေးသေးလေး တစ်ခုအတွက်နဲ့ အသိုင်းအဝိုင်းတစ်ခုလုံးကို လိုက်လံလေ့လာနေစရာ မလိုဘဲ သူ့ရဲ့ သင်ယူမှုမျဉ်းကွေး (learning curve) က ပိုပြီး အဆင်ပြေပါတယ်။
ဘယ်လိုသုံးမလဲ: ပထမဆုံးအကြိမ် အသုံးပြုခြင်း
1. ထည့်သွင်းခြင်း (Installation)
bash
pip install pydantic-ai
virtual environment တစ်ခုကို ဖွင့်သုံးဖို့ အကြံပြုလိုပါတယ်။ Python ဗားရှင်း 3.9 နဲ့ အထက်ကို သုံးတာ ပိုလုံခြုံပါတယ်။
2. API သော့ချက် (API Key) သတ်မှတ်ခြင်း
Anthropic ကို ဥပမာအနေနဲ့ ပတ်ဝန်းကျင် ကိန်းရှင် (environment variable) တစ်ခု သတ်မှတ်ပါ -
bash
export ANTHROPIC_API_KEY=သင့်ရဲ့သော့ချက်
OpenAI ကို သုံးမယ်ဆိုရင် OPENAI_API_KEY ကို သတ်မှတ်ပါ၊ အဲဒီအတိုင်း ဆက်သွားပါ။
3. ပထမဆုံး Agent ကို ရေးသားခြင်း
python
from pydantic_ai import Agent
agent = Agent('anthropic:claude-sonnet-4-6')
result = agent.run_sync('ဗတ္တော် ဒေတာဘေ့စ် ဆိုတာ ဘာလဲ ဆိုတာကို စာကြောင်းတစ်ကြောင်းနဲ့ ရှင်းပြပါ')
print(result.output)
ပထမဆုံး ကိန်းရှင်ကတော့ မော်ဒယ်နာမည် ဖြစ်ပြီး ပုံစံက ကုမ္ပဏီ:မော်ဒယ် ဖြစ်ပါတယ်။ OpenAI ကို ပြောင်းချင်ရင် 'openai:gpt-4o' စသည်ဖြင့် ပြောင်းလိုက်ရုံပါပဲ၊ အခြား ကုဒ်တွေကို ပြောင်းစရာ မလိုပါဘူး - ဒါဟာ model-agnostic ဖြစ်ခြင်းရဲ့ အကျိုးကျေးဇူးပါပဲ။
4. အထွက်ရလဒ်ကို ဖွဲ့စည်းပုံရှိစေခြင်း
ဒါက အဓိက အချက်ပါပဲ။ အထွက် ပုံစံအဖြစ် Pydantic မော်ဒယ်တစ်ခုကို သင် သတ်မှတ်ပါ -
python
from pydantic import BaseModel
from pydantic_ai import Agent
class Review(BaseModel):
sentiment: str # positive / negative / neutral
score: int # ၁ က နေ ၅ ထိ
summary: str
agent = Agent('anthropic:claude-sonnet-4-6', output_type=Review)
result = agent.run_sync('ဒီဆိုင်က ပစ္စည်းတွေ ကောင်းပေမဲ့ တစ်နာရီနီးပါး စောင့်လိုက်ရတယ်၊ နည်းနည်းတော့ လွန်လွန်ကျွံကျွံပဲ')
print(result.output.score) # ကိုယ်တိုင် parse စရာမလိုဘဲ ကိန်းပြည့်ကို တိုက်ရိုက်ရရှိ
print(result.output.sentiment) # စာသားကို တိုက်ရိုက်ရရှိ
မော်ဒယ် ပြန်ပေးတဲ့ အရာတွေဟာ Review ရဲ့ အမျိုးအစားနဲ့ မကိုက်ညီဘူးဆိုရင် ဖရိန်ဝှစ်ခ်က အမှား సందေရှကို မော်ဒယ်ဆီကို အလိုအလျောက် ပြန်ပို့ပြီး ပြန်ကြိုးစားခိုင်းပါလိမ့်မယ်။ result.output ကို ရတဲ့အခါမှာ အဲဒါဟာ အတည်ပြုပြီးသား Python အရာဝတ္ထု (object) တစ်ခု ဖြစ်နေပြီး IDE ကလည်း ကွက်လပ်တွေကို ဖြည့်စွက်ပေးပါလိမ့်မယ်။
5. Agent ကို တူးလ်တစ်ခု ပေးခြင်း
python
from pydantic_ai import Agent
agent = Agent('anthropic:claude-sonnet-4-6')
@agent.tool_plain
def get_weather(city: str) -> str:
"""သတ်မှတ်ထားသော မြို့၏ လက်ရှိ ရာသီဥတုကို ရှာဖွေရန်"""
return f'{city} မှာ ယခု လက်ရှိ ၂၈ ဒီဂရီ၊ သသာယာ'
result = agent.run_sync('ထိုင်ပေ ရာသီဥတု ဘယ်လိုနေလဲ?')
print(result.output)
အဲဒီ docstring က ကြည့်ကောင်းအောင် ရေးထားတာ မဟုတ်ပါဘူး - မော်ဒယ် မြင်ရမယ့် တူးလ် ဖော်ပြချက် ဖြစ်လာမှာပါ။ ဖန်ရှင်ရဲ့ အမျိုးအစား သတ်မှတ်ချက် (city: str) ကိုလည်း မော်ဒယ် နားလည်တဲ့ ကိန်းရှင် သတ်မှတ်ချက်အဖြစ် ပြောင်းလဲပေးမှာဖြစ်ပြီး ကိန်းရှင်တွေကိုလည်း Pydantic ကနေ တစ်ဆင့် အတည်ပြုပြီးသား ဖြစ်ပါတယ်။
အဆင့်မြင့် နည်းပညာများ
Dependencies ဖြည့်သွင်းခြင်း (Dependency Injection) ဟာ သူရဲ့ လျစ်လျူရှုခံရဆုံး လုပ်ဆောင်ချက်တစ်ခု ဖြစ်ပါတယ်။ RunContext ကနေတစ်ဆင့် ဒေတာဘေ့စ် ချိတ်ဆက်မှု၊ အသုံးပြုသူ အထောက်အထား၊ API client စတာတွေကို အမျိုးအစား လုံခြုံစွာနဲ့ Agent နဲ့ တူးလ်တွေထဲကို ထည့်သွင်းနိုင်ပါတယ် -
python
from dataclasses import dataclass
from pydantic_ai import Agent, RunContext
@dataclass
class Deps:
user_id: int
db: object # သင့်ရဲ့ ဒေတာဘေ့စ် ချိတ်ဆက်မှု
agent = Agent('anthropic:claude-sonnet-4-6', deps_type=Deps)
@agent.tool
def get_orders(ctx: RunContext[Deps]) -> str:
return f'အသုံးပြုသူ {ctx.deps.user_id} ၏ အော်ဒါများကို ရှာဖွေခြင်း'
စမ်းသပ်မှုတွေ ရေးတဲ့အခါမှာ db ကို ပုံတူအရာဝတ္ထု (mock object) နဲ့ အစားထိုးလိုက်ရုံပါပဲ၊ တကယ့် ဒေတာဘေ့စ်ကို ထိစရာမလိုပါဘူး။ ဒါဟာ ယူနစ် စမ်းသပ်မှုတွေ (unit tests) ရေးတဲ့နေရာမှာ အရမ်းကို အရေးကြီးပါတယ်။
Streaming (စီးဆင်းခြင်း): အချိန်နဲ့တပြေးညီ စာရိုက်တဲ့ ပုံစံမျိုး လုပ်ချင်ရင် agent.run_stream() ကို သုံးပါ။ သူက ထွက်လာတာနဲ့ ဖွဲ့စည်းပုံကို အတည်ပြုပေးသွားမှာ ဖြစ်လို့ အသုံးပြုသူ အတွေ့အကြုံ (UX) ကို အများကြီး ပိုကောင်းစေပါတယ်။
Observability (စောင့်ကြည့်လေ့လာနိုင်မှု): Pydantic AI ဟာ အဖွဲ့တူ Logfire နဲ့ ချောမွေ့စွာ ချိတ်ဆက်နိုင်ပါတယ်။ ချိတ်ဆက်ပြီးသွားတာနဲ့ မော်ဒယ် ခေါ်ဆိုမှုတိုင်း၊ တူးလ် အစပြုမှုတိုင်း၊ token ဘယ်လောက်ကုန်သွားလဲ၊ စက္ကန့်ဘယ်လောက်ကြာလဲ ဆိုတာတွေကို အကုန်မြင်တွေ့ရမှာ ဖြစ်ပါတယ်။ LLM အက်ပ်တွေမှာ အခက်ခဲဆုံး debug လုပ်ရတာက "မော်ဒယ်က ဘာလို့ ဒီလို ပြန်လာရတာလဲ" ဆိုတာပါပဲ။ ဒါရှိသွားရင်တော့ မျက်စိမှိတ် ခန့်မှန်းနေစရာ မလိုတော့ပါဘူး။ Agent စီစဉ်မှုကို ပိုမိုပြည့်စုံအောင် လုပ်ချင်ရင်တော့ ကျွန်ုပ်တို့ရဲ့ Agent တည်ဆောက်မှု လမ်းညွှန် နဲ့ တွဲဖက်ဖတ်ရှုနိုင်ပါတယ်။
အဖြစ်များသော အမှားများနှင့် သတိပြုရန်အချက်များ
output_typeထည့်လိုက်ရုံနဲ့ ၁၀၀% လုံခြုံသွားပြီလို့ ထင်ခြင်း: အတည်ပြုချက် မအောင်မြင်တဲ့အခါ ဖရိန်ဝှစ်ခ်က မော်ဒယ်ကို ပြန်ကြိုးစားခိုင်းပေမဲ့ ပြန်ကြိုးစားမှုမှာ ကန့်သတ်ချက် ရှိပါတယ်။ ဆက်တိုက် မအောင်မြင်ရင်တော့ အမှား (exception) ထွက်လာမှာဖြစ်ပြီး သင်ကိုယ်တိုင် try/except သုံးဖို့ လိုအပ်ဆဲ ဖြစ်ပါတယ်။ အမျိုးအစား စစ်ဆေးအတည်ပြုခြင်းက "အညစ်အကြေး ဒေတာတွေ စနစ်ထဲ ဝင်မလာအောင်" လျှော့ချပေးတာ ဖြစ်ပြီး "မော်ဒယ် အမှားမလုပ်ဘဲ မနေဘူး" လို့ ဆိုလိုတာ မဟုတ်ပါဘူး။- တူးလ်ရဲ့ docstring ကို ပေါ့ပေါ့ဆဆ ရေးခြင်း: မော်ဒယ်ဟာ တူးလ်ကို ဘယ်အချိန်မှာ ခေါ်ရမလဲဆိုတာကို docstring ကို အခြေခံပြီး တိတိကျကျ ဆုံးဖြတ်ပါတယ်။ မရေမရာ ရေးထားရင် မော်ဒယ်က လွဲမှားစွာ ခေါ်ဆိုတာ ဒါမှမဟုတ် လုံးဝ မခေါ်တာတွေ ဖြစ်လာပါမယ်။ မော်ဒယ်အတွက် ရေးထားတဲ့ အသုံးပြုမှု လက်စွဲစာအုပ် တစ်အုပ်လို သဘောထားပြီး ရေးပါ။
- တူးလ်ထဲမှာ စည်းမျဉ်းတွေ အလွန်အမင်း ထည့်ထားပေမဲ့ အမှားတွေကို မကိုင်တွယ်ခြင်း: တူးလ်ထဲက ကုဒ်တွေ အမှားတက်တဲ့အခါ အဲဒီသတင်းစကားကို မော်ဒယ်ဆီ ပြန်ပို့ပေးပြီး မော်ဒယ်က အမှားတစ်ဝက်မှာ လည်ပတ်နေပြီး token တွေ အများကြီး ကုန်ကျသွားနိုင်ပါတယ်။ တားဆီးသင့်တဲ့ အမှားတွေကို ကိုယ်တိုင် ကာကွယ်ထားပါ။
- ကုန်ကျစရိတ်ကို လျစ်လျူရှုခြင်း: ဖွဲ့စည်းပုံပါ အထွက်ရလဒ် ပြန်ကြိုးစားမှုတွေ၊ တူးလ် အဆင့်ဆင့် ခေါ်ဆိုမှုတွေကြောင့် token ကုန်ကျမှုဟာ သင်ထင်ထားတာထက် ပိုမြန်ပါတယ်။ တရားဝင် မလွှင့်တင်ခင်မှာ စောင့်ကြည့်လေ့လာမှု (observability) ကို သေချာချိတ်ဆက်ပြီး တကယ့် ကုန်ကျစရိတ်ကို သေချာစစ်ဆေးပါ။
- ဖရိန်ဝှစ်ခ်ကြီးတစ်ခုလို အသုံးချခြင်း: သူ့ကို တမင်တကာ ပေါ့ပါးအောင် ဖန်တီးထားပါတယ်။ အကယ်၍ သင်ဟာ ရှုပ်ထွေးတဲ့ အဆင့်များစွာပါတဲ့ စီစဉ်မှုတွေ၊ ရှိပြီးသား ချိတ်ဆက်ကိရိယာ အမြောက်အများကို လိုအပ်တယ်ဆိုရင် LlamaIndex ဒါမှမဟုတ် အခြား ဖြေရှင်းချက်တွေက ပိုပြီး အလုပ်တွင်နိုင်ပါတယ်။ အတင်းအကျပ် မသုံးပါနဲ့။
TheAI學院 သုံးသပ်ချက်
ရိုးရိုးသားသားပြောရရင် ဈေးကွက်ထဲမှာ Agent ဖရိန်ဝှစ်ခ်တွေ အရမ်းများလွန်းလို့ ရွေးချယ်ရခက်ခဲစေပေမဲ့ Pydantic AI ကတော့ LLM ဒေတာဆော့ဖ်
မေးလေ့ရှိသောမေးခွန်းများ
Pydantic AI နှင့် LangChain က ဘာတွေကွာခြားပြီး ဘယ်ဟာကို ရွေးချယ်သင့်ပါသလဲ။
အကြီးမားဆုံး ကွာခြားချက်မှာ "အလေးချိန်" ပင် ဖြစ်သည်။ LangChain သည် ecosystem ကြီးတစ်ခုဖြစ်ပြီး connector များ၊ integration များ၊ abstraction layer များစွာ ပါဝင်ကာ ရှုပ်ထွေးသော အစီအစဉ်ချမှုများ လိုအပ်သည့် Project ကြီးများအတွက် သင့်လျော်သော်လည်း သင်ယူရသည့် အလွှာမှာ မြင့်မားသည်။ Pydantic AI ကိုမူ ပေါ့ပါးစေရန် ရည်ရွယ်ဖန်တီးထားပြီး အဓိကအားဖြင့် Agent၊ Tools၊ Dependency Injection နှင့် Structured Output စသည့် သဘောတရားအချို့သာ ပါရှိကာ type-safe ဖြစ်မှုကို အဓိက ဦးစားပေးထားသည်။ သင်၏ လိုအပ်ချက်မှာ "မော်ဒယ်၏ အထွက်ရလဒ်ကို ယုံကြည်စိတ်ချရစေရန်နှင့် ရေးသားပုံမှာ မူရင်း Python နှင့် နီးစပ်ရန်" ဖြစ်ပါက Pydantic AI သည် စတင်အသုံးပြုရန် ပို၍မြန်ဆန်ပါသည်။ အကယ်၍ အသင့်သုံး integration များစွာ လိုအပ်ပါက LangChain က ပို၍ အလုပ်တွင်စေပါသည်။ နှစ်ခုစလုံးသည် တစ်ခုနှင့်တစ်ခု ဆန့်ကျင်ဘက်မဟုတ်ဘဲ Project ၏ အရွယ်အစားအပေါ် မူတည်၍ ရွေးချယ်နိုင်ပါသည်။
OpenAI မော်ဒယ်ကို မဖြစ်မနေ သုံးရပါသလား။ Local မော်ဒယ်များကို ချိတ်ဆက် အသုံးပြုနိုင်ပါသလား။
မသုံးမနေရ မဟုတ်ပါ။ Pydantic AI သည် model-agnostic ဖြစ်ပြီး OpenAI၊ Anthropic၊ Google၊ Groq၊ Mistral၊ Cohere၊ Ollama စသည့် ဆယ်ခုကျော်ကို ထောက်ပံ့ပေးထားကာ မော်ဒယ်ပြောင်းလဲလိုပါက Agent တည်ဆောက်သည့် စာသားတစ်ကြောင်းကိုသာ ပြောင်းလဲရန် လိုအပ်ပါသည်။ Local မော်ဒယ်များကို Run လိုပါက Ollama မှတစ်ဆင့် မော်ဒယ်စာသားကို Local ဝန်ဆောင်မှုဆီသို့ ညွှန်ပြပေးရုံဖြင့် ပရိုဂရမ်၏ အခြား အပိုင်းများကို ပြောင်းလဲရန် မလိုပါ။
Beginners များအနေဖြင့် Pydantic ကို မရေးဖူးပါက ဤအရာကို သင်ယူရသည်မှာ ခက်ခဲပါသလား။
အခြေခံ Python နှင့် type hints များကို နားလည်ပါက အခက်အခဲ များလှမည်မဟုတ်ပါ။ Pydantic ၏ အဓိကအချက်မှာ "class ကို အသုံးပြု၍ ဒေတာပုံစံ မည်သို့ရှိသည်ကို သတ်မှတ်ခြင်း" ဖြစ်ပြီး ရေးသားပုံမှာ အလွန် ရိုးရှင်း ရှင်းလင်းပါသည်။ BaseModel ကို Pydantic တွင် မည်သို့ သတ်မှတ်ရမည်ကို ၁၀ မိနစ်ခန့် အရင်လေ့လာပြီးမှ Agent ကို ပြန်လည် ရေးသားပါက ပို၍ ချောမွေ့သွားပါလိမ့်မည်။ အဓိက အခက်အခဲမှာ Agent နှင့် Tools များကို ဒီဇိုင်းထုတ်သည့် စဉ်းစားတွေးခေါ်ပုံ ဖြစ်ပြီး ကျွန်ုပ်တို့၏ Agent တည်ဆောက်ရေး လမ်းညွှန်ချက်နှင့်အတူ တွဲဖက်လေ့လာနိုင်ပါသည်။