/virtual-assistant/tutorials/create-assistant/typescript/4-provision-you-azure-resources/
C# ๋ฐ Typescript ๋ฒ์ ๋ชจ๋์์ QnA ๊ธฐ๋ฐ ์ฑ๋ด์ ๋ง๋ค๊ณ ๊ตฌ์ฑํ๋ ค๊ณ ์๋ํ์ต๋๋ค. Windows(๊ธฐ๋ณธ) ๊ตฌ์ฑ์ ๊ฒฝ์ฐ ์ ์๋ํ๊ณ qnamaker์์ ๋ชจ๋ ๋ฆฌ์์ค์ ์ง์ ๊ธฐ๋ฐ์ ๋ฐ๋์ ์์ฑํฉ๋๋ค.
๊ทธ๋ฌ๋ Linux ์ด์ ์ฒด์ ์์ ์ธํ๋ผ(App Service Plan & Bot Service)๋ฅผ ํธ์คํ
ํ๋ ค๊ณ ํ ๋(๋จ์ํ ์ข
๋ฅ๋ฅผ Linux๋ก ๋ณ๊ฒฝํ์ฌ)
"์ข
๋ฅ": "linux" App Service ๊ณํ์ ๊ฒฝ์ฐ ๋ชจ๋ ํ์(App Service ๊ณํ, Cognitive Service, ์น ์ฑ Bot Service, ๊ฒ์ ์๋น์ค ๋ฑ)๋ฅผ ์์ฑํ์ง๋ง ์ง์ ๊ธฐ๋ฐ์ ์์ฑํ์ง ์์ต๋๋ค.
C# ๋ฐ Typescript ๋ฒ์ ๋ชจ๋์์ ์๋ํ ๊ฒ์ฒ๋ผ VA ํ
ํ๋ฆฟ ๋๋ ์ ์ฒด ๋ฐฐํฌ๊ฐ Linux ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ง์ํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ชจ๋ ์๋น์ค๋ฅผ ๋ง๋ ํ์๋ ์ง์ ๊ธฐ๋ฐ์ ์๋์ผ๋ก ๋ง๋ค๋ ค๊ณ ํ๋ฉด ๋์ ํค๋ฅผ ์ฐพ์ ์ ์์์ผ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
@pravinambekar ๋ , ์ด๋ค ํ์ผ์์ kind
๋ฅผ Linux๋ก ๋ณ๊ฒฝํ์๊ฒ ์ต๋๊น?
์ด๋ฅผ ์ดํด๋ณด๊ณ ์
๋ฐ์ดํธ๋๋ ๋๋ก ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค :slightly_smiling_ face:.
์๋ ํ์ธ์ @VictorGrycuk , ์ฌ๊ธฐ์์ App Service ๊ณํ์ ์ ์ํ๋ ๋์ ๋ฆฌ์์ค๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ARM ํ ํ๋ฆฟ์ ๋๋ค.
{
"comments": "app service plan",
"type": "Microsoft.Web/serverFarms",
"apiVersion": "2018-02-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"kind": "linux",
"sku": "[parameters('appServicePlanSku')]",
"properties": {"reserved": true},
"tags": {
"[parameters('resourceTagName')]": "[parameters('resourceTagValue')]"
}
@pravinambekar ์๋ ํ์ธ์, ์ฌํ ํ์ต๋๋ค.
template.json
json
{
"comments": "app service plan",
"type": "Microsoft.Web/serverFarms",
"apiVersion": "2018-02-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"kind": "linux",
"sku": "[parameters('appServicePlanSku')]",
"properties": {"reserved": true},
"tags": {
"[parameters('resourceTagName')]": "[parameters('resourceTagValue')]"
}
๋ํ qnamaker ํฌํธ์ ์ฌ์ฉํ์ฌ ์์ฑ์ ์๋ํ์ง๋ง No Endpoint keys found
์ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ ๋ฐ์ดํธ๋๋ ๋๋ก ์ฌ๊ธฐ๋ก ๋ค์ ์ฐ๋ฝ๋๋ฆฌ๊ฒ ์ต๋๋ค ๐.
_Linux๋ฅผ ํ์ฉํ ์ฑ ์๋น์ค ๊ณํ_
_deploy.ps1_์ ์ฌ์ฉํ์ฌ ์ง์ ๊ธฐ๋ฐ์ด ์์ฑ๋์ง ์์ต๋๋ค.
_๋ฌธ์ ์ฌํ_
@pravinambekar - ๊ทํ๊ฐ ์ธ๊ธ ํ Azure/azure-cli#9004 ๋ฌธ์ ๋ฅผ ์กฐ์ฌํ๊ณ ์ฐพ์ ํ ์ด๊ฒ์ด Virtual Assistant ์์ฒด ์ ์ ํ ์ด ์๋๋ผ Linux์ QnAMaker Cognitive Service์ App Service Plan ๊ฐ์ ํธํ์ฑ๊ณผ ๊ด๋ จ์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ๋ botframework-solutions ์ ๊ด๋ จ ์ด
@lauren-mills QnAMaker Cognitive Service๊ฐ Linux App Service Plan๊ณผ ํธํ๋๋์ง ์๊ณ ์์ต๋๊น?
๋ง์ง๋ง์ผ๋ก BotBuilder-Samples ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํ์ด ์ํ์ Linux์ฉ template.json ์ ์ถ๊ฐํ๋ ์์
์ ํ๊ณ ์์ง๋ง ์ง์ ๊ธฐ๋ฐ์ด ํฌํจ๋ Linux์ฉ template.json
์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. .
์๋
ํ์ธ์ @ Batta32๋ , ์ง๋ ๋ฉฐ์น ๋์ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์๋ํ์ผ๋ฉฐ VA ๊ธฐ๋ฐ template.json
๋ฐ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ์ฌ Linux ํ๋ซํผ ๊ธฐ๋ฐ์ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ํธ์คํ
/๊ตฌ์ฑํ ์ ์์์ต๋๋ค.
๋ด ์ฃผ์ ์ดํด๋ QnAMaker ์ฝ๊ทธ๋ํฐ๋ธ ์๋น์ค๊ฐ Linux ๊ธฐ๋ฐ ์๋น์ค๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ Knowledgebase ์์ฑ์ ์๋ํํ์ง ์์ ์๋ ์์ฑ ํ๋ก์ธ์ค์์๋ "No Endpoint Keys Found" ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์
๋๋ค.
@lauren-mills๊ฐ ์ด์ ๋ํด ์ฝ๊ฐ์ ๊ทธ๋์ ์ค ์ ์์ต๋๋ค.
@pravinambekar ์๋ ํ์ธ์. QnA Maker ํ์ ์ฐ๋ฝํ์ฌ QnA Maker v1์ด ์ฌ์ดํธ ํ์ฅ์ ํตํ ๋ฐฐํฌ๋ก ์ธํด Linux๋ฅผ ์ง์ํ์ง ์๋๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ๋ณ๋์ ๋ฐํ์ ์ฑ ์๋น์ค๊ฐ ํ์ํ์ง ์์ QnA Maker v2๋ก ์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ARM ํ ํ๋ฆฟ์ ์ ๋ฐ์ดํธํด ๋ณด๊ณ ๊ทธ๊ฒ์ด ํจ๊ณผ๊ฐ ์๋์ง ์๋ ค์ฃผ์๊ฒ ์ต๋๊น?
v2 ์ธ์คํด์ค ๋ฐฐํฌ์ ๋ํ ๋ช ํํ ์ง์นจ์ด ์๋ ๊ฒ ๊ฐ์์ QnA Maker ํ์ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ฌธ์ํ๊ณ ์์ต๋๋ค.
ํ์ ๋ฌธ์๋ฅผ ๋ณด๋ด์ฃผ์ @lauren-mills์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
ARM์์ QnAMaker V2 API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํด ์ฝ๊ฐ ํผ๋์ค๋ฌ์ ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ถํฐ ์ฐพ๊ณ ์๋ ๊ฒ์ด ๋ฐ๋ก ๋ฆฌ์์ค์ ์ ์์ผ ๋ฟ์
๋๋ค.
์ด๊ฒ์ Azure Portal์ ์ง์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋ QnA Maker์์ ์ป์ ๋งํฌ์ ๋๋ค. ๋ด์ผ ์ด๊ฒ์ ARM ํ ํ๋ฆฟ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ ์ฌ๊ธฐ์ ํด๋น ์ธ๋ถ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. https://techcommunity.microsoft.com/t5/azure-ai/introducing-qna-maker-managed-now-in-public-preview/ba-p/1845575
qnamaker v2 ์ธ์คํด์ค๋ฅผ ๋ฐฐํฌํ๋๋ฐ ์ด๊ฒ์ด ํด๋นํ๋ ARM ํ ํ๋ฆฟ์ ๋๋ค. ๊ธฐ์กด qna ์๋น์ค ๋์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ์ ARM ํ ํ๋ฆฟ์ ์ด๊ฒ์ ์ถ๊ฐํ๊ณ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๊น? kb ๋ฐฐํฌ๊ฐ ๋์ผํ์ง ํ์คํ์ง ์์ง๋ง ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"defaultValue": "<your-service-name>",
"type": "String"
},
"search-name": {
"defaultValue": "<your-service-name>-search",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.CognitiveServices/accounts",
"apiVersion": "2017-04-18",
"name": "[parameters('name')]",
"location": "southcentralus",
"sku": {
"name": "S0"
},
"kind": "QnAMaker.v2",
"properties": {
"apiProperties": {},
"customSubDomainName": "[parameters('name')]",
"privateEndpointConnections": [],
"publicNetworkAccess": "Enabled"
}
},
{
"type": "Microsoft.Search/searchServices",
"apiVersion": "2020-08-01",
"name": "[parameters('search-name')]",
"location": "West US",
"sku": {
"name": "standard"
},
"properties": {
"replicaCount": 1,
"partitionCount": 1,
"hostingMode": "Default",
"publicNetworkAccess": "Enabled",
"networkRuleSet": {
"ipRules": []
}
}
}
]
}
@lauren-mills์ ์ด ํ ๋ก ์ค๋ ๋์ ๊ธฐ์ฌํ ๋ชจ๋ ๋ถ๋ค๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋ง์นจ๋ด ์ด์ Linux ๊ณํ์ ๊ธฐ๋ฐ์ผ๋ก QnAMaker ๊ธฐ๋ฐ ChatBot์ ์๋ฒฝํ๊ฒ ์๋ํ ์ ์์ต๋๋ค.
Linux์ ๋ํ ๋ฌธ์ ๋ง ํด๊ฒฐํ ๊ฒ์ด ์๋๋ผ QnAMaker Cognitive Service๊ฐ ์๋ํ๋ ๋ฐฉ์์ผ๋ก ๋ค๊ตญ์ด KB ์ง์์ด ๊ฐ๋ฅํ๋ฉฐ ์ถ๊ฐ ์ฑ ์๋น์ค๊ฐ ํ์ํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์๋ก์ด QnAMaker API ๋ฒ์ ์์๋ ARM ๋ฆฌ์์ค๊ฐ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฐฉ์์ด ๊ฑฐ์ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค.
๊ฐ์ฌํ๊ณ ๊ฑด๋ฐฐ:)
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ Azure Portal์ ์ง์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋ QnA Maker์์ ์ป์ ๋งํฌ์ ๋๋ค. ๋ด์ผ ์ด๊ฒ์ ARM ํ ํ๋ฆฟ์ผ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ณ ์ฌ๊ธฐ์ ํด๋น ์ธ๋ถ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ฒ ์ต๋๋ค. https://techcommunity.microsoft.com/t5/azure-ai/introducing-qna-maker-managed-now-in-public-preview/ba-p/1845575