ปลดปล่อยพลัง AI-Q 2.0 บน Oracle Cloud Infrastructure (OCI) ด้วย NVIDIA AI-Q Blueprint

โลกของ AI Agents พัฒนาไปอย่างก้าวกระโดด จากที่เคยตอบได้ทีละคำถาม สู่การสนทนาแบบต่อเนื่องที่จดจำบริบทได้ จนมาถึงยุคของ Long-horizon Agents ที่สามารถวางแผนการทำงานหลายขั้นตอน แบ่งงานให้ Sub-agent ย่อยๆ รักษาบริบทของงานระยะยาว และรันเครื่องมือต่างๆ ในสภาพแวดล้อมที่ปลอดภัย

NVIDIA AI-Q Blueprint คือ Reference Architecture แบบ Open Source ที่รองรับ AI Agents ในรูปแบบนี้ สร้างขึ้นบน LangChain Deep Agents และ NVIDIA NeMo Agent Toolkit คุณสามารถนำไปใช้เพื่อรับคำตอบพร้อมแหล่งอ้างอิงอย่างรวดเร็ว หรือสร้างรายงานวิจัยฉบับสมบูรณ์พร้อมที่มาได้

บทความนี้จะแนะนำวิธีการ Deploy AI-Q 2.0 บน Oracle Cloud Infrastructure (OCI) โดยใช้ Terraform สำหรับการสร้างทรัพยากร OCI และ Helm สำหรับการติดตั้ง Workloads บน OKE (Oracle Kubernetes Engine) เมื่อทำตามขั้นตอนเสร็จสิ้น คุณจะมี AI-Q Endpoint ที่ทำงานได้บน OCI Tenancy ของคุณเอง และมีคำสั่งเดียวสำหรับลบทรัพยากรทั้งหมดเมื่อไม่ใช้งาน

AI-Q Blueprint เหมาะกับใคร?

บทความนี้เหมาะสำหรับ นักพัฒนาและวิศวกรแพลตฟอร์ม ที่คุ้นเคยกับ Kubernetes, Terraform และ Shell และต้องการรัน AI-Q บน OCI แทนที่จะรันบนแล็ปท็อป

สิ่งที่คุณจะได้เรียนรู้

  • สถาปัตยกรรม Multi-agent ของ AI-Q ถูกแมปเข้ากับบริการต่างๆ ของ OCI อย่างไร
  • คำสั่งที่จำเป็นสำหรับการ Provision, Deploy และเปิดใช้งาน Blueprint ตั้งแต่ต้นจนจบ

สำหรับข้อมูลเชิงลึกเกี่ยวกับสถาปัตยกรรม Multi-agent (เช่น Intent Router, Shallow Research Agent, Deep Agent, Planning Sub-agent, Researcher Sub-agent) สามารถดูเพิ่มเติมได้ที่หน้าผลิตภัณฑ์ AI-Q และเอกสาร NeMo Agent Toolkit

ข้อกำหนดเบื้องต้น

เพื่อให้การ Deploy เป็นไปอย่างราบรื่น คุณจะต้องเตรียมสิ่งเหล่านี้:

  • OCI Tenancy Access: เข้าถึง OCI Tenancy พร้อม Compartment ที่สามารถ Deploy ได้ และมี Service Limits เพียงพอสำหรับ:
  • OKE: Cluster แบบ Enhanced 1 คลัสเตอร์ และ Node Pool 1 Node Pool
  • Block Volume: อย่างน้อย 10 GB (จัดสรรแบบไดนามิกโดย OKE CSI driver สำหรับ PostgreSQL ภายในคลัสเตอร์)
  • Load Balancer: แบบ Flexible 1 ตัว
  • Vault: 1 Vault พร้อม Secrets
  • API Keys:
  • NGC API Key: จาก build.nvidia.com รูปแบบ nvapi-... ใช้สำหรับทั้ง NVIDIA Inference Key และการยืนยันตัวตนกับ NGC Container Registry (nvcr.io)
  • Tavily API Key: จาก tavily.com รูปแบบ tvly-... สำหรับการค้นหาเว็บ
  • Local Tools:
  • Terraform 1.5 หรือสูงกว่า
  • kubectl 1.28 หรือสูงกว่า
  • Helm 3.x หรือสูงกว่า
  • OCI CLI ที่ตั้งค่าพร้อม API Signing Key ของคุณ
  • ความรู้พื้นฐาน:
  • Kubernetes, Helm Charts, Terraform และ Shell
  • ประสบการณ์กับ LangChain หรือ NeMo Agent Toolkit จะเป็นประโยชน์ แต่ไม่บังคับ

ภาพรวมสถาปัตยกรรม

AI-Q ใช้การออกแบบแบบ Multi-agent โดยมี Intent Router ทำหน้าที่อ่าน Query ของผู้ใช้แต่ละรายการและส่งไปยัง Workflow ที่ถูกต้อง

Blueprint ถูกสร้างขึ้นให้ ขยายขีดความสามารถได้ (Extensible) ทุก Layer (Models, Tools, RAG Backends, Sub-agents, Evaluators) สามารถถูกสลับเปลี่ยนได้ผ่านการตั้งค่า YAML หรือผ่านระบบ Plugin ของ NeMo Agent Toolkit ซึ่งเราจะใช้ความสามารถนี้ใน Part 2 และ Part 3 ของซีรีส์นี้

สถาปัตยกรรมการ Deploy บน OCI

การ Deploy นี้ใช้ Terraform สำหรับทรัพยากร OCI และ Helm สำหรับ Kubernetes Workloads ซึ่งช่วยให้แยก Infrastructure และ Application ได้อย่างชัดเจน และคำสั่ง terraform destroy เพียงคำสั่งเดียวก็สามารถลบทรัพยากรทั้งหมดได้ในภายหลัง

Helm Chart จะติดตั้ง Workloads 3 ตัวบน OKE:

  • Backend (aiq-backend): Agent Server ที่ใช้ FastAPI สำหรับรัน AI-Q Workflow
  • Frontend (aiq-frontend): Web UI ที่พัฒนาด้วย Next.js แสดงผลผ่าน NodePort 30080
  • PostgreSQL (aiq-postgres): ฐานข้อมูลภายในคลัสเตอร์สำหรับ Job Store, Checkpoints และ Summaries

ระยะเวลาทั้งหมด: ประมาณ 20-25 นาที (ดูรายละเอียดฉบับเต็มได้ที่ aiq-2.0/README.md)

ขั้นตอนการ Deploy

ขั้นตอนที่ 1: ตั้งค่า Terraform Variables

คัดลอกไฟล์ตัวอย่าง (terraform.tfvars.example) และแก้ไขด้วยรายละเอียด Tenancy ของคุณ:

อย่างน้อย ให้ตั้งค่า Variables เหล่านี้ใน terraform.tfvars:

  • tenancy_ocid: OCID ของ Tenancy ของคุณ
  • compartment_id: OCID ของ Compartment ที่จะใช้ Deploy
  • region: เช่น us-chicago-1
  • user_ocid: OCID ของ User
  • fingerprint: Fingerprint ของ API Key
  • privatekeypath: Path ไปยัง Private Key (เหมือนกับค่าใน ~/.oci/config)
  • dbadminpassword: รหัสผ่านสำหรับ Bootstrap PostgreSQL ภายในคลัสเตอร์ (จะถูกจัดเก็บใน OCI Vault)
  • nvidiaapikey: NVIDIA NGC Key จาก build.nvidia.com ใช้สำหรับการ Inference และดึง Container Images จาก nvcr.io
  • tavilyapikey: Tavily Key จาก tavily.com สำหรับการค้นหาเว็บ

ขั้นตอนที่ 2: สร้าง Infrastructure

ทำการ Initialize Providers, ตรวจสอบ Plan และ Apply:

terraform init
terraform plan
terraform apply

ขั้นตอนนี้ใช้เวลาประมาณ 10-15 นาที Terraform จะสร้าง VCN, OKE Cluster, Load Balancer และ Vault พร้อมเข้ารหัส API Keys ของ NGC และ Tavily

ตรวจสอบ: terraform output ควรแสดงค่าสำหรับ okeclusterid และ lbpublicip หากมีค่าใดว่างเปล่า ให้รัน terraform apply อีกครั้ง (การ Apply สามารถทำซ้ำได้โดยไม่เสียหาย)

บันทึกค่า 2 ค่านี้ไว้สำหรับใช้ในขั้นตอนถัดไป:

oke_cluster_id=$(terraform output -raw oke_cluster_id)
lb_public_ip=$(terraform output -raw lb_public_ip)

ขั้นตอนที่ 3: ติดตั้ง AI-Q จาก Helm Chart บน NGC

Chart และ Container Images ถูกเผยแพร่บน NGC คุณจึงไม่ต้อง Build อะไรเองในเครื่อง ให้ชี้ kubectl ไปยัง OKE Cluster ใหม่, สร้าง Secrets ที่ Chart ต้องการ, จากนั้นทำการ helm pull และ helm install

3a. ตั้งค่า kubectl สำหรับ OKE Cluster

oci ce cluster create-kubeconfig --cluster-id $oke_cluster_id --file $HOME/.kube/config --region  --overwrite

3b. Export API Keys

นำ NGC และ Tavily API Keys ที่คุณใส่ใน terraform.tfvars มาใช้ซ้ำ NGC Key จะทำหน้าที่ 2 อย่าง คือเป็น Inference Key และ Credentials สำหรับดึง Image จาก nvcr.io

export NGC_API_KEY=
export TAVILY_API_KEY=

3c. สร้าง Namespace และ Secrets

kubectl create namespace ns-aiq
kubectl create secret docker-registry ngc-secret \
--namespace ns-aiq \
--docker-server nvcr.io \
--docker-username '$oauthtoken' \
--docker-password $NGC_API_KEY \
--docker-email [email protected]

kubectl create secret generic aiq-credentials \
--namespace ns-aiq \
--from-literal=NVIDIA_API_KEY=$NGC_API_KEY \
--from-literal=TAVILY_API_KEY=$TAVILY_API_KEY

3d. ดึงและติดตั้ง Chart จาก NGC

OCI Overlay (values-oci-ngc.yaml) ถูกออกแบบมาให้มีขนาดเล็ก โดยระบุเพียง Frontend Service ให้ชี้ไปที่ NodePort 30080 (Port ที่ OCI Load Balancer ใช้ Health Check) และระบุ Secret สำหรับดึง Image (ngc-secret) ส่วน Image Repository, SQL สำหรับ Initialize Postgres และ PVC ขนาด 10 Gi ที่จัดสรรแบบไดนามิก ล้วนมาจากค่าเริ่มต้นของ Chart

helm repo add nvidia-ai-q ขอบคุณ แหล่งข้อมูล
https://helm.ngc.nvidia.com/ai-q
helm repo update
helm pull nvidia-ai-q/aiq-backend --untar
helm install aiq-backend ./aiq-backend/charts/aiq-backend \
--namespace ns-aiq \
-f ./aiq-backend/values.yaml \
-f ./aiq-backend/values-oci-ngc.yaml

ตรวจสอบ: kubectl get pods -n ns-aiq ควรแสดง Pods aiq-backend, aiq-frontend, และ aiq-postgres ในสถานะ Running หลังจาก 3-5 นาที

IP ของ Load Balancer ควรจะอยู่ใน Shell ของคุณแล้วจากขั้นตอนที่ 2 หากคุณเปิด Shell ใหม่ ให้ Export ค่านี้อีกครั้งจาก Terraform:

lb_public_ip=$(terraform output -raw lb_public_ip)

การเข้าใช้งาน AI-Q

เปิด http:// ในเบราว์เซอร์ของคุณ คุณควรจะเห็น AI-Q Frontend

ลองถามคำถามง่ายๆ ก่อน เช่น "What is the NeMo Agent Toolkit?" เพื่อยืนยันว่าการ Routing ทำงานได้ถูกต้อง จากนั้นลองถามคำถามที่ซับซ้อนขึ้น เช่น "Compare the top three open-source deep-research agents by benchmark score and cost" เพื่อดู Deep Agent ทำงาน

ปัญหาที่อาจพบและวิธีแก้ไข

  • terraform apply ล้มเหลวในการสร้าง OKE ด้วยข้อผิดพลาด Quota: ตรวจสอบ Service Limits สำหรับ Compartment ของคุณในส่วน "Cluster count" และ "Node count" และขอเพิ่ม Quota หากจำเป็น
  • Pods อยู่ในสถานะ ImagePullBackOff: ตรวจสอบว่า Secret สำหรับดึง Image ถูกสร้างขึ้นแล้ว (kubectl get secret -n ns-aiq) และ NGCAPIKEY ถูกต้องเมื่อคุณรันคำสั่ง kubectl create secret docker-registry ngc-secret ในขั้นตอนที่ 3c หากต้องการหมุนเวียน Key ให้ลบ Secret และสร้างใหม่ จากนั้นรัน kubectl rollout restart deployment -n ns-aiq aiq-backend aiq-frontend
  • Pod PostgreSQL ค้างในสถานะ Pending นานกว่า 2 นาที: PVC (Persistent Volume Claim) สำหรับ Block Volume อาจไม่ได้ถูกจัดสรรแบบไดนามิก ลองรัน kubectl describe pvc -n ns-aiq สาเหตุทั่วไปคือ OKE CSI Driver ไม่ทำงาน, StorageClass เริ่มต้นขาดหายไป หรือมี Quota Block Volume ไม่เพียงพอ ตรวจสอบ Storage Class ด้วย kubectl get sc และ Service Limit ของ Block Volume ใน Compartment ของคุณ
  • IP ของ Load Balancer แสดงเป็น null: OCI อาจใช้เวลา 1-2 นาทีในการสร้าง Load Balancer หลังจาก Terraform ทำงานเสร็จ ลองรัน terraform refresh แล้วค่อยรัน terraform output lbpublicip อีกครั้ง
  • Frontend โหลดได้ แต่ Query ตอบกลับด้วย 500 Internal Server Error: ตรวจสอบ Log ของ aiq-backend ด้วยคำสั่ง kubectl logs -n ns-aiq deploy/aiq-backend สาเหตุที่พบบ่อยที่สุดคือ NVIDIAAPIKEY หรือ TAVILYAPIKEY ผิดพลาดหรือไม่ครบถ้วนใน Secret aiq-credentials ที่สร้างในขั้นตอนที่ 3c

ข้อควรจำเมื่อใช้งาน AI-Q บน OCI

คุณมี AI-Q 2.0 ที่ทำงานได้บน OCI แล้ว และมีคำสั่งเดียว (terraform destroy) สำหรับลบทรัพยากรทั้งหมดเมื่อไม่ต้องการใช้งาน มีข้อควรพิจารณาเพิ่มเติมดังนี้:

  • ค่าใช้จ่าย: Node Pool ของ OKE และ Load Balancer จะมีค่าใช้จ่ายต่อเนื่องขณะที่ทำงานอยู่ หากทดลองเสร็จแล้ว ควรใช้ terraform destroy เพื่อลบทรัพยากร หรือลดขนาด Node Pool ให้เหลือศูนย์
  • Secrets: Terraform จะจัดเก็บ NGC และ Tavily Keys ไว้ใน OCI Vault เมื่อทำการ Provision (เพื่อการตรวจสอบและกู้คืน) แต่ Pods ที่ทำงานจะอ่านค่าจาก Kubernetes Secret ชื่อ aiq-credentials ที่คุณสร้างในขั้นตอนที่ 3c หากต้องการหมุนเวียน Key ให้ลบและสร้าง Secret นี้ใหม่ด้วยค่าล่าสุด จากนั้นรัน kubectl rollout restart deployment -n ns-aiq aiq-backend การแก้ไข terraform.tfvars เพียงอย่างเดียวจะไม่ส่งผลต่อ Pods ที่ทำงานอยู่
  • ความสามารถในการขยาย (Extensibility): ทุกอย่างที่คุณ Deploy ไปนั้น ขับเคลื่อนด้วย

ขอบคุณ แหล่งข้อมูล
https://developer.nvidia.com/blog/deploy-a-production-ready-nvidia-ai-q-blueprint-on-oracle-cloud-infrastructure/

ปลดปล่อยพลัง AI-Q 2.0 บน Oracle Cloud Infrastructure (OCI) ด้วย NVIDIA AI-Q Blueprintโลกของ AI Agents พัฒนาไปอย่างก้าวกระโดด จากที่เคยตอบได้ทีละคำถาม สู่การสนทนาแบบต่อเนื่องที่จดจำบริบทได้ จนมาถึงยุคของ Long-horizon Agents ที่สามารถวางแผนการทำงานหลายขั้นตอน แบ่งงานให้ Sub-agent ย่อยๆ รักษาบริบทของงานระยะยาว และรันเครื่องมือต่างๆ ในสภาพแวดล้อมที่ปลอดภัยNVIDIA AI-Q Blueprint คือ Reference Architecture แบบ Open Source ที่รองรับ AI Agents ในรูปแบบนี้ สร้างขึ้นบน LangChain Deep Agents และ NVIDIA NeMo Agent Toolkit คุณสามารถนำไปใช้เพื่อรับคำตอบพร้อมแหล่งอ้างอิงอย่างรวดเร็ว หรือสร้างรายงานวิจัยฉบับสมบูรณ์พร้อมที่มาได้บทความนี้จะแนะนำวิธีการ Deploy AI-Q 2.0 บน Oracle Cloud Infrastructure (OCI) โดยใช้ Terraform สำหรับการสร้างทรัพยากร OCI และ Helm สำหรับการติดตั้ง Workloads บน OKE (Oracle Kubernetes Engine) เมื่อทำตามขั้นตอนเสร็จสิ้น คุณจะมี AI-Q Endpoint ที่ทำงานได้บน OCI Tenancy ของคุณเอง และมีคำสั่งเดียวสำหรับลบทรัพยากรทั้งหมดเมื่อไม่ใช้งานAI-Q Blueprint เหมาะกับใคร?บทความนี้เหมาะสำหรับ นักพัฒนาและวิศวกรแพลตฟอร์ม ที่คุ้นเคยกับ Kubernetes, Terraform และ Shell และต้องการรัน AI-Q บน OCI แทนที่จะรันบนแล็ปท็อปสิ่งที่คุณจะได้เรียนรู้สถาปัตยกรรม Multi-agent ของ AI-Q ถูกแมปเข้ากับบริการต่างๆ ของ OCI อย่างไรคำสั่งที่จำเป็นสำหรับการ Provision, Deploy และเปิดใช้งาน Blueprint ตั้งแต่ต้นจนจบสำหรับข้อมูลเชิงลึกเกี่ยวกับสถาปัตยกรรม Multi-agent (เช่น Intent Router, Shallow Research Agent, Deep Agent, Planning Sub-agent, Researcher Sub-agent) สามารถดูเพิ่มเติมได้ที่หน้าผลิตภัณฑ์ AI-Q และเอกสาร NeMo Agent Toolkitข้อกำหนดเบื้องต้นเพื่อให้การ Deploy เป็นไปอย่างราบรื่น คุณจะต้องเตรียมสิ่งเหล่านี้:OCI Tenancy Access: เข้าถึง OCI Tenancy พร้อม Compartment ที่สามารถ Deploy ได้ และมี Service Limits เพียงพอสำหรับ:OKE: Cluster แบบ Enhanced 1 คลัสเตอร์ และ Node Pool 1 Node PoolBlock Volume: อย่างน้อย 10 GB (จัดสรรแบบไดนามิกโดย OKE CSI driver สำหรับ PostgreSQL ภายในคลัสเตอร์)Load Balancer: แบบ Flexible 1 ตัวVault: 1 Vault พร้อม SecretsAPI Keys:NGC API Key: จาก build.nvidia.com รูปแบบ nvapi-... ใช้สำหรับทั้ง NVIDIA Inference Key และการยืนยันตัวตนกับ NGC Container Registry (nvcr.io)Tavily API Key: จาก tavily.com รูปแบบ tvly-... สำหรับการค้นหาเว็บLocal Tools:Terraform 1.5 หรือสูงกว่าkubectl 1.28 หรือสูงกว่าHelm 3.x หรือสูงกว่าOCI CLI ที่ตั้งค่าพร้อม API Signing Key ของคุณความรู้พื้นฐาน:Kubernetes, Helm Charts, Terraform และ Shellประสบการณ์กับ LangChain หรือ NeMo Agent Toolkit จะเป็นประโยชน์ แต่ไม่บังคับภาพรวมสถาปัตยกรรมAI-Q ใช้การออกแบบแบบ Multi-agent โดยมี Intent Router ทำหน้าที่อ่าน Query ของผู้ใช้แต่ละรายการและส่งไปยัง Workflow ที่ถูกต้องBlueprint ถูกสร้างขึ้นให้ ขยายขีดความสามารถได้ (Extensible) ทุก Layer (Models, Tools, RAG Backends, Sub-agents, Evaluators) สามารถถูกสลับเปลี่ยนได้ผ่านการตั้งค่า YAML หรือผ่านระบบ Plugin ของ NeMo Agent Toolkit ซึ่งเราจะใช้ความสามารถนี้ใน Part 2 และ Part 3 ของซีรีส์นี้สถาปัตยกรรมการ Deploy บน OCIการ Deploy นี้ใช้ Terraform สำหรับทรัพยากร OCI และ Helm สำหรับ Kubernetes Workloads ซึ่งช่วยให้แยก Infrastructure และ Application ได้อย่างชัดเจน และคำสั่ง terraform destroy เพียงคำสั่งเดียวก็สามารถลบทรัพยากรทั้งหมดได้ในภายหลังHelm Chart จะติดตั้ง Workloads 3 ตัวบน OKE:Backend (aiq-backend): Agent Server ที่ใช้ FastAPI สำหรับรัน AI-Q WorkflowFrontend (aiq-frontend): Web UI ที่พัฒนาด้วย Next.js แสดงผลผ่าน NodePort 30080PostgreSQL (aiq-postgres): ฐานข้อมูลภายในคลัสเตอร์สำหรับ Job Store, Checkpoints และ Summariesระยะเวลาทั้งหมด: ประมาณ 20-25 นาที (ดูรายละเอียดฉบับเต็มได้ที่ aiq-2.0/README.md)ขั้นตอนการ Deployขั้นตอนที่ 1: ตั้งค่า Terraform Variablesคัดลอกไฟล์ตัวอย่าง (terraform.tfvars.example) และแก้ไขด้วยรายละเอียด Tenancy ของคุณ:อย่างน้อย ให้ตั้งค่า Variables เหล่านี้ใน terraform.tfvars:tenancy_ocid: OCID ของ Tenancy ของคุณcompartment_id: OCID ของ Compartment ที่จะใช้ Deployregion: เช่น us-chicago-1user_ocid: OCID ของ Userfingerprint: Fingerprint ของ API Keyprivatekeypath: Path ไปยัง Private Key (เหมือนกับค่าใน ~/.oci/config)dbadminpassword: รหัสผ่านสำหรับ Bootstrap PostgreSQL ภายในคลัสเตอร์ (จะถูกจัดเก็บใน OCI Vault)nvidiaapikey: NVIDIA NGC Key จาก build.nvidia.com ใช้สำหรับการ Inference และดึง Container Images จาก nvcr.iotavilyapikey: Tavily Key จาก tavily.com สำหรับการค้นหาเว็บขั้นตอนที่ 2: สร้าง Infrastructureทำการ Initialize Providers, ตรวจสอบ Plan และ Apply:terraform init terraform plan terraform applyขั้นตอนนี้ใช้เวลาประมาณ 10-15 นาที Terraform จะสร้าง VCN, OKE Cluster, Load Balancer และ Vault พร้อมเข้ารหัส API Keys ของ NGC และ Tavilyตรวจสอบ: terraform output ควรแสดงค่าสำหรับ okeclusterid และ lbpublicip หากมีค่าใดว่างเปล่า ให้รัน terraform apply อีกครั้ง (การ Apply สามารถทำซ้ำได้โดยไม่เสียหาย)บันทึกค่า 2 ค่านี้ไว้สำหรับใช้ในขั้นตอนถัดไป:oke_cluster_id=$(terraform output -raw oke_cluster_id) lb_public_ip=$(terraform output -raw lb_public_ip)ขั้นตอนที่ 3: ติดตั้ง AI-Q จาก Helm Chart บน NGCChart และ Container Images ถูกเผยแพร่บน NGC คุณจึงไม่ต้อง Build อะไรเองในเครื่อง ให้ชี้ kubectl ไปยัง OKE Cluster ใหม่, สร้าง Secrets ที่ Chart ต้องการ, จากนั้นทำการ helm pull และ helm install3a. ตั้งค่า kubectl สำหรับ OKE Clusteroci ce cluster create-kubeconfig --cluster-id $oke_cluster_id --file $HOME/.kube/config --region --overwrite3b. Export API Keysนำ NGC และ Tavily API Keys ที่คุณใส่ใน terraform.tfvars มาใช้ซ้ำ NGC Key จะทำหน้าที่ 2 อย่าง คือเป็น Inference Key และ Credentials สำหรับดึง Image จาก nvcr.ioexport NGC_API_KEY= export TAVILY_API_KEY=3c. สร้าง Namespace และ Secretskubectl create namespace ns-aiq kubectl create secret docker-registry ngc-secret \ --namespace ns-aiq \ --docker-server nvcr.io \ --docker-username '$oauthtoken' \ --docker-password $NGC_API_KEY \ --docker-email [email protected] kubectl create secret generic aiq-credentials \ --namespace ns-aiq \ --from-literal=NVIDIA_API_KEY=$NGC_API_KEY \ --from-literal=TAVILY_API_KEY=$TAVILY_API_KEY3d. ดึงและติดตั้ง Chart จาก NGCOCI Overlay (values-oci-ngc.yaml) ถูกออกแบบมาให้มีขนาดเล็ก โดยระบุเพียง Frontend Service ให้ชี้ไปที่ NodePort 30080 (Port ที่ OCI Load Balancer ใช้ Health Check) และระบุ Secret สำหรับดึง Image (ngc-secret) ส่วน Image Repository, SQL สำหรับ Initialize Postgres และ PVC ขนาด 10 Gi ที่จัดสรรแบบไดนามิก ล้วนมาจากค่าเริ่มต้นของ Charthelm repo add nvidia-ai-q https://helm.ngc.nvidia.com/ai-q helm repo update helm pull nvidia-ai-q/aiq-backend --untar helm install aiq-backend ./aiq-backend/charts/aiq-backend \ --namespace ns-aiq \ -f ./aiq-backend/values.yaml \ -f ./aiq-backend/values-oci-ngc.yamlตรวจสอบ: kubectl get pods -n ns-aiq ควรแสดง Pods aiq-backend, aiq-frontend, และ aiq-postgres ในสถานะ Running หลังจาก 3-5 นาทีIP ของ Load Balancer ควรจะอยู่ใน Shell ของคุณแล้วจากขั้นตอนที่ 2 หากคุณเปิด Shell ใหม่ ให้ Export ค่านี้อีกครั้งจาก Terraform:lb_public_ip=$(terraform output -raw lb_public_ip)การเข้าใช้งาน AI-Qเปิด http:// ในเบราว์เซอร์ของคุณ คุณควรจะเห็น AI-Q Frontendลองถามคำถามง่ายๆ ก่อน เช่น "What is the NeMo Agent Toolkit?" เพื่อยืนยันว่าการ Routing ทำงานได้ถูกต้อง จากนั้นลองถามคำถามที่ซับซ้อนขึ้น เช่น "Compare the top three open-source deep-research agents by benchmark score and cost" เพื่อดู Deep Agent ทำงานปัญหาที่อาจพบและวิธีแก้ไขterraform apply ล้มเหลวในการสร้าง OKE ด้วยข้อผิดพลาด Quota: ตรวจสอบ Service Limits สำหรับ Compartment ของคุณในส่วน "Cluster count" และ "Node count" และขอเพิ่ม Quota หากจำเป็นPods อยู่ในสถานะ ImagePullBackOff: ตรวจสอบว่า Secret สำหรับดึง Image ถูกสร้างขึ้นแล้ว (kubectl get secret -n ns-aiq) และ NGCAPIKEY ถูกต้องเมื่อคุณรันคำสั่ง kubectl create secret docker-registry ngc-secret ในขั้นตอนที่ 3c หากต้องการหมุนเวียน Key ให้ลบ Secret และสร้างใหม่ จากนั้นรัน kubectl rollout restart deployment -n ns-aiq aiq-backend aiq-frontendPod PostgreSQL ค้างในสถานะ Pending นานกว่า 2 นาที: PVC (Persistent Volume Claim) สำหรับ Block Volume อาจไม่ได้ถูกจัดสรรแบบไดนามิก ลองรัน kubectl describe pvc -n ns-aiq สาเหตุทั่วไปคือ OKE CSI Driver ไม่ทำงาน, StorageClass เริ่มต้นขาดหายไป หรือมี Quota Block Volume ไม่เพียงพอ ตรวจสอบ Storage Class ด้วย kubectl get sc และ Service Limit ของ Block Volume ใน Compartment ของคุณIP ของ Load Balancer แสดงเป็น null: OCI อาจใช้เวลา 1-2 นาทีในการสร้าง Load Balancer หลังจาก Terraform ทำงานเสร็จ ลองรัน terraform refresh แล้วค่อยรัน terraform output lbpublicip อีกครั้งFrontend โหลดได้ แต่ Query ตอบกลับด้วย 500 Internal Server Error: ตรวจสอบ Log ของ aiq-backend ด้วยคำสั่ง kubectl logs -n ns-aiq deploy/aiq-backend สาเหตุที่พบบ่อยที่สุดคือ NVIDIAAPIKEY หรือ TAVILYAPIKEY ผิดพลาดหรือไม่ครบถ้วนใน Secret aiq-credentials ที่สร้างในขั้นตอนที่ 3cข้อควรจำเมื่อใช้งาน AI-Q บน OCIคุณมี AI-Q 2.0 ที่ทำงานได้บน OCI แล้ว และมีคำสั่งเดียว (terraform destroy) สำหรับลบทรัพยากรทั้งหมดเมื่อไม่ต้องการใช้งาน มีข้อควรพิจารณาเพิ่มเติมดังนี้:ค่าใช้จ่าย: Node Pool ของ OKE และ Load Balancer จะมีค่าใช้จ่ายต่อเนื่องขณะที่ทำงานอยู่ หากทดลองเสร็จแล้ว ควรใช้ terraform destroy เพื่อลบทรัพยากร หรือลดขนาด Node Pool ให้เหลือศูนย์Secrets: Terraform จะจัดเก็บ NGC และ Tavily Keys ไว้ใน OCI Vault เมื่อทำการ Provision (เพื่อการตรวจสอบและกู้คืน) แต่ Pods ที่ทำงานจะอ่านค่าจาก Kubernetes Secret ชื่อ aiq-credentials ที่คุณสร้างในขั้นตอนที่ 3c หากต้องการหมุนเวียน Key ให้ลบและสร้าง Secret นี้ใหม่ด้วยค่าล่าสุด จากนั้นรัน kubectl rollout restart deployment -n ns-aiq aiq-backend การแก้ไข terraform.tfvars เพียงอย่างเดียวจะไม่ส่งผลต่อ Pods ที่ทำงานอยู่ความสามารถในการขยาย (Extensibility): ทุกอย่างที่คุณ Deploy ไปนั้น ขับเคลื่อนด้วยhttps://developer.nvidia.com/blog/deploy-a-production-ready-nvidia-ai-q-blueprint-on-oracle-cloud-infrastructure/
Shared content
DEVELOPER.NVIDIA.COM
Deploy a Production-Ready NVIDIA AI-Q Blueprint on Oracle Cloud Infrastructure
AI agents have changed a lot in the last two years. The first could only answer one question at a time. Then came multi-turn chat, where the model could keep some context across a session. Today…
5 Comments 0 Shares 185 Views 0 Reviews