Skip to content

Latest commit

ย 

History

History
318 lines (202 loc) ยท 22.8 KB

File metadata and controls

318 lines (202 loc) ยท 22.8 KB

แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ

แž€แžถแžšแžŽแŸ‚แž“แžถแŸ†

แž˜แŸแžšแŸ€แž“แž“แŸแŸ‡แž“แžนแž„แž‚แŸ’แžšแž”แžŠแžŽแŸ’แžแž”แŸ‹แž–แžธแžšแž”แŸ€แž”แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžงแž‘แžถแž แžšแžŽแŸแž€แžผแžŠแž“แŸƒแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž“แŸแŸ‡แŸ”

แž…แžผแž›แžšแžฝแž˜แž‡แžถแž˜แžฝแž™แžขแŸ’แž“แž€แžšแŸ€แž“แž•แŸ’แžŸแŸแž„ แž“แžทแž„แž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ†แž“แžฝแž™

แž˜แžปแž“แž“แžนแž„แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜แž€แŸ’แž›แžผแž“ repo แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ แžŸแžผแž˜แž…แžผแž›แžšแžฝแž˜แž€แŸ’แž“แžปแž„ AI Agents For Beginners Discord channel แžŠแžพแž˜แŸ’แž”แžธแž‘แž‘แžฝแž›แž”แžถแž“แž‡แŸ†แž“แžฝแž™แž€แŸ’แž“แžปแž„แž€แžถแžšแž€แŸ†แžŽแžแŸ‹ แž€แžถแžšโ€‹แžŸแŸ†แžŽแžฝแžšแžขแŸ†แž–แžธแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ แžฌแžŠแžพแž˜แŸ’แž”แžธแž‘แžถแž€แŸ‹แž‘แž„แž‡แžถแž˜แžฝแž™แžขแŸ’แž“แž€แžšแŸ€แž“แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแŸ”

แž•แŸ’แž‘แžปแŸ‡ แžฌ Fork repoโ€‹แž“แŸแŸ‡

แžŠแžพแž˜แŸ’แž”แžธแž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แžŸแžผแž˜แž…แž˜แŸ’แž›แž„ (clone) แžฌ fork GitHub RepositoryแŸ” แžœแžถแž“แžนแž„แž”แž„แŸ’แž€แžพแžแž€แŸ’แž›แžผแž“แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž–แžธแžŸแž˜แŸ’แž—แžถแžšแŸˆแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ แžŠแžผแž…แŸ’แž“แŸแŸ‡แžขแŸ’แž“แž€แžขแžถแž…แžšแžแŸ‹ แžŸแžถแž€แž›แŸ’แž”แž„ แž“แžทแž„แž€แŸ‚แž”แŸ’แžšแŸ‚แž€แžผแžŠแž”แžถแž“!

แž“แŸแŸ‡แžขแžถแž…แž’แŸ’แžœแžพแž”แžถแž“แžŠแŸ„แž™แž…แžปแž…แž›แžพแžแŸ†แžŽแž—แŸ’แž‡แžถแž”แŸ‹ fork the repo

แžฅแžกแžผแžœแž“แŸแŸ‡แžขแŸ’แž“แž€แž‚แžฝแžšแžแŸ‚แž˜แžถแž“แž€แŸ’แž›แžผแž“แž•แŸ’แž‘แžถแž›แŸ‹แžแŸ’แž›แžฝแž“แž“แŸƒแžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž“แŸแŸ‡แž“แŸ…แžแŸ†แžŽแž—แŸ’แž‡แžถแž”แŸ‹แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ–

แžšแŸ‰แŸแž–แžผแžŠแŸ‚แž›แž”แžถแž“ Fork

แž€แžถแžšแž€แŸ’แž›แžผแž“แž™แŸ‰แžถแž„แžŸแŸ’แžšแžถแž› (แžขแž“แžปแž‰แŸ’แž‰แžถแžแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถ / Codespaces)

แžŠแŸ‚แž›แž˜แžถแž“แž”แŸ’แžšแžœแžแŸ’แžแžทแž–แŸแž‰แž“แžทแž™แž˜แžขแžถแž…แž’แŸ’แžœแžพแžฑแŸ’แž™แžšแŸ‰แŸแž”แžผแž˜แžถแž“แž‘แŸ†แž แŸ†แž’แŸ† (~3 GB) แž“แžถแž€แŸ‹แž“แŸ…แž–แŸแž›แžขแŸ’แž“แž€แž‘แžถแž‰แž™แž€แž”แŸ’แžšแžœแžแŸ’แžแžทแž–แŸแž‰แž“แžทแž„แžฏแž€แžŸแžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แžผแž›แžšแžฝแž˜แžแŸ‚แžŸแžทแž€แŸ’แžแžถแžŸแžถแž›แžถ แžฌแžแŸ’แžšแžผแžœแž€แžถแžšแžแŸ‚แžแžแž˜แŸแžšแŸ€แž“แž”แŸ‰แžปแž“แŸ’แž˜แžถแž“แžแž แž”แž…แŸ’แž…แŸแž€แžœแžทแž‘แŸ’แž™แžถแž€แŸ’แž›แžผแž“แž™แŸ‰แžถแž„แžŸแŸ’แžšแžถแž› (แžฌแž€แŸ sparse clone) แžขแžถแž…แž‡แŸ€แžŸแžœแŸ€แž„แž–แžธแž€แžถแžšแž‘แžถแž‰แž™แž€แž—แžถแž‚แž…แŸ’แžšแžพแž“แžŠแŸ„แž™แž€แžถแžแŸ‹แž”แž“แŸ’แžแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แžทแž„/แžฌแžšแŸ†แž›แŸ‚แž„ blobsแŸ”

แž€แŸ’แž›แžผแž“แž™แŸ‰แžถแž„แžŸแŸ’แžšแžถแž›แžšแž แŸแžŸ โ€” แž”แŸ’แžšแžœแžแŸ’แžแžทแž“แžทแž”แž“แžทแž…แŸ’แž†แŸแž™แžแžทแž… แžแŸ‚แž€แŸแž˜แžถแž“แžฏแž€แžŸแžถแžšแž‘แžถแŸ†แž„แžขแžŸแŸ‹

แž‡แŸ†แž“แžฝแžŸ <your-username> แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžถแžšแžแžถแž„แž€แŸ’แžšแŸ„แž˜แž‡แžถแž˜แžฝแž™ URL แž€แŸ’แž›แžผแž“แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ (แžฌ URL upstream แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แžผแž›แž…แžทแžแŸ’แž)แŸ”

แžŠแžพแž˜แŸ’แž”แžธแž€แŸ’แž›แžผแž“แžแŸ‚แž”แŸ’แžšแžœแžแŸ’แžแžทแž€แž˜แŸ’แžšแžทแžแž…แžปแž„แž€แŸ’แžšแŸ„แž™แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ (แž‘แŸ†แž แŸ†แž‘แžถแž‰แž™แž€แžแžทแž…):

git clone --depth 1 https://github.com/<your-username>/ai-agents-for-beginners.git

แžŠแžพแž˜แŸ’แž”แžธแž€แŸ’แž›แžผแž“แžŸแžถแžแžถแž˜แžฝแž™แž‡แžถแž€แŸ‹แž›แžถแž€แŸ‹:

git clone --depth 1 --branch <branch-name> https://github.com/<your-username>/ai-agents-for-beginners.git

แž€แŸ’แž›แžผแž“แž•แŸ’แž“แŸ‚แž€แžแŸ’แž›แŸ‡ (sparse) โ€” blobs แžแžทแž… + แž˜แžถแž“แžแŸ‚แžแžแžŠแŸ‚แž›แž‡แŸ’แžšแžพแžŸแžšแžพแžŸ

แž“แŸแŸ‡แž”แŸ’แžšแžพแž€แŸ’แž›แžผแž“แž•แŸ’แž“แŸ‚แž€ แž“แžทแž„ sparse-checkout (แž‘แžถแž˜แž‘แžถแžšแž‡แžถแž˜แžฝแž™ Git 2.25+ แž“แžทแž„แžขแž“แžปแž‰แŸ’แž‰แžถแžแžฑแŸ’แž™แž”แŸ’แžšแžพ Git แžŸแž˜แŸแž™แž‘แŸ†แž“แžพแž”แžŠแŸ‚แž›แž˜แžถแž“ partial clone support):

git clone --depth 1 --filter=blob:none --sparse https://github.com/<your-username>/ai-agents-for-beginners.git

แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„แžแž repo:

cd ai-agents-for-beginners

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž”แž‰แŸ’แž‡แžถแž€แŸ‹แžแžแžŠแŸ‚แž›แžขแŸ’แž“แž€แž…แž„แŸ‹แž”แžถแž“ (แžงแž‘แžถแž แžšแžŽแŸแžแžถแž„แž€แŸ’แžšแŸ„แž˜แž”แž„แŸ’แž แžถแž‰แž–แžธแž–แžธแžšแžแž):

git sparse-checkout set 00-course-setup 01-intro-to-ai-agents

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แŸ’แž›แžผแž“ แž“แžทแž„แž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžฏแž€แžŸแžถแžš แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž€แžถแžšแžแŸ‚แžฏแž€แžŸแžถแžšแž“แžทแž„แž…แž„แŸ‹แž‘แž‘แžฝแž›แž”แžถแž“แž€แž“แŸ’แž›แŸ‚แž„แž‘แŸ†แž“แŸแžš (แž‚แŸ’แž˜แžถแž“แž”แŸ’แžšแžœแžแŸ’แžแžท git) แžŸแžผแž˜แž›แžปแž”แž‘แžทแž“แŸ’แž“แž“แŸแž™แž”แž…แŸ’แž…แŸแž€แž‘แŸแžŸ repository (๐Ÿ’€ แž˜แžทแž“แžขแžถแž…แž”แž„แŸ’แžœแžทแž›แžœแžทแž‰ โ€” แžขแŸ’แž“แž€แž“แžนแž„แž”แžถแžแŸ‹แž”แž„แŸ‹แž˜แžปแžแž„แžถแžš Git แž‘แžถแŸ†แž„แžขแžŸแŸ‹แŸ– แž‚แŸ’แž˜แžถแž“ commits, pulls, pushes, แžฌแž€แžถแžšแž…แžผแž›แž‘แŸ…แž”แŸ’แžšแžœแžแŸ’แžแžท)แŸ”

# zsh/bash
rm -rf .git
# PowerShell
Remove-Item -Recurse -Force .git

แž”แŸ’แžšแžพ GitHub Codespaces (แž•แŸ’แžŠแž›แŸ‹แžขแž“แžปแžŸแžถแžŸแž“แŸแžŠแžพแž˜แŸ’แž”แžธแž‡แŸ€แžŸแžœแžถแž„แž€แžถแžšแž‘แžถแž‰แž™แž€แž’แŸ†แž“แŸ…แž›แžพแž€แžปแŸ†แž–แŸ’แž™แžผแž‘แŸแžšแž˜แžผแž›แžŠแŸ’แž‹แžถแž“)

  • แž”แž„แŸ’แž€แžพแž Codespace แžแŸ’แž˜แžธแžŸแž˜แŸ’แžšแžถแž”แŸ‹ repo แž“แŸแŸ‡ แžแžถแž˜แžšแž™แŸˆ GitHub UI.

  • แž“แŸ…แž€แŸ’แž“แžปแž„ terminal แž“แŸƒ codespace แžแŸ’แž˜แžธแž˜แžฝแž™แž…แžถแž”แŸ‹แž•แŸ’แžแžพแž˜ แžšแžแŸ‹แžแŸ‚แž˜แžฝแž™แž€แŸ’แž“แžปแž„แž”แž‰แŸ’แž‡แžถแž€แŸ’แž›แžผแž“แž™แŸ‰แžถแž„แžŸแŸ’แžšแžถแž›/ sparse แžแžถแž„แž›แžพ แžŠแžพแž˜แŸ’แž”แžธแž™แž€แžแŸ‚แžแžแž˜แŸแžšแŸ€แž“แžŠแŸ‚แž›แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž€แžถแžš แž˜แž€แž€แŸ’แž“แžปแž„ workspace แž“แŸƒ CodespaceแŸ”

  • แž‡แžถแž‡แž˜แŸ’แžšแžพแžŸแŸ– แž”แž“แŸ’แž‘แžถแž”แŸ‹แž–แžธแž€แŸ’แž›แžผแž“แž“แŸ…แž€แŸ’แž“แžปแž„ Codespaces แžŸแžผแž˜แž™แž€ .git แžŠแžพแž˜แŸ’แž”แžธแžŸแž„แŸ’แžšแŸ„แŸ‡แž‘แŸ†แž แŸ†แž”แž“แŸ’แžแŸ‚แž˜ (แž˜แžพแž›แž”แž‰แŸ’แž‡แžถแž›แžปแž”แžแžถแž„แž›แžพ)แŸ”

  • แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แŸ– แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แžผแž›แž…แžทแžแŸ’แžแž”แžพแž€ repo แžแŸ’แžšแž„แŸ‹แž€แŸ’แž“แžปแž„ Codespaces (แžŠแŸ„แž™แž‚แŸ’แž˜แžถแž“แž€แžถแžšแž€แŸ’แž›แžผแž“แž”แž“แŸ’แžแŸ‚แž˜) แžแŸ’แžšแžผแžœแž™แž›แŸ‹แžแžถ Codespaces แž“แžนแž„แž€แžŸแžถแž„แž”แžšแžทแž™แžถแž€แžถแžŸ devcontainer แž แžพแž™แžขแžถแž…Provision แž’แžถแžแžปแž…แŸ’แžšแžพแž“แž‡แžถแž„แžŠแŸ‚แž›แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž€แžถแžšแŸ” แž€แžถแžš clone แž…แž˜แŸ’แž›แž„แžŸแŸ’แžšแžถแž›แž“แŸ…แž€แŸ’แž“แžปแž„ Codespace แžแŸ’แž˜แžธแž˜แžฝแž™แž•แŸ’แžแž›แŸ‹แž€แžถแžšแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แž›แžพแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŸแž˜แžแŸ’แžแž—แžถแž–แžŒแžธแžŸแž€แŸแŸ”

แž‚แž“แŸ’แž›แžนแŸ‡

  • แžแŸ‚แž„แžแŸ‚แž‡แŸ†แž“แžฝแžŸ URL แž€แŸ’แž›แžผแž“แž‡แžถแž˜แžฝแž™ fork แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แž•แŸ’แž›แžถแžŸแŸ‹/commitแŸ”
  • แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž“แžนแž„แžแŸ’แžšแžผแžœแž€แžถแžšแž”แŸ’แžšแžœแžแŸ’แžแžทแžฌแžฏแž€แžŸแžถแžšแž…แŸ’แžšแžพแž“แž”แž“แŸ’แžแŸ‚แž˜แž€แŸ’แž“แžปแž„แž–แŸแž›แž€แŸ’แžšแŸ„แž™ แžขแŸ’แž“แž€แžขแžถแž… fetch แž–แžฝแž€แžœแžถ แžฌแž€แŸ‚แž…แŸ‚แž€ sparse-checkout แžŠแžพแž˜แŸ’แž”แžธแžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžแžแž”แž“แŸ’แžแŸ‚แž˜แŸ”

แžšแžแŸ‹แž€แžผแžŠ

แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž“แŸแŸ‡แž•แŸ’แžแž›แŸ‹แž“แžผแžœแžŸแŸŠแŸแžšแžธ Jupyter Notebooks แžŠแŸ‚แž›แžขแŸ’แž“แž€แžขแžถแž…แžšแžแŸ‹แžŠแžพแž˜แŸ’แž”แžธแž‘แž‘แžฝแž›แž”แž‘แž–แžทแžŸแŸ„แž’แž“แŸแž–แžธแž€แžถแžšแžŸแž„แŸ‹ AI AgentsแŸ”

แžงแž‘แžถแž แžšแžŽแŸแž€แžผแžŠแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹ Microsoft Agent Framework (MAF) แž‡แžถแž˜แžฝแž™ AzureAIProjectAgentProvider แžŠแŸ‚แž›แž—แŸ’แž‡แžถแž”แŸ‹แž‘แŸ… Azure AI Agent Service V2 (Responses API) แžแžถแž˜แžšแž™แŸˆ Microsoft FoundryแŸ”

แž“แžผแžœแž€แŸ†แžŽแžแŸ‹แžแŸ’แžšแžถ Python แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž˜แžถแž“แžŸแŸ’แž›แžถแž€ *-python-agent-framework.ipynbแŸ”

แžแž˜แŸ’แžšแžผแžœแž€แžถแžš

  • Python 3.12+

    • แžŸแŸ†แž‚แžถแž›แŸ‹: แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž˜แžทแž“แž‘แžถแž“แŸ‹แž˜แžถแž“ Python3.12 แžแŸ’แžšแžผแžœแžแŸ‚แžŠแŸ†แžกแžพแž„แžœแžถแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž”แž„แŸ’แž€แžพแž venv แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แžŠแŸ„แž™แž”แŸ’แžšแžพ python3.12 แžŠแžพแž˜แŸ’แž”แžธแž’แŸ’แžœแžพแžฑแŸ’แž™แž–แŸ’แžšแž˜แž‚แŸ’แž“แžถแž“แžผแžœแž€แŸ†แžŽแŸ‚แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแžŠแŸ†แžกแžพแž„แž–แžธ แžฏแž€แžŸแžถแžš requirements.txtแŸ”

      แžงแž‘แžถแž แžšแžŽแŸ

      แž”แž„แŸ’แž€แžพแžแžแž Python venv:

      python -m venv venv
      

      แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แžŸแž€แž˜แŸ’แž˜แž—แžถแž–แž”แžšแžทแž™แžถแž€แžถแžŸ venv แžŸแž˜แŸ’แžšแžถแž”แŸ‹:

      # zsh/bash
      source venv/bin/activate
      # Command Prompt for Windows
      venv\Scripts\activate
      
  • .NET 10+: แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžผแžŠแžงแž‘แžถแž แžšแžŽแŸแž”แŸ’แžšแžพ .NET แžŸแžผแž˜แž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแžŠแžพแž˜แŸ’แž”แžธแžŠแŸ†แžกแžพแž„ .NET 10 SDK แžฌแž€แŸ’แžšแŸ„แž™แž‘แŸ€แžแŸ” แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€ แž–แžทแž“แžทแžแŸ’แž™แž€แŸ†แžŽแŸ‚ .NET SDK แžŠแŸ‚แž›แž”แžถแž“แžŠแŸ†แžกแžพแž„:

    dotnet --list-sdks
    
  • Azure CLI โ€” แžแŸ’แžšแžผแžœแž€แžถแžšแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽ (authentication). แžŠแŸ†แžกแžพแž„แž–แžธ aka.ms/installazurecli.

  • Azure Subscription โ€” แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž…แžผแž›แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‘แŸ… Microsoft Foundry แž“แžทแž„ Azure AI Agent ServiceแŸ”

  • Microsoft Foundry Project โ€” แž‚แž˜แŸ’แžšแŸ„แž„แž˜แžฝแž™แžŠแŸ‚แž›แž˜แžถแž“แž˜แŸ‰แžผแžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แžŠแžถแž€แŸ‹ (แžง. gpt-4o). แž˜แžพแž› แž‡แŸ†แž แžถแž“ 1 แžแžถแž„แž€แŸ’แžšแŸ„แž˜แŸ”

แž™แžพแž„แž”แžถแž“แžšแžฝแž˜แž”แž‰แŸ’แž…แžผแž›แžฏแž€แžŸแžถแžš requirements.txt แž“แŸ…แžฌแž’แŸ’แžœแžพ root แž“แŸƒ repository แž“แŸแŸ‡ แžŠแŸ‚แž›แž˜แžถแž“แž€แž‰แŸ’แž…แž”แŸ‹ Python แž‘แžถแŸ†แž„แžขแžŸแŸ‹แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž€แžถแžšแžŠแžพแž˜แŸ’แž”แžธแžšแžแŸ‹แžงแž‘แžถแž แžšแžŽแŸแž€แžผแžŠแŸ”

แžขแŸ’แž“แž€แžขแžถแž…แžŠแŸ†แžกแžพแž„แž–แžฝแž€แžœแžถ แžŠแŸ„แž™แžšแžแŸ‹แž”แž‰แŸ’แž‡แžถแžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸ… terminal แž“แŸ… root แž“แŸƒ repository:

pip install -r requirements.txt

แž™แžพแž„แž•แŸ’แžŠแž›แŸ‹แžขแž“แžปแžŸแžถแžŸแž“แŸแžฑแŸ’แž™แž”แž„แŸ’แž€แžพแž Python virtual environment แžŠแžพแž˜แŸ’แž”แžธแž‡แŸ€แžŸแžœแžถแž„แž€แžถแžšแž•แŸ’แž‘แžนแž˜แž•แŸ’แž‘แž„แŸ‹ แž“แžทแž„แž”แž‰แŸ’แž แžถแž•แŸ’แžŸแŸแž„แŸ—แŸ”

แž€แŸ†แžŽแžแŸ‹ VSCode

แž’แŸ’แžœแžพแžฑแŸ’แž™แž”แŸ’แžšแžถแž€แžŠแžแžถแžขแŸ’แž“แž€แž€แŸ†แž–แžปแž„แž”แŸ’แžšแžพแž€แŸ†แžŽแŸ‚ Python แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแž“แŸ…แž€แŸ’แž“แžปแž„ VSCodeแŸ”

แžšแžผแž”แž—แžถแž–

แž€แŸ†แžŽแžแŸ‹ Microsoft Foundry แž“แžทแž„ Azure AI Agent Service

แž‡แŸ†แž แžถแž“ 1: แž”แž„แŸ’แž€แžพแžแž‚แž˜แŸ’แžšแŸ„แž„ Microsoft Foundry

แžขแŸ’แž“แž€แžแŸ’แžšแžผแžœแž€แžถแžšแž˜แžถแž“ Azure AI Foundry hub แž“แžทแž„ project แžŠแŸ‚แž›แž˜แžถแž“แž˜แŸ‰แžผแžŠแŸ‚แž›แž”แžถแž“แžŠแžถแž€แŸ‹แžŠแžพแž˜แŸ’แž”แžธแžšแžแŸ‹ notebooksแŸ”

  1. แž…แžผแž›แž‘แŸ… ai.azure.com แž“แžทแž„แž…แžปแŸ‡แžˆแŸ’แž˜แŸ„แŸ‡แž‡แžถแž˜แžฝแž™แž‚แžŽแž“แžธ Azure แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ”
  2. แž”แž„แŸ’แž€แžพแž hub (แžฌแž”แŸ’แžšแžพ hub แžŠแŸ‚แž›แž˜แžถแž“แžšแžฝแž…)แŸ” แž˜แžพแž›แŸ– Hub resources overview.
  3. แž“แŸ…แž€แŸ’แž“แžปแž„ hub แžŸแžผแž˜แž”แž„แŸ’แž€แžพแž projectแŸ”
  4. แžŠแžถแž€แŸ‹แž˜แŸ‰แžผแžŠแŸ‚แž› (แžง. gpt-4o) แž–แžธ Models + Endpoints โ†’ Deploy modelแŸ”

แž‡แŸ†แž แžถแž“ 2: แž‘แžถแž‰แž™แž€ Project Endpoint แž“แžทแž„ แžˆแŸ’แž˜แŸ„แŸ‡ Model Deployment แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€

แž–แžธแž‚แž˜แŸ’แžšแŸ„แž„แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž“แŸ…แž€แŸ’แž“แžปแž„ Microsoft Foundry portal:

  • Project Endpoint โ€” แž…แžผแž›แž‘แŸ…แž•แŸ’แž‘แžถแŸ†แž„ Overview แž แžพแž™แž…แž˜แŸ’แž›แž„ URL endpointแŸ”

Project Connection String

  • Model Deployment Name โ€” แž…แžผแž›แž‘แŸ… Models + Endpoints, แž‡แŸ’แžšแžพแžŸแž˜แŸ‰แžผแžŠแŸ‚แž›แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แžถแž“แžŠแžถแž€แŸ‹ แž แžพแž™แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹ Deployment name (แžง. gpt-4o)แŸ”

แž‡แŸ†แž แžถแž“ 3: แž…แžผแž›แž‘แŸ… Azure แžŠแŸ„แž™แž”แŸ’แžšแžพ az login

Notebooks แž‘แžถแŸ†แž„แžขแžŸแŸ‹แž”แŸ’แžšแžพ AzureCliCredential แžŸแž˜แŸ’แžšแžถแž”แŸ‹ authentication โ€” แž‚แŸ’แž˜แžถแž“ API keys แžแŸ’แžšแžผแžœแž‚แŸ’แžšแž”แŸ‹แž‚แŸ’แžšแž„แŸ” แž“แŸแŸ‡แž…แžถแŸ†แž”แžถแž…แŸ‹แžฑแŸ’แž™แžขแŸ’แž“แž€แž…แžผแž›แžŠแŸ„แž™แž”แŸ’แžšแžพ Azure CLIแŸ”

  1. แžŠแŸ†แžกแžพแž„ Azure CLI แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž˜แžทแž“แž‘แžถแž“แŸ‹แž˜แžถแž“: aka.ms/installazurecli

  2. แž…แžผแž› แžŠแŸ„แž™แžšแžแŸ‹:

    az login
    

    แžฌแž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž“แŸ…แž€แŸ’แž“แžปแž„แž”แžšแžทแž™แžถแž€แžถแžŸ remote/Codespace แžŠแŸ‚แž›แž˜แžทแž“แž˜แžถแž“ browser:

    az login --use-device-code
    
  3. แž‡แŸ’แžšแžพแžŸ subscription แž”แŸ’แžšแžŸแžทแž“แž”แžพแž˜แžถแž“แžŸแŸ†แžŽแžพ โ€” แž‡แŸ’แžšแžพแžŸ subscription แžŠแŸ‚แž›แž˜แžถแž“แž‚แž˜แŸ’แžšแŸ„แž„ Foundry แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ”

  4. แž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹ แžแžถแžขแŸ’แž“แž€แž”แžถแž“แž…แžผแž›:

    az account show
    

แž แŸแžแžปแžขแŸ’แžœแžธ az login? Notebooks Authenticate แžŠแŸ„แž™แž”แŸ’แžšแžพ AzureCliCredential แž–แžธ package azure-identityแŸ” แž“แŸแŸ‡แž˜แžถแž“แž“แŸแž™แžแžถ session Azure CLI แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แž•แŸ’แžแž›แŸ‹แžขแžแŸ’แžแžŸแž‰แŸ’แž‰แžถแžŽ โ€” แž‚แŸ’แž˜แžถแž“ API keys แžฌ secrets แž“แŸ…แž€แŸ’แž“แžปแž„แžฏแž€แžŸแžถแžš .env แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ” แž“แŸแŸ‡แž‚แžบแž‡แžถแžŠแŸ†แžŽแžพแžšแž€แžถแžšแžŸแž“แŸ’แžแžทแžŸแžปแžแž›แŸ’แžขแž”แŸ†แž•แžปแž (security best practice)แŸ”

แž‡แŸ†แž แžถแž“ 4: แž”แž„แŸ’แž€แžพแžแžฏแž€แžŸแžถแžš .env แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€

แž…แž˜แŸ’แž›แž„แžฏแž€แžŸแžถแžšแžงแž‘แžถแž แžšแžŽแŸ:

# zsh/bash
cp .env.example .env
# แž–แžถแžœแžพแžŸแŸ‚แž›
Copy-Item .env.example .env

แž”แžพแž€ .env แž แžพแž™แž”แŸ†แž–แŸแž‰แžแž˜แŸ’แž›แŸƒแž‘แžถแŸ†แž„แž–แžธแžšแž“แŸแŸ‡แŸ–

AZURE_AI_PROJECT_ENDPOINT=https://<your-project>.services.ai.azure.com/api/projects/<your-project-id>
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-4o
แžขแžแŸแžš แž“แŸ…แžฏแžŽแžถแžขแžถแž…แžšแž€แž”แžถแž“
AZURE_AI_PROJECT_ENDPOINT Foundry portal โ†’ แž‚แž˜แŸ’แžšแŸ„แž„แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ โ†’ แž‘แŸ†แž–แŸแžš Overview
AZURE_AI_MODEL_DEPLOYMENT_NAME Foundry portal โ†’ Models + Endpoints โ†’ แžˆแŸ’แž˜แŸ„แŸ‡แž˜แŸ‰แžผแžŠแŸ‚แž›แžŠแŸ‚แž›แž”แžถแž“แžŠแžถแž€แŸ‹

แž“เธฑเนˆเธ™แž แžพแž™แž‚แžบแžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แŸแžšแŸ€แž“แž—แžถแž‚แž…แŸ’แžšแžพแž“! Notebooks แž“แžนแž„ Authenticate แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแžแžถแž˜แžšแž™แŸˆ session az login แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ”

แž‡แŸ†แž แžถแž“ 5: แžแŸ†แžกแžพแž„แž€แžถแžš_DEPENDENCIES Python

pip install -r requirements.txt

แž™แžพแž„แž•แŸ’แžŠแž›แŸ‹แžขแž“แžปแžŸแžถแžŸแž“แŸแžฑแŸ’แž™แžšแžแŸ‹แž“แŸแŸ‡แž“แŸ…แž€แŸ’แž“แžปแž„ virtual environment แžŠแŸ‚แž›แžขแŸ’แž“แž€แž”แžถแž“แž”แž„แŸ’แž€แžพแžแž˜แžปแž“แž“แŸแŸ‡แŸ”

แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แŸแžšแŸ€แž“ 5 (Agentic RAG)

แž˜แŸแžšแŸ€แž“ 5 แž”แŸ’แžšแžพ Azure AI Search แžŸแž˜แŸ’แžšแžถแž”แŸ‹ retrieval-augmented generationแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž˜แžถแž“แž‚แž˜แŸ’แžšแŸ„แž„แžšแŸ€แž“แž˜แŸแžšแŸ€แž“แž“แŸ„แŸ‡ แžŸแžผแž˜แž”แž“แŸ’แžแŸ‚แž˜แžขแžแŸแžšแž‘แžถแŸ†แž„แž“แŸแŸ‡แž‘แŸ…แžฏแž€แžŸแžถแžš .env แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ–

แžขแžแŸแžš แž“แŸ…แžฏแžŽแžถแžขแžถแž…แžšแž€แž”แžถแž“
AZURE_SEARCH_SERVICE_ENDPOINT Azure portal โ†’ แžŠแŸ’แžšแŸแžŸOURCE Azure AI Search แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ โ†’ Overview โ†’ URL
AZURE_SEARCH_API_KEY Azure portal โ†’ แžŠแŸ’แžšแŸแžŸOURCE Azure AI Search แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ โ†’ Settings โ†’ Keys โ†’ แž€แžผแž“แžŸแŸ„แž€แž˜แŸ’แž˜แžœแžทแž’แžธ admin แž˜แžปแž

แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แŸแžšแŸ€แž“ 6 แž“แžทแž„ แž˜แŸแžšแŸ€แž“ 8 (GitHub Models)

แžแŸ’แž›แŸ‡แž“แŸƒ notebooks แž€แŸ’แž“แžปแž„แž˜แŸแžšแŸ€แž“ 6 แž“แžทแž„ 8 แž”แŸ’แžšแžพ GitHub Models แž˜แžทแž“แž”แŸ’แžšแžพ Azure AI FoundryแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แžšแžแŸ‹แžงแž‘แžถแž แžšแžŽแŸแž‘แžถแŸ†แž„แž“แŸ„แŸ‡ แžŸแžผแž˜แž”แž“แŸ’แžแŸ‚แž˜แžขแžแŸแžšแž‘แžถแŸ†แž„แž“แŸแŸ‡แž…แžผแž›แž€แŸ’แž“แžปแž„ .env แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ–

แžขแžแŸแžš แž“แŸ…แžฏแžŽแžถแžขแžถแž…แžšแž€แž”แžถแž“
GITHUB_TOKEN GitHub โ†’ Settings โ†’ Developer settings โ†’ Personal access tokens
GITHUB_ENDPOINT Use https://models.inference.ai.azure.com (default value)
GITHUB_MODEL_ID แžˆแŸ’แž˜แŸ„แŸ‡แž˜แŸ‰แžผแžŠแŸ‚แž›แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แŸ’แžšแžพ (แžง. gpt-4o-mini)

แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž”แž“แŸ’แžแŸ‚แž˜แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž˜แŸแžšแŸ€แž“ 8 (Bing Grounding Workflow)

Notebook workflow แž›แž€แŸ’แžแžแžŽแŸ’แžŒแž“แŸ…แž˜แŸแžšแŸ€แž“ 8 แž”แŸ’แžšแžพ Bing grounding แžแžถแž˜แžšแž™แŸˆ Azure AI FoundryแŸ” แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž…แž„แŸ‹แžšแžแŸ‹แžงแž‘แžถแž แžšแžŽแŸแž“แŸ„แŸ‡ แžŸแžผแž˜แž”แž“แŸ’แžแŸ‚แž˜แžขแžแŸแžšแž“แŸแŸ‡แž‘แŸ… .env แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€แŸ–

แžขแžแŸแžš แž“แŸ…แžฏแžŽแžถแžขแžถแž…แžšแž€แž”แžถแž“
BING_CONNECTION_ID Azure AI Foundry portal โ†’ แž‚แž˜แŸ’แžšแŸ„แž„แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ โ†’ Management โ†’ Connected resources โ†’ แž€แžถแžšแžแž—แŸ’แž‡แžถแž”แŸ‹ Bing แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ โ†’ แž…แž˜แŸ’แž›แž„ connection ID

แžŠแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แž”แž‰แŸ’แž แžถ

แž€แŸ†แž แžปแžŸแž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžŸแž‰แŸ’แž‰แžถแž”แŸแžแŸ’แžš SSL แž›แžพ macOS

แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž“แŸ…แž›แžพ macOS แž แžพแž™แž”แŸ’แžšแž‘แŸ‡แžƒแžพแž‰แž€แŸ†แž แžปแžŸแžŠแžผแž…แž‡แžถ:

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain

แž“แŸแŸ‡แž‡แžถแž”แž‰แŸ’แž แžถแž”แžถแž“แžŠแžนแž„แž“แŸ… Python แž›แžพ macOS แžŠแŸ‚แž›แžŸแž‰แŸ’แž‰แžถแž”แŸแžแŸ’แžš SSL แžšแž”แžŸแŸ‹แž”แŸ’แžšแž–แŸแž“แŸ’แž’แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แž‘แžฝแž›แžŸแŸ’แž‚แžถแž›แŸ‹แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแŸ” แžŸแžถแž€แž›แŸ’แž”แž„แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแžผแž…แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž€แŸ’แž“แžปแž„แž›แŸ†แžŠแžถแž”แŸ‹แŸ–

แž‡แž˜แŸ’แžšแžพแžŸ 1: แžšแžแŸ‹แžŸแŸ’แž‚แŸ’แžšแžธแž” Install Certificates แžšแž”แžŸแŸ‹ Python (แžขแž“แžปแž‰แŸ’แž‰แžถแž)

# แž”แŸ’แžแžผแžš 3.XX แž‡แžถแž€แŸ†แžŽแŸ‚ Python แžŠแŸ‚แž›แž”แžถแž“แžŠแŸ†แžกแžพแž„แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ (แžง. 3.12 แžฌ 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command

แž‡แž˜แŸ’แžšแžพแžŸ 2: แž”แŸ’แžšแžพ connection_verify=False แž“แŸ…แž€แŸ’แž“แžปแž„ notebook แžšแž”แžŸแŸ‹แžขแŸ’แž“แž€ (แžŸแž˜แŸ’แžšแžถแž”แŸ‹ notebooks GitHub Models แžแŸ‚แž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡)

แž“แŸ…แž€แŸ’แž“แžปแž„ Notebook แž˜แŸแžšแŸ€แž“ 6 (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb), แž˜แžถแž“แžŠแŸ†แžŽแŸ„แŸ‡แžŸแŸ’แžšแžถแž™แžŠแŸ‚แž›แž”แžถแž“ comment แžŠแžถแž€แŸ‹แžšแžฝแž…แŸ” แžŸแžผแž˜แž›แžปแž” comment connection_verify=False แž–แŸแž›แž”แž„แŸ’แž€แžพแž client:

client = ChatCompletionsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(token),
    connection_verify=False,  # แž”แžทแž‘แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ SSL แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž‡แžฝแž”แž”แž‰แŸ’แž แžถแžœแžทแž‰แŸ’แž‰แžถแž”แž“แž”แŸแžแŸ’แžš
)

โš ๏ธ แž‚แŸ’แžšแŸ„แž„แž€แžถแžšแž–แžถแžš: แž€แžถแžšแž”แžทแž‘แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹ SSL (connection_verify=False) แž”แž“แŸ’แžแž™แžŸแžปแžœแžแŸ’แžแžทแž—แžถแž–แžŠแŸ„แž™แžšแŸ†แž›แž„แž€แžถแžšแž•แŸ’แž‘แŸ€แž„แž•แŸ’แž‘แžถแžแŸ‹แžŸแž‰แŸ’แž‰แžถแž”แŸแžแŸ’แžšแŸ” แž”แŸ’แžšแžพแžœแžทแž’แžธแž“แŸแŸ‡แžแŸ‚แž‡แžถแžœแžทแž›แž‡แžถแž˜แžปแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž”แžšแžทแž™แžถแž€แžถแžŸแžขแž—แžทแžœแžŒแŸ’แžแž“แŸแž”แŸ‰แžปแžŽแŸ’แžŽแŸ„แŸ‡ แž˜แžทแž“แžแŸ’แžšแžผแžœแž”แŸ’แžšแžพแž“แŸ…แž€แŸ’แž“แžปแž„แž•แž›แžทแžแž€แž˜แŸ’แž˜แŸ”

แž‡แž˜แŸ’แžšแžพแžŸ 3: แžŠแŸ†แžกแžพแž„ แž“แžทแž„แž”แŸ’แžšแžพ truststore

pip install truststore

แž”แž“แŸ’แž‘แžถแž”แŸ‹แž˜แž€แž”แž“แŸ’แžแŸ‚แž˜แžขแŸ’แžœแžธแŸ—แžแžถแž„แž€แŸ’แžšแŸ„แž˜แž“แŸ…แžแžถแž„แž›แžพแž“แŸƒ notebook แžฌ script แž˜แžปแž“แž’แŸ’แžœแžพแž€แžถแžšแž แŸ…แž”แžŽแŸ’แžแžถแž‰แžŽแžถแž˜แžฝแž™:

import truststore
truststore.inject_into_ssl()

แžแŸ’แžšแžผแžœแžˆแž”แŸ‹แž“แŸ…แž€แž“แŸ’แž›แŸ‚แž„แžŽแžถแž˜แžฝแž™?

แž”แŸ’แžšแžŸแžทแž“แž”แžพแžขแŸ’แž“แž€แž˜แžถแž“แž”แž‰แŸ’แž แžถแžšแžแŸ‹แž€แžถแžšแž€แŸ†แžŽแžแŸ‹แž“แŸแŸ‡ แžŸแžผแž˜แž…แžผแž›แž‘แŸ…แž€แŸ’แž“แžปแž„ Azure AI Community Discord แžฌ แž”แž„แŸ’แž€แžพแž issueแŸ”

แž˜แŸแžšแŸ€แž“แž”แž“แŸ’แž‘แžถแž”แŸ‹

แžฅแžกแžผแžœแž“แŸแŸ‡แžขแŸ’แž“แž€แž”แžถแž“แžšแžฝแž…แžšแžถแž›แŸ‹แž€แŸ’แž“แžปแž„แž€แžถแžšแžšแŸ€แž“แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž€แžผแžŠแžŸแž˜แŸ’แžšแžถแž”แŸ‹แžœแž‚แŸ’แž‚แžŸแžทแž€แŸ’แžŸแžถแž“แŸแŸ‡แŸ” แžŸแŸ†แžŽแžถแž„แž›แŸ’แžขแž€แŸ’แž“แžปแž„แž€แžถแžšแžŸแžทแž€แŸ’แžŸแžถแž”แž“แŸ’แžแŸ‚แž˜แžขแŸ†แž–แžธแž–แžทแž—แž– AI Agents!

Introduction to AI Agents and Agent Use Cases


แžŸแŸแž…แž€แŸ’แžŠแžธแž”แŸ’แžšแž€แžถแžŸแž˜แžทแž“แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœ: แžฏแž€แžŸแžถแžšแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž€แž”แŸ’แžšแŸ‚แžŠแŸ„แž™แž”แŸ’แžšแžพแžŸแŸแžœแžถแž€แž˜แŸ’แž˜แž”แž€แž”แŸ’แžšแŸ‚แžŠแŸ„แž™ AI Co-op Translator. แž€แŸ’แž“แžปแž„แž–แŸแž›แž™แžพแž„แžแžทแžแžแŸ†แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž—แžถแž–แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœ แžŸแžผแž˜แž™แž›แŸ‹แžŠแžนแž„แžแžถแž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚แžŠแŸ„แž™แžŸแŸ’แžœแŸแž™แž”แŸ’แžšแžœแžแŸ’แžแžทแžขแžถแž…แž˜แžถแž“แž€แŸ†แž แžปแžŸ แžฌแž—แžถแž–แž˜แžทแž“แžแŸ’แžšแžนแž˜แžแŸ’แžšแžผแžœแŸ” แžฏแž€แžŸแžถแžšแžŠแžพแž˜แž€แŸ’แž“แžปแž„แž—แžถแžŸแžถแž˜แŸ’แž…แžถแžŸแŸ‹แžŠแžพแž˜แž‚แžฝแžšแžแŸ’แžšแžผแžœแž”แžถแž“แž…แžถแžแŸ‹แž‘แžปแž€แž‡แžถแž”แŸ’แžšแž—แž–แž•แŸ’แž›แžผแžœแž€แžถแžšแž“แŸƒแž–แŸแžแŸŒแž˜แžถแž“แŸ” แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž–แŸแžแŸŒแž˜แžถแž“แžŸแŸ†แžแžถแž“แŸ‹แŸ— แž™แžพแž„แžŸแžผแž˜แžŽแŸ‚แž“แžถแŸ†แžฑแŸ’แž™แž”แŸ’แžšแžพแž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚แžŠแŸ„แž™แžขแŸ’แž“แž€แž‡แŸ†แž“แžถแž‰แž˜แž“แžปแžŸแŸ’แžŸแŸ” แž™แžพแž„แž˜แžทแž“แž‘แž‘แžฝแž›แžแžปแžŸแžแŸ’แžšแžผแžœแž…แŸ†แž–แŸ„แŸ‡แž€แžถแžšแž™แž›แŸ‹แž…แŸ’แžšแžกแŸ† แžฌแž€แžถแžšแž”แž€แž™แž›แŸ‹แžแžปแžŸแžŽแžถแž˜แžฝแž™แžŠแŸ‚แž›แž€แžพแžแžกแžพแž„แž–แžธแž€แžถแžšแž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แž€แžถแžšแž”แž€แž”แŸ’แžšแŸ‚แž“แŸแŸ‡แž‘แŸแŸ”