ตัวอย่างนี้แสดงให้เห็นถึงวิธีการบางอย่างสำหรับการสร้างประสบการณ์ที่คล้ายกับ chatgpt ผ่านข้อมูลของคุณเองโดยใช้รูปแบบการสร้างการดึงการดึง ใช้บริการ Azure OpenAI เพื่อเข้าถึงโมเดล ChatGPT (GPT-35-Turbo) และ Azure AI Search สำหรับการจัดทำดัชนีและการดึงข้อมูล
repo มีข้อมูลตัวอย่างดังนั้นจึงพร้อมที่จะลองจบลง ในแอปพลิเคชั่นตัวอย่างนี้เราใช้ บริษัท สมมติที่เรียกว่า Contoso Real Estate และประสบการณ์ช่วยให้ลูกค้าถามคำถามสนับสนุนเกี่ยวกับการใช้ผลิตภัณฑ์ ข้อมูลตัวอย่างรวมถึงชุดของเอกสารที่อธิบายข้อกำหนดในการให้บริการนโยบายความเป็นส่วนตัวและคู่มือสนับสนุน
แอปพลิเคชันทำจากหลายองค์ประกอบรวมถึง:
ดูภาพรวมวิดีโอของแอพ
สำคัญ: ในการปรับใช้และเรียกใช้ตัวอย่างนี้คุณจะต้อง:
Microsoft.Authorization/roleAssignments/write
เช่นผู้ดูแลระบบควบคุมการเข้าถึงตามบทบาทผู้ดูแลระบบเข้าถึงผู้ใช้หรือเจ้าของ หากคุณไม่มีสิทธิ์ในการสมัครสมาชิกพวกเขาจะต้องได้รับอนุญาตให้คุณด้วย RBAC สำหรับกลุ่มทรัพยากรที่มีอยู่และปรับใช้กับกลุ่มที่มีอยู่Microsoft.Resources/deployments/write
ในระดับการสมัครสมาชิก ราคาอาจแตกต่างกันไปตามภูมิภาคและการใช้งาน ไม่สามารถประเมินค่าใช้จ่ายที่แน่นอนได้ คุณอาจลองใช้เครื่องคิดเลขราคา Azure สำหรับทรัพยากรด้านล่าง
azd down --purge
มีหลายวิธีในการตั้งค่าโครงการนี้สำเร็จ
วิธีที่ง่ายที่สุดในการเริ่มต้นคือการใช้รหัส GitHub ที่ให้ preconfigurations เพื่อตั้งค่าเครื่องมือทั้งหมดสำหรับคุณ อ่านเพิ่มเติมด้านล่าง หรือคุณสามารถตั้งค่าสภาพแวดล้อมในพื้นที่ของคุณได้คำแนะนำด้านล่าง
คุณสามารถเรียกใช้ repo นี้ได้อย่างแท้จริงโดยใช้ GitHub codespaces ซึ่งจะเปิดรหัส VS บนเว็บในเบราว์เซอร์ของคุณ:
ตัวเลือกที่คล้ายกันกับ codespaces คือ VS Code Remote Containers ซึ่งจะเปิดโครงการในอินสแตนซ์รหัสกับรหัสท้องถิ่นของคุณโดยใช้ส่วนขยายของ DEV Containers:
pwsh.exe
จากคำสั่ง PowerShell หากสิ่งนี้ล้มเหลวคุณอาจต้องอัพเกรด PowerShellจากนั้นรับรหัสโครงการ:
azd auth login
azd init -t azure-search-openai-javascript
ดำเนินการคำสั่งต่อไปนี้หากคุณไม่มีบริการ Azure ที่มีอยู่แล้วและต้องการเริ่มต้นจากการปรับใช้ใหม่
azd up
- สิ่งนี้จะจัดหาทรัพยากร Azure และปรับใช้ตัวอย่างนี้กับทรัพยากรเหล่านั้นรวมถึงการสร้างดัชนีการค้นหาตามไฟล์ที่พบในโฟลเดอร์ ./data
dataeastus2
คุณสามารถตั้งค่าตำแหน่งอื่นด้วย azd env set AZURE_OPENAI_RESOURCE_GROUP_LOCATION {location}
ปัจจุบันมีเพียงรายการสั้น ๆ ของสถานที่เท่านั้นที่ได้รับการยอมรับ รายการตำแหน่งนั้นขึ้นอยู่กับตารางความพร้อมใช้งานของ OpenAI Model และอาจล้าสมัยเนื่องจากการเปลี่ยนแปลงความพร้อมใช้งานeastus2
คุณสามารถตั้งค่าตำแหน่งอื่นด้วย azd env set AZURE_WEBAPP_LOCATION {location}
ปัจจุบันมีเพียงรายการสั้น ๆ ของสถานที่เท่านั้นที่ได้รับการยอมรับ โปรดทราบว่าแอปพลิเคชันเว็บแบบคงที่เป็นบริการระดับโลกและตำแหน่งที่คุณเลือกจะส่งผลกระทบต่อแอพฟังก์ชั่นที่มีการจัดการซึ่งไม่ได้ใช้ในตัวอย่างนี้เท่านั้นมันจะมีลักษณะดังต่อไปนี้:
หมายเหตุ: อาจใช้เวลา 15 นาทีในการปรับใช้แอปพลิเคชันอย่างสมบูรณ์
หากคุณมีทรัพยากร Azure ที่มีอยู่แล้วคุณสามารถนำกลับมาใช้ใหม่ได้โดยการตั้งค่าสภาพแวดล้อม azd
azd env set AZURE_RESOURCE_GROUP {Name of existing resource group}
azd env set AZURE_LOCATION {Location of existing resource group}
azd env set AZURE_OPENAI_SERVICE {Name of existing OpenAI service}
azd env set AZURE_OPENAI_RESOURCE_GROUP {Name of existing resource group that OpenAI service is provisioned to}
azd env set AZURE_OPENAI_CHATGPT_DEPLOYMENT {Name of existing ChatGPT deployment}
จำเป็นเฉพาะในกรณีที่การปรับใช้ CHATGPT ของคุณไม่ใช่ 'แชท' เริ่มต้นazd env set AZURE_OPENAI_EMBEDDING_DEPLOYMENT {Name of existing GPT embedding deployment}
จำเป็นเฉพาะในกรณีที่การปรับใช้ Embeddings ของคุณไม่ใช่ 'การฝัง' เริ่มต้น azd env set AZURE_SEARCH_SERVICE {Name of existing Azure AI Search service}
azd env set AZURE_SEARCH_SERVICE_RESOURCE_GROUP {Name of existing resource group with ACS service}
azd up
จากนั้นเรียกใช้ azd env set AZURE_SEARCH_SERVICE_LOCATION {Location of existing service}
azd env set AZURE_SEARCH_SERVICE_SKU {Name of SKU}
ระดับฟรีจะไม่ทำงานเนื่องจากไม่สนับสนุนตัวตนที่มีการจัดการ (ดูค่าที่เป็นไปได้อื่น ๆ ) คุณยังสามารถใช้บัญชีจัดเก็บข้อมูลที่มีอยู่ ดู ./infra/main.parameters.json
สำหรับรายการตัวแปรสภาพแวดล้อมเพื่อส่งผ่านไปยัง azd env set
เพื่อกำหนดค่าทรัพยากรที่มีอยู่เหล่านั้น
ตอนนี้คุณสามารถเรียก azd up
ตามขั้นตอนในการปรับใช้ตั้งแต่เริ่มต้นด้านบน ที่จะจัดเตรียมทรัพยากรและปรับใช้รหัส
หากคุณเปลี่ยนรหัสแบ็กเอนด์/ส่วนหน้าในโฟลเดอร์ app
เท่านั้นคุณไม่จำเป็นต้องจัดหาทรัพยากร Azure อีกครั้ง คุณสามารถวิ่งได้:
azd deploy
หากคุณเปลี่ยนไฟล์โครงสร้างพื้นฐาน (โฟลเดอร์ infra
หรือ azure.yaml
) คุณจะต้องจัดหาทรัพยากร Azure อีกครั้ง คุณสามารถทำได้โดยการวิ่ง:
azd up
เพื่อให้คนอื่นเข้าถึงสภาพแวดล้อมที่มีการปรับใช้และมีอยู่อย่างสมบูรณ์ไม่ว่าคุณหรือพวกเขาสามารถทำตามขั้นตอนเหล่านี้ได้:
azd init -t azure-search-openai-javascript
หรือโคลนที่เก็บนี้azd env refresh -e {environment name}
พวกเขาจะต้องใช้ชื่อสภาพแวดล้อม AZD, ID การสมัครสมาชิกและตำแหน่งเพื่อเรียกใช้คำสั่งนี้ คุณสามารถค้นหาค่าเหล่านั้นได้ในไฟล์. .azure/{env name}/.env
สิ่งนี้จะเติมไฟล์ .env
ของสภาพแวดล้อม AZD ด้วยการตั้งค่าทั้งหมดที่จำเป็นในการเรียกใช้แอพในเครื่องAZURE_PRINCIPAL_ID
ในไฟล์ .env
นั้นหรือในเชลล์ที่ใช้งานอยู่กับ Azure ID ของพวกเขาซึ่งพวกเขาจะได้รับจาก az ad signed-in-user show
./scripts/roles.ps1
หรือ ./scripts/roles.sh
เพื่อกำหนดบทบาทที่จำเป็นทั้งหมดให้กับผู้ใช้ หากพวกเขาไม่ได้รับอนุญาตที่จำเป็นในการสร้างบทบาทในการสมัครสมาชิกคุณอาจต้องเรียกใช้สคริปต์นี้สำหรับพวกเขา เมื่อสคริปต์ทำงานแล้วพวกเขาควรจะสามารถเรียกใช้แอพได้ในพื้นที่ ในการทำความสะอาดทรัพยากรทั้งหมดที่สร้างขึ้นโดยตัวอย่างนี้:
azd down --purge
y
y
กลุ่มทรัพยากรและทรัพยากรทั้งหมดจะถูกลบ
โดยค่าเริ่มต้นแอปพลิเคชัน Azure Web ที่ปรับใช้จะไม่มีข้อ จำกัด การตรวจสอบสิทธิ์หรือการเข้าถึงการเข้าถึงซึ่งหมายความว่าทุกคนที่มีการเข้าถึงเครือข่ายที่กำหนดเส้นทางได้ไปยังเว็บแอปสามารถแชทกับข้อมูลที่จัดทำดัชนีของคุณได้ คุณสามารถต้องการการรับรองความถูกต้องของ Azure Entra ID ของคุณโดยทำตามการสอนการรับรองความถูกต้องของแอพเพิ่มและตั้งค่ากับแอปเว็บที่ปรับใช้
เพื่อ จำกัด การเข้าถึงชุดผู้ใช้หรือกลุ่มเฉพาะคุณสามารถทำตามขั้นตอนจากการ จำกัด แอพ Azure Entra ของคุณเป็นชุดของผู้ใช้โดยการเปลี่ยน "การกำหนดที่จำเป็น" ตัวเลือกภายใต้แอปพลิเคชัน Enterprise จากนั้นกำหนดการเข้าถึงผู้ใช้/กลุ่ม ผู้ใช้ที่ไม่ได้รับอนุญาตการเข้าถึงอย่างชัดเจนจะได้รับข้อความแสดงข้อผิดพลาด -AADSTS50105: ผู้ดูแลระบบของคุณได้กำหนดค่าแอปพลิเคชัน <app_name> เพื่อบล็อกผู้ใช้เว้นแต่ว่าพวกเขาจะได้รับการเข้าถึงโดยเฉพาะ ('กำหนด') การเข้าถึงแอปพลิเคชัน -
เราขอแนะนำให้ปรับใช้กลไกความปลอดภัยเพิ่มเติม เมื่อใช้งานให้พิจารณาการตั้งค่า VNET หรือตั้งค่านโยบายพร็อกซี
โดยค่าเริ่มต้น API Search ที่ปรับใช้จะอนุญาตให้มีการร้องขอจากแหล่งกำเนิดเดียวกันกับแหล่งกำเนิดเว็บแอปที่ปรับใช้เท่านั้น หากต้องการเปิดใช้งาน CORS สำหรับส่วนหน้าซึ่งเป็นที่ตั้งที่แตกต่างกันให้เรียกใช้:
azd env set ALLOWED_ORIGIN https://<your-domain.com>
azd up
คุณสามารถเรียกใช้งานได้ในพื้นที่ หลังจาก เรียกใช้คำสั่ง azd up
ได้สำเร็จ
azd auth login
azd env get-values > .env
เพื่อรับตัวแปรสภาพแวดล้อมสำหรับแอปaz login
npm start
หรือเรียกใช้ "VS Code Task: Start App" เพื่อเริ่มโครงการในเครื่อง ครั้งหนึ่งในเว็บแอพ:
บริการ Search API ใช้โปรโตคอล HTTP สำหรับแอพแชท AI มันสามารถสลับกับบริการใด ๆ ที่ใช้โปรโตคอลเดียวกันเช่นไคลเอนต์แบ็กเอนด์ Python ในที่เก็บนี้แทนที่จะใช้ Node.js ที่มีอยู่ใน repo นี้
ในการทำเช่นนั้นให้ทำตามขั้นตอนเหล่านี้:
azd env get-values | grep WEBAPP_URI
เพื่อรับ URLhttp://localhost:5173
https://<your_codespace_base_url>-5173.app.github.dev
azd env set ALLOWED_ORIGIN <your_frontend_url>
azd env get-values | grep BACKEND_URI
azd env set BACKEND_URI <your_backend_url>
หากคุณต้องการใช้แอพพลิเคชั่นเว็บที่ปรับใช้ให้เรียกใช้ azd up
เพื่อ redeploy
หากคุณต้องการใช้เว็บแอปท้องถิ่นบนเครื่องของคุณหรือใน codespaces ให้เรียกใช้:
# Export the environment variable.
# The syntax may be different depending on your shell or if you're using Windows.
export BACKEND_URI= < your_backend_url >
# Start the app
npm start --workspace=webapp
ตัวอย่างนี้ประกอบด้วยสองแอปพลิเคชัน: บริการแบ็กเอนด์และ API, นำไปใช้กับแอพ Azure Container และแอปพลิเคชันส่วนหน้า, นำไปใช้กับแอปแอป Azure Static Web โดยค่าเริ่มต้นแอพคอนเทนเนอร์ Azure ที่ปรับใช้จะไม่มีการรับรองการรับรองความถูกต้องหรือการ จำกัด การเข้าถึงซึ่งหมายความว่าทุกคนที่มีการเข้าถึงเครือข่ายที่กำหนดเส้นทางได้ไปยังแอพคอนเทนเนอร์สามารถแชทกับข้อมูลที่จัดทำดัชนีของคุณได้ คุณสามารถต้องการการรับรองความถูกต้องของ Azure Entra ID ของคุณโดยทำตามการสอนการรับรองความถูกต้องของแอป Add Container และตั้งค่ากับแอพคอนเทนเนอร์ Azure ที่ปรับใช้
เพื่อ จำกัด การเข้าถึงชุดผู้ใช้หรือกลุ่มเฉพาะคุณสามารถทำตามขั้นตอนจากการ จำกัด แอพ Azure Entra ของคุณเป็นชุดผู้ใช้โดยการเปลี่ยน "การกำหนดที่จำเป็น" ตัวเลือกภายใต้แอปพลิเคชัน Enterprise จากนั้นกำหนดการเข้าถึงผู้ใช้/กลุ่ม ผู้ใช้ที่ไม่ได้รับอนุญาตการเข้าถึงอย่างชัดเจนจะได้รับข้อความแสดงข้อผิดพลาด -AADSTS50105: ผู้ดูแลระบบของคุณได้กำหนดค่าแอปพลิเคชัน <app_name> เพื่อบล็อกผู้ใช้เว้นแต่ว่าพวกเขาจะได้รับการเข้าถึงโดยเฉพาะ ('กำหนด') การเข้าถึงแอปพลิเคชัน -
ตัวอย่างนี้ได้รับการออกแบบให้เป็นจุดเริ่มต้นสำหรับแอปพลิเคชันการผลิตของคุณเอง แต่คุณควรทำการตรวจสอบความปลอดภัยและประสิทธิภาพอย่างละเอียดก่อนที่จะนำไปใช้กับการผลิต นี่คือบางสิ่งที่ควรพิจารณา:
chatGptDeploymentCapacity
และ embeddingDeploymentCapacity
ใน infra/main.bicep
ไปยังความจุสูงสุดของบัญชีของคุณ นอกจากนี้คุณยังสามารถดูแท็บโควต้าใน Azure Openai Studio เพื่อทำความเข้าใจว่าคุณมีความจุเท่าใดStandard_LRS
SKU เพื่อปรับปรุงความยืดหยุ่นของคุณเราขอแนะนำให้ใช้ Standard_ZRS
สำหรับการปรับใช้การผลิตซึ่งคุณสามารถระบุได้โดยใช้คุณสมบัติ sku
ภายใต้โมดูล storage
ใน infra/main.bicep
Standard
พร้อมตัวเลือกการค้นหาความหมายฟรีซึ่งให้ 1,000 คำค้นหาฟรีต่อเดือน สมมติว่าแอปของคุณจะได้รับคำถามมากกว่า 1,000 คำถามคุณควรเปลี่ยน semanticSearch
เป็น "มาตรฐาน" หรือปิดใช้งานการค้นหาความหมายทั้งหมดในตัวเลือกคำขอ หากคุณเห็นข้อผิดพลาดเกี่ยวกับความสามารถในการค้นหาที่เกินคุณอาจพบว่ามีประโยชน์ในการเพิ่มจำนวนของแบบจำลองโดยการเปลี่ยน replicaCount
ใน infra/core/search/search-services.bicep
หรือปรับขนาดด้วยตนเองจากพอร์ทัล AzureChunking ช่วยให้เราสามารถ จำกัด จำนวนข้อมูลที่เราส่งไปยัง OpenAI เนื่องจากขีด จำกัด โทเค็น ด้วยการทำลายเนื้อหาทำให้เราสามารถค้นหาข้อความที่อาจเกิดขึ้นได้อย่างง่ายดายซึ่งเราสามารถฉีดเข้าไปใน OpenAI ได้ วิธีการ chunking ที่เราใช้ใช้ประโยชน์จากหน้าต่างเลื่อนของข้อความเช่นประโยคที่จบหนึ่งก้อนจะเริ่มต้นต่อไป สิ่งนี้ช่วยให้เราสามารถลดโอกาสในการสูญเสียบริบทของข้อความ
ในการอัปโหลดเอกสารเพิ่มเติมให้วางไว้ในข้อมูล/โฟลเดอร์และเรียกใช้ ./scripts/index-data.sh
หรือ ./scripts/index-data.ps1
อีกที่เก็บข้อมูลยอดนิยมสำหรับกรณีการใช้งานนี้อยู่ที่นี่: https://github.com/microsoft/sample-app-aoai-chatgpt/
พื้นที่เก็บข้อมูลนั้นได้รับการออกแบบมาเพื่อใช้งานโดยลูกค้าโดยใช้ Azure OpenAi Studio และ Azure Portal สำหรับการตั้งค่า นอกจากนี้ยังมีการสนับสนุน azd
สำหรับผู้ที่ต้องการปรับใช้อย่างสมบูรณ์ตั้งแต่เริ่มต้น
ความแตกต่างหลัก:
การเปรียบเทียบคุณสมบัติ:
คุณสมบัติ | Azure-search-openai-javascript | ตัวอย่างแอป-aoai-chatgpt |
---|---|---|
วิธีผ้าขี้ริ้ว | หลายวิธี | เฉพาะผ่าน chatcompletion API data_sources |
การสนับสนุนเวกเตอร์ | ✅ใช่ | ✅ใช่ |
การบริโภคข้อมูล | ✅ใช่ (MD) | ✅ใช่ (pdf, txt, md, html) |
ประวัติการแชทแบบถาวร | ไม่ (แท็บเบราว์เซอร์เท่านั้น) | ✅ใช่ใน cosmosdb |
การเปรียบเทียบเทคโนโลยี:
เทค | Azure-search-openai-javascript | ตัวอย่างแอป-aoai-chatgpt |
---|---|---|
ส่วนหน้า | ตอบสนอง/สว่าง | ตอบโต้ |
แบ็กเอนด์ | Node.js (Fadify) | Python (Flask) |
DB เวกเตอร์ | Azure AI Search | Azure AI Search |
การปรับใช้ | Azure Developer CLI (AZD) | Azure Portal, AZ, AZD |
เรียกใช้คำสั่งเหล่านี้:
azd env set AZURE_OPENAI_CHATGPT_MODEL gpt-4
คุณอาจต้องปรับความสามารถในไฟล์ infra/main.bicep
ขึ้นอยู่กับจำนวนบัญชีของคุณที่ได้รับอนุญาต
แท็บแชทใช้วิธีการที่ตั้งโปรแกรมไว้ในแชทอ่านอ่านซ้ำ แท็บ Ask ใช้วิธีการที่ตั้งโปรแกรมไว้ใน Ask-retrieve- read.ts นอกจากนี้ยังมีวิธีการหนึ่ง/ถามอีกวิธีหนึ่ง [การใช้เอเจนต์] (https://github.com/azure-samples/azure-search-openai-javascript/blob/main/packages/search/src/lib/approaches/ask-read-retrieve-red.ts
คำสั่ง azd up
มาจาก CLI นักพัฒนา Azure และดูแลทั้งการจัดสรรทรัพยากร Azure และการปรับใช้รหัสไปยังโฮสต์ Azure ที่เลือก
คำสั่ง azd up
ใช้ไฟล์ azure.yaml
รวมกับไฟล์โครงสร้างพื้นฐาน-AS-Code .bicep
ในโฟลเดอร์ infra/
Folder ไฟล์ azure.yaml
สำหรับโครงการนี้ประกาศ "hooks" หลายอย่างสำหรับขั้นตอนการบรรจุล่วงหน้าและขั้นตอนการโพสต์ คำสั่ง up
จะเรียกใช้เบ็ด prepackage
ก่อนซึ่งติดตั้งการพึ่งพาโหนดและสร้างไฟล์ JavaScript ที่ใช้ React.js จากนั้นจะบรรจุรหัสทั้งหมด (ทั้งบริการส่วนหน้าและแบ็กเอนด์) ลงในไฟล์ zip ซึ่งจะปรับใช้ในภายหลัง
ถัดไปจะจัดหาทรัพยากรตาม main.bicep
และ main.parameters.json
ณ จุดนั้นเนื่องจากไม่มีค่าเริ่มต้นสำหรับตำแหน่งทรัพยากร OpenAI จึงขอให้คุณเลือกตำแหน่งจากรายการสั้น ๆ ของภูมิภาคที่มีอยู่ จากนั้นจะส่งคำขอไปยัง Azure เพื่อจัดหาทรัพยากรที่จำเป็นทั้งหมด ด้วยทุกสิ่งที่ได้รับการจัดเตรียมมันจะเรียกใช้เบ็ด postprovision
เพื่อประมวลผลข้อมูลท้องถิ่นและเพิ่มลงในดัชนีการค้นหา Azure AI
ในที่สุดก็ดูที่ azure.yaml
เพื่อกำหนดโฮสต์ Azure (แอพคอนเทนเนอร์และแอพพลิเคชั่นเว็บคงที่ในกรณีนี้) และอัปโหลด ZIP ไปยัง Azure App Service ตอนนี้คำสั่ง azd up
เสร็จสมบูรณ์ แต่อาจใช้เวลาไม่กี่นาทีสำหรับแอพที่จะพร้อมใช้งานอย่างเต็มที่และทำงานหลังจากการปรับใช้ครั้งแรก
คำสั่งที่เกี่ยวข้องคือ azd provision
สำหรับการจัดเตรียมเพียงแค่การจัดเตรียม (หากไฟล์ INFRA เปลี่ยนไป) และ azd deploy
สำหรับเพียงแค่ปรับใช้รหัสแอปที่อัปเดต
นี่คือสถานการณ์ความล้มเหลวที่พบบ่อยที่สุดและการแก้ปัญหา:
การสมัครสมาชิก ( AZURE_SUBSCRIPTION_ID
) ไม่สามารถเข้าถึงบริการ Azure Openai ได้ โปรดตรวจสอบให้แน่ใจว่า AZURE_SUBSCRIPTION_ID
ตรงกับ ID ที่ระบุในกระบวนการคำขอการเข้าถึง OpenAI
คุณกำลังพยายามสร้างทรัพยากรในภูมิภาคที่ไม่ได้เปิดใช้งานสำหรับ Azure Openai (เช่น East US 2 แทน East US) หรือที่โมเดลที่คุณพยายามใช้ไม่ได้เปิดใช้งาน ดูเมทริกซ์ของความพร้อมใช้งานของรุ่นนี้
คุณเกินโควต้าส่วนใหญ่มักจะมีทรัพยากรต่อภูมิภาค ดูบทความนี้เกี่ยวกับโควต้าและขีด จำกัด
คุณได้รับ "ชื่อทรัพยากรเดียวกันไม่อนุญาต" ความขัดแย้ง นั่นอาจเป็นเพราะคุณเรียกใช้ตัวอย่างหลายครั้งและลบทรัพยากรที่คุณสร้างขึ้นในแต่ละครั้ง แต่ลืมที่จะล้างพวกเขา Azure รักษาทรัพยากรเป็นเวลา 48 ชั่วโมงเว้นแต่คุณจะล้างออกจากการลบแบบนุ่ม ดูบทความนี้เกี่ยวกับทรัพยากรการล้าง
หลังจากเรียกใช้ azd up
และเยี่ยมชมเว็บไซต์คุณจะเห็น '404 ไม่พบ' ในเบราว์เซอร์ รอ 10 นาทีแล้วลองอีกครั้งเพราะมันอาจจะเริ่มขึ้น จากนั้นลองใช้ azd deploy
และรออีกครั้ง หากคุณยังคงพบข้อผิดพลาดกับแอพที่ปรับใช้ให้ปรึกษาเคล็ดลับเหล่านี้สำหรับการดีบักแอปบริการแอพพลิเคชั่นการปรับใช้และยื่นปัญหาหากบันทึกข้อผิดพลาดไม่ได้ช่วยคุณแก้ไขปัญหา
คุณได้รับข้อผิดพลาด 401 Principal does not have access to API/Operation
ในขณะที่เรียกใช้โครงการในเครื่องหรือพยายามปรับใช้ นั่นอาจเป็นเพราะตัวแปรสภาพแวดล้อมของคุณรวมถึง AZURE_TENANT_ID
, AZURE_CLIENT_ID
และ AZURE_CLIENT_SECRET
คุณควรให้สิทธิ์แก่ บริการหลักบริการ ที่เกี่ยวข้องหรือลบตัวแปรเหล่านี้ออกจากสภาพแวดล้อมของคุณเพื่อให้แน่ใจว่าการเข้าถึงปกติ สำหรับรายละเอียดเพิ่มเติมโปรดดู Azure Identity SDK
หมายเหตุ: เอกสารที่ใช้ในการสาธิตนี้มีข้อมูลที่สร้างขึ้นโดยใช้รูปแบบภาษา (บริการ Azure OpenAI) ข้อมูลที่มีอยู่ในเอกสารเหล่านี้มีไว้เพื่อการสาธิตเท่านั้นและไม่สะท้อนความคิดเห็นหรือความเชื่อของ Microsoft Microsoft ไม่ได้เป็นตัวแทนหรือการรับประกันใด ๆ ไม่ว่าโดยชัดแจ้งหรือโดยนัยเกี่ยวกับความสมบูรณ์ความแม่นยำความน่าเชื่อถือความเหมาะสมหรือความพร้อมใช้งานเกี่ยวกับข้อมูลที่มีอยู่ในเอกสารนี้ สงวนลิขสิทธิ์สำหรับ Microsoft