ai-agents-for-beginners

การตั้งค่าหลักสูตร

บทนำ

บทเรียนนี้จะครอบคลุมวิธีการรันตัวอย่างโค้ดของหลักสูตรนี้

เข้าร่วมกับผู้เรียนอื่นและขอความช่วยเหลือ

ก่อนที่คุณจะเริ่มโคลนรีโปของคุณ เข้าร่วมที่ ช่อง Discord AI Agents For Beginners เพื่อขอความช่วยเหลือในการตั้งค่า คำถามเกี่ยวกับหลักสูตร หรือเชื่อมต่อกับผู้เรียนคนอื่น ๆ

โคลนหรือโฟร์กรูปรีโปนี้

เพื่อเริ่มต้น กรุณาโคลนหรือโฟร์กรูป GitHub Repository นี้ ซึ่งจะช่วยให้คุณมีเวอร์ชันของวัสดุหลักสูตรที่คุณสามารถรัน ทดสอบ และปรับแต่งโค้ดได้เอง!

คุณสามารถทำได้โดยคลิกที่ลิงก์ โฟร์กรูปรีโป

ตอนนี้คุณควรมีเวอร์ชันโฟร์กของหลักสูตรนี้ในลิงก์ดังต่อไปนี้:

Forked Repo

โคลนแบบตื้น (แนะนำสำหรับเวิร์คช็อป / Codespaces)

รีโปเต็มสามารถมีขนาดใหญ่ (~3 GB) เมื่อคุณดาวน์โหลดประวัติทั้งหมดและไฟล์ทั้งหมด หากคุณเข้าร่วมแค่เวิร์คช็อปหรือแค่ต้องการโฟลเดอร์บทเรียนบางส่วน โคลนแบบตื้น (หรือโคลนแบบบางส่วน) จะช่วยหลีกเลี่ยงการดาวน์โหลดส่วนใหญ่นั้นโดยลดขนาดประวัติและ/หรือข้ามบล็อบบางส่วน

โคลนแบบตื้นอย่างรวดเร็ว — ประวัติน้อยที่สุด ไฟล์ทั้งหมด

แทนที่ <your-username> ในคำสั่งด้านล่างด้วย URL ของโฟร์กของคุณ (หรือ URL แหล่งต้นทางหากคุณต้องการ)

เพื่อโคลนประวัติการคอมมิตล่าสุดเท่านั้น (ดาวน์โหลดขนาดเล็ก):

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) — บล็อบน้อยที่สุด + โฟลเดอร์ที่เลือกเท่านั้น

ใช้การโคลนแบบบางส่วนและ sparse-checkout (ต้องใช้ Git 2.25+ และแนะนำให้ใช้ Git รุ่นใหม่ที่รองรับการโคลนแบบบางส่วน):

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

เข้าสู่โฟลเดอร์รีโป:

cd ai-agents-for-beginners

จากนั้นระบุโฟลเดอร์ที่คุณต้องการ (ตัวอย่างด้านล่างแสดงสองโฟลเดอร์):

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

หลังโคลนและยืนยันไฟล์แล้ว หากคุณต้องการเฉพาะไฟล์และต้องการเพิ่มพื้นที่ว่าง (ไม่มีประวัติ git) กรุณาลบเมตาดาต้ารีโป (💀ไม่สามารถย้อนกลับ — คุณจะสูญเสียการใช้งาน Git ทั้งหมด: ไม่มีคอมมิต, ดึง, ส่ง, หรือเข้าถึงประวัติ)

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

การใช้ GitHub Codespaces (แนะนำเพื่อหลีกเลี่ยงการดาวน์โหลดขนาดใหญ่ในเครื่อง)

เคล็ดลับ

การรันโค้ด

หลักสูตรนี้มีชุด Jupyter Notebooks ที่คุณสามารถรันเพื่อประสบการณ์การสร้าง AI Agents ด้วยตัวเอง

ตัวอย่างโค้ดใช้ Microsoft Agent Framework (MAF) กับ AzureAIProjectAgentProvider ซึ่งเชื่อมต่อกับ Azure AI Agent Service V2 (API ตอบกลับ) ผ่าน Microsoft Foundry

โน้ตบุ๊ค Python ทั้งหมดจะมีป้ายชื่อ *-python-agent-framework.ipynb

ความต้องการ

เราได้รวมไฟล์ requirements.txt ไว้ในโฟลเดอร์รูทของรีโปนี้ ซึ่งมีแพ็คเกจ Python ที่จำเป็นทั้งหมดสำหรับรันตัวอย่างโค้ด

คุณสามารถติดตั้งโดยรันคำสั่งต่อไปนี้ในเทอร์มินัลที่รูทรีโป:

pip install -r requirements.txt

เราแนะนำให้สร้างสภาพแวดล้อมเสมือน Python เพื่อป้องกันข้อขัดแย้งและปัญหา

ตั้งค่า VSCode

ตรวจสอบให้แน่ใจว่าคุณใช้เวอร์ชัน Python ที่ถูกต้องใน VSCode

image

การตั้งค่า Microsoft Foundry และ Azure AI Agent Service

ขั้นตอนที่ 1: สร้างโครงการ Microsoft Foundry

คุณจำเป็นต้องมี Azure AI Foundry hub และ project พร้อมโมเดลที่เผยแพร่ เพื่อรันโน้ตบุ๊ค

  1. ไปที่ ai.azure.com และเข้าสู่ระบบด้วยบัญชี Azure ของคุณ
  2. สร้าง hub (หรือใช้ที่มีอยู่แล้ว) ดูที่: ภาพรวมทรัพยากร Hub
  3. ใน hub สร้าง project
  4. เผยแพร่โมเดล (เช่น gpt-4o) จาก Models + EndpointsDeploy model

ขั้นตอนที่ 2: ดึง Endpoint โครงการและชื่อการเผยแพร่โมเดล

จากโครงการในพอร์ทัล Microsoft Foundry:

Project Connection String

ขั้นตอนที่ 3: ลงชื่อเข้าใช้ Azure ด้วย az login

โน้ตบุ๊คทุกตัวใช้ AzureCliCredential สำหรับการยืนยันตัวตน — ไม่มีการจัดการกับ API keys แต่อย่างใด ซึ่งคุณจำเป็นต้องลงชื่อเข้าใช้ผ่าน Azure CLI

  1. ติดตั้ง Azure CLI หากคุณยังไม่มี: aka.ms/installazurecli

  2. ลงชื่อเข้าใช้ โดยรันคำสั่ง:

     az login
    

    หรือถ้าคุณอยู่ในสภาพแวดล้อมระยะไกล / Codespace ที่ไม่มีเบราว์เซอร์:

     az login --use-device-code
    
  3. เลือก subscription หากถาม — เลือกตัวที่มีโครงการ Foundry ของคุณ

  4. ตรวจสอบ การเข้าสู่ระบบของคุณ:

     az account show
    

ทำไมต้องใช้ az login? โน้ตบุ๊คยืนยันตัวตนด้วย AzureCliCredential จากแพ็คเกจ azure-identity ซึ่งหมายความว่าเซสชัน Azure CLI ของคุณจะเป็นตัวให้สิทธิ์ — ไม่ต้องใช้ API keys หรือความลับในไฟล์ .env นี่คือ แนวปฏิบัติด้านความปลอดภัยที่ดีที่สุด

ขั้นตอนที่ 4: สร้างไฟล์ .env ของคุณ

คัดลอกไฟล์ตัวอย่าง:

# zsh/bash
cp .env.example .env
# PowerShell
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 → โครงการของคุณ → หน้า Overview
AZURE_AI_MODEL_DEPLOYMENT_NAME พอร์ทัล Foundry → Models + Endpoints → ชื่อการเผยแพร่โมเดลของคุณ

เท่านี้สำหรับหลายบทเรียน! โน้ตบุ๊คจะยืนยันตัวตนโดยอัตโนมัติผ่านเซสชัน az login ของคุณ

ขั้นตอนที่ 5: ติดตั้ง Dependencies ของ Python

pip install -r requirements.txt

เราแนะนำให้รันคำสั่งนี้ภายในสภาพแวดล้อมเสมือนที่คุณสร้างไว้ก่อนหน้านี้

การตั้งค่าเพิ่มเติมสำหรับบทเรียนที่ 5 (Agentic RAG)

บทเรียน 5 ใช้ Azure AI Search สำหรับการสร้างแบบมีการเสริมการค้นคืน หากคุณตั้งใจจะรันบทเรียนนั้น ให้เพิ่มตัวแปรเหล่านี้ในไฟล์ .env ของคุณ:

ตัวแปร ที่หาค่าได้
AZURE_SEARCH_SERVICE_ENDPOINT พอร์ทัล Azure → แหล่งทรัพยากร Azure AI Search ของคุณ → Overview → URL
AZURE_SEARCH_API_KEY พอร์ทัล Azure → แหล่งทรัพยากร Azure AI Search ของคุณ → SettingsKeys → คีย์แอดมินหลัก

การตั้งค่าเพิ่มเติมสำหรับบทเรียนที่ 6 และ 8 (GitHub Models)

โน้ตบุ๊คบางส่วนในบทเรียนที่ 6 และ 8 ใช้ GitHub Models แทน Azure AI Foundry หากคุณตั้งใจจะรันตัวอย่างเหล่านั้น ให้เพิ่มตัวแปรเหล่านี้ในไฟล์ .env ของคุณ:

ตัวแปร ที่หาค่าได้
GITHUB_TOKEN GitHub → SettingsDeveloper settingsPersonal access tokens
GITHUB_ENDPOINT ใช้ https://models.inference.ai.azure.com (ค่าปริยาย)
GITHUB_MODEL_ID ชื่อโมเดลที่ใช้ (เช่น gpt-4o-mini)

การตั้งค่าเพิ่มเติมสำหรับบทเรียนที่ 8 (Bing Grounding Workflow)

โน้ตบุ๊คเวิร์กโฟลว์เงื่อนไขในบทเรียนที่ 8 ใช้ Bing grounding ผ่าน Azure AI Foundry หากคุณตั้งใจจะรันตัวอย่างนี้ ให้เพิ่มตัวแปรนี้ในไฟล์ .env ของคุณ:

ตัวแปร ที่หาค่าได้
BING_CONNECTION_ID พอร์ทัล Azure AI Foundry → โครงการของคุณ → ManagementConnected resources → การเชื่อมต่อ Bing ของคุณ → คัดลอก ID การเชื่อมต่อ

การแก้ไขปัญหา

ข้อผิดพลาดการตรวจสอบใบรับรอง SSL บน macOS

ถ้าคุณใช้ macOS แล้วพบข้อผิดพลาดแบบนี้:

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

นี่คือปัญหาที่ทราบของ Python บน macOS ที่ใบรับรอง SSL ของระบบไม่ถูกไว้วางใจโดยอัตโนมัติ ลองวิธีแก้ไขต่อไปนี้ตามลำดับ:

ตัวเลือก 1: รันสคริปต์ติดตั้งใบรับรองของ Python (แนะนำ)

# แทนที่ 3.XX ด้วยเวอร์ชัน Python ที่คุณติดตั้ง (เช่น 3.12 หรือ 3.13):
/Applications/Python\ 3.XX/Install\ Certificates.command

ตัวเลือก 2: ใช้ connection_verify=False ในโน้ตบุ๊คของคุณ (ใช้เฉพาะกับโน้ตบุ๊ค GitHub Models เท่านั้น)

ในโน้ตบุ๊คบทเรียน 6 (06-building-trustworthy-agents/code_samples/06-system-message-framework.ipynb) มีวิธีแก้ไขที่คอมเมนต์ไว้แล้ว เพียงเอาคอมเมนต์ออกที่ connection_verify=False เมื่อสร้างไคลเอนต์:

client = ChatCompletionsClient(
    endpoint=endpoint,
    credential=AzureKeyCredential(token),
    connection_verify=False,  # ปิดการตรวจสอบ SSL หากคุณพบข้อผิดพลาดของใบรับรอง
)

⚠️ คำเตือน: การปิดใช้งานการตรวจสอบ SSL (connection_verify=False) จะลดความปลอดภัยโดยการข้ามการตรวจสอบใบรับรอง ใช้วิธีนี้เฉพาะในสภาพแวดล้อมการพัฒนาชั่วคราวเท่านั้น ห้ามใช้ในระบบโปรดัคชัน

ตัวเลือก 3: ติดตั้งและใช้ truststore

pip install truststore

จากนั้นเพิ่มบรรทัดนี้ไว้บนสุดของโน้ตบุ๊คหรือสคริปต์ของคุณก่อนเรียกการเชื่อมต่อเครือข่ายใด ๆ:

import truststore
truststore.inject_into_ssl()

ติดขัดที่ไหน?

ถ้าคุณมีปัญหาในการรันการตั้งค่านี้ เข้าร่วมใน Azure AI Community Discord หรือ สร้างปัญหา

บทเรียนถัดไป

ตอนนี้คุณพร้อมที่จะรันโค้ดสำหรับหลักสูตรนี้แล้ว ขอให้สนุกกับการเรียนรู้เพิ่มเติมเกี่ยวกับโลกของ AI Agents!

บทนำสู่ AI Agents และกรณีการใช้งาน Agent


ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อน เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่มีความสำคัญ แนะนำให้ใช้บริการแปลโดยมืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดจากการใช้การแปลนี้