Orchestrator ile birden çok LUIS ve Soru-Cevap modeli kullanma
ŞUNLAR IÇIN GEÇERLIDIR: SDK v4
Not
Azure Yapay Zeka Soru-Cevap Oluşturma 31 Mart 2025 tarihinde kullanımdan kaldırılacaktır. 1 Ekim 2022 tarihinden itibaren yeni QnA Maker kaynakları veya bilgi bankası makaleleri oluşturamazsınız. Soru ve yanıtlama özelliğinin daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.
Azure AI Dili'nin bir özelliği olan özel soru yanıtlama, Soru-Cevap Oluşturma hizmetinin güncelleştirilmiş sürümüdür. Bot Framework SDK'sında soru-cevap desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.
Not
Language Understanding (LUIS) 1 Ekim 2025'te kullanımdan kaldırılacaktır. 1 Nisan 2023'e kadar yeni LUIS kaynakları oluşturamayacaksınız. Dil anlamanın daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.
Azure AI Dili'nin bir özelliği olan konuşma dili anlama (CLU), LUIS'in güncelleştirilmiş sürümüdür. Bot Framework SDK'sında dil anlama desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.
Bot birden çok Language Understanding (LUIS) modeli ve Soru-Cevap Oluşturma bilgi bankası kullanıyorsa, kullanıcı girişiyle en iyi eşleşen LUIS modelini veya Soru-Cevap Oluşturma bilgi bankası belirlemek için Bot Framework Orchestrator'ı kullanabilirsiniz. CLI komutunu kullanarak bf orchestrator
bir Orchestrator anlık görüntü dosyası oluşturabilir ve ardından anlık görüntü dosyasını kullanarak kullanıcı girişini çalışma zamanında doğru modele yönlendirebilirsiniz.
Bu makalede Orchestrator ile mevcut Soru-Cevap Oluşturma bilgi bankası nasıl kullanılacağı açıklanmaktadır.
- Yeni botlar için Azure AI Language'in soru yanıtlama ve düzenleme iş akışı özelliklerini kullanmayı göz önünde bulundurun.
- Orchestrator hakkında daha fazla bilgi için bkz . Composer'da Orchestrator ile amaç tanıma.
- Komut hakkında
bf orchestrator
daha fazla bilgi için bkz . Bot Framework CLI README.
Önkoşullar
- LUIS uygulamaları yazmak için bir luis.ai hesabı.
- Soru-Cevap Oluşturma hesabı ve mevcut soru-cevap oluşturma bilgi bankası.
- C# (arşivlenmiş) veya JavaScript (arşivlenmiş) içinde Orchestrator ile NLP örneğinin bir kopyası.
- Bot temel bilgileri, LUIS ve Soru-Cevap Oluşturma hakkında bilgi.
- BF CLI komut satırını yükleyin.
Bu örnek hakkında
Bu örnek, önceden tanımlanmış bir LUIS ve Soru-Cevap Oluşturma projeleri kümesini temel alır. Ancak botunuzda Soru-Cevap Oluşturma'yı kullanmak için Soru-Cevap Oluşturma portalında mevcut bir bilgi bankası gerekir. Botunuz daha sonra kullanıcının sorularını yanıtlamak için bilgi bankası kullanabilir.
Yeni bot geliştirme için Copilot Studio'yu kullanmayı göz önünde bulundurun. Bot Framework SDK botu için yeni bir bilgi bankası oluşturmanız gerekiyorsa aşağıdaki Azure AI hizmetleri makalelerine bakın:
- Soruyu yanıtlamak nedir?
- SSS botu oluşturma
- .NET için Azure Bilişsel Dil Hizmetleri Soru Yanıtlama istemci kitaplığı
OnMessageActivityAsync
, alınan her kullanıcı girişi için çağrılır. Bu modül en çok puan alan kullanıcı amacını bulur ve bu sonucu öğesine DispatchToTopIntentAsync
geçirir. DispatchToTopIntentAsync de uygun uygulama işleyicisini çağırır.
ProcessSampleQnAAsync
- bot hakkında SSS soruları için.ProcessWeatherAsync
- hava durumu sorguları için.ProcessHomeAutomationAsync
- ev aydınlatma komutları için.
İşleyici LUIS veya Soru-Cevap Oluşturma hizmetini çağırır ve oluşturulan sonucu kullanıcıya geri döndürür.
LUIS uygulamaları oluşturma
Orchestrator anlık görüntü dosyası oluşturabilmeniz için önce LUIS uygulamalarının ve Soru-Cevap bilgi bankası oluşturulması ve yayımlanması gerekir. Bu makalede başvuruda bulunan örnek bot, klasöründeki NLP With Orchestrator örneğine \CognitiveModels
dahil edilen aşağıdaki modelleri kullanır:
Veri Akışı Adı | Açıklama |
---|---|
HomeAutomation | İlişkili varlık verileriyle ev otomasyonu amacını tanıyan bir LUIS uygulaması. |
Hava Durumu | Konum verileriyle hava durumuyla ilgili amaçları tanıyan bir LUIS uygulaması. |
Soru-Cevap Oluşturma | Bot hakkındaki basit soruların yanıtlarını sağlayan soru-cevap oluşturma bilgi bankası. |
LUIS uygulamalarını oluşturma
Örneğin bilişsel modeller dizininde HomeAutomation ve Weather .lu dosyalarından LUIS uygulamaları oluşturun.
Uygulamayı içeri aktarmak, eğitmek ve üretim ortamında yayımlamak için aşağıdaki komutu çalıştırın.
bf luis:build --in CognitiveModels --authoringKey <YOUR-KEY> --botName <YOUR-BOT-NAME>
Uygulama kimliklerini, görünen adları, yazma anahtarını ve konumu kaydedin.
Daha fazla bilgi için LUIS portalında LUIS uygulaması oluşturma ve Botunuza doğal dil anlama ekleme bölümünde LUIS uygulamanıza bağlanmak için değerler elde etme konularına ve bir uygulamayı eğitip üretim ortamına yayımlamaya ilişkin LUIS belgelerine bakın.
Botunuzu bilgi bankası bağlamak için değerleri alma
Not
Azure Yapay Zeka Soru-Cevap Oluşturma 31 Mart 2025 tarihinde kullanımdan kaldırılacaktır. 1 Ekim 2022 tarihinden itibaren yeni QnA Maker kaynakları veya bilgi bankası makaleleri oluşturamazsınız. Soru ve yanıtlama özelliğinin daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir.
Azure AI Dili'nin bir özelliği olan özel soru yanıtlama, Soru-Cevap Oluşturma hizmetinin güncelleştirilmiş sürümüdür. Bot Framework SDK'sında soru-cevap desteği hakkında daha fazla bilgi için bkz . Doğal dil anlama.
Mevcut bir bilgi bankası ve Soru-Cevap Oluşturma ana bilgisayar adınız ve uç nokta anahtarınız olması gerekir.
İpucu
Soru-Cevap Oluşturma belgelerinde bilgi bankası oluşturma, eğitma ve yayımlama yönergeleri bulunur.
Orchestrator anlık görüntü dosyasını oluşturma
Orchestrator aracının CLI arabirimi, çalışma zamanında doğru LUIS veya Soru-Cevap Oluşturma uygulamasına yönlendirmek için Orchestrator anlık görüntü dosyasını oluşturur.
Visual C++ Yeniden Dağıtılabilir paketinin desteklenen en son sürümünü yükleme
Bir komut istemi veya terminal penceresi açın ve dizinleri örnek dizinle değiştirin
Geçerli npm sürümüne ve Bot Framework CLI'ya sahip olduğunuzdan emin olun.
npm i -g npm npm i -g @microsoft/botframework-cli
Orchestrator temel model dosyasını indirme
mkdir model bf orchestrator:basemodel:get --out ./model
Orchestrator anlık görüntü dosyasını oluşturma
mkdir generated bf orchestrator:create --hierarchical --in ./CognitiveModels --out ./generated --model ./model
Paketleri yükleme
Bu uygulamayı ilk kez çalıştırmadan önce birkaç NuGet paketinin yüklendiğinden emin olun:
- Microsoft.Bot.Builder
- Microsoft.Bot.Builder.AI.Luis
- Microsoft.Bot.Builder.AI.QnA
- Microsoft.Bot.Builder.AI.Orchestrator
appsettings.json dosyanızı el ile güncelleştirme
Tüm hizmet uygulamalarınız oluşturulduktan sonra her birine ilişkin bilgilerin 'appsettings.json' dosyanıza eklenmesi gerekir. C# (arşivlenmiş) kodu için ilk örnek boş bir appsettings.json dosyası içeriyor:
appsettings.json
Aşağıda gösterilen varlıkların her biri için, bu yönergelerde daha önce kaydettiğiniz değerleri ekleyin:
"QnAKnowledgebaseId": "<knowledge-base-id>",
"QnAEndpointKey": "<qna-maker-resource-key>",
"QnAEndpointHostName": "<your-hostname>",
"LuisHomeAutomationAppId": "<app-id-for-home-automation-app>",
"LuisWeatherAppId": "<app-id-for-weather-app>",
"LuisAPIKey": "<your-luis-endpoint-key>",
"LuisAPIHostName": "<your-dispatch-app-region>",
Tüm değişiklikler tamamlandığında bu dosyayı kaydedin.
Botunuzdan hizmetlere bağlanma
LUIS ve Soru-Cevap Oluşturma hizmetlerine bağlanmak için botunuz ayarlar dosyasından bilgileri çeker.
BotServices.cs'da, Orchestrator botunuzu HomeAutomation
ve SampleQnA
Weather
hizmetlerine bağlamak için yapılandırma dosyası appsettings.json içinde yer alan bilgiler kullanılır. Oluşturucular, bu hizmetlere bağlanmak için sağladığınız değerleri kullanır.
BotServices.cs
Botunuzdan hizmetleri arama
Kullanıcınızdan gelen her giriş için bot mantığı kullanıcı girişini Orchestrator Recognizer'a geçirir, döndürülen en önemli amacı bulur ve bu bilgileri kullanarak giriş için uygun hizmeti çağırır.
Yöntem her OnMessageActivityAsync
çağrıldığında DispatchBot.cs dosyasında gelen kullanıcı iletisini denetler ve Orchestrator Recognizer'dan en üstteki amacı alırsınız. Ardından hizmeti çağırmak ve sonucu döndürmek için ve recognizerResult
değerini doğru yönteme geçiririztopIntent
.
bots\DispatchBot.cs
Tanıma sonuçlarıyla çalışma
Orchestrator tanıyıcısı bir sonuç ürettiğinde, hangi hizmetin konuşmayı en uygun şekilde işleyebileceğini gösterir. Bu bottaki kod isteği ilgili hizmete yönlendirir ve çağrılan hizmetten gelen yanıtı özetler. Orchestrator'dan döndürülen amaclara bağlı olarak, bu kod döndürülen amacı doğru LUIS modeline veya Soru-Cevap hizmetine yönlendirmek için kullanır.
bots\DispatchBot.cs
ve ProcessWeatherAsync
yöntemleri, ProcessHomeAutomationAsync
en üst amacı ve varlıkları doğru LUIS modelinden almak için dönüş bağlamı içinde yer alan kullanıcı girişini kullanır.
yöntemi, ProcessSampleQnAAsync
bilgi bankası bir yanıt oluşturmak ve bu sonucu kullanıcıya görüntülemek için dönüş bağlamı içinde yer alan kullanıcı girişini kullanır.
Not
Bu bir üretim uygulamasıysa, seçilen LUIS yöntemleri belirtilen hizmetine bağlanır, kullanıcı girişini geçirir ve döndürülen LUIS amacını ve varlık verilerini işler.
Botunuzu test etme
Geliştirme ortamınızı kullanarak örnek kodu başlatın. Uygulamanız tarafından açılan tarayıcı penceresinin adres çubuğunda gösterilen localhost adresini not edin:
https://localhost:<Port_Number>
.Bot Framework Emulator'ı açın, Botu Aç düğmesine tıklayın.
Bot aç iletişim kutusunda, gibi
http://localhost:3978/api/messages
bot uç nokta URL'nizi girin. Bağlan'a tıklayın.Başvurunuz için, botunuz için oluşturulan hizmetlerin ele aldığı bazı sorular ve komutlar şunlardır:
- Soru-Cevap Oluşturma
hi
,good morning
what are you
,what do you do
- LUIS (ev otomasyonu)
turn on bedroom light
turn off bedroom light
make some coffee
- LUIS (hava durumu)
whats the weather in redmond washington
what's the forecast for london
show me the forecast for nebraska
- Soru-Cevap Oluşturma
Kullanıcı konuşmasını Soru-Cevap Oluşturma'ya yönlendirme
Öykünücü'de metni
hi
girin ve ifadeyi gönderin. Bot bu sorguyu Orchestrator'a gönderir ve hangi alt uygulamanın daha fazla işlem için bu konuşmayı alması gerektiğini belirten bir yanıt alır.Günlükteki satırı seçerek Öykünücü'de
Orchestrator Recognition Trace
JSON yanıtını görebilirsiniz. Orchestrator sonucu Denetçi'de görüntülenir.{ "type": "trace", "timestamp": "2021-05-01T06:26:04.067Z", "serviceUrl": "http://localhost:58895", "channelId": "emulator", "from": { "id": "36b2a460-aa43-11eb-920f-7da472b36492", "name": "Bot", "role": "bot" }, "conversation": { "id": "17ef3f40-aa46-11eb-920f-7da472b36492|livechat" }, "recipient": { "id": "5f8c6123-2596-45df-928c-566d44426556", "role": "user" }, "locale": "en-US", "replyToId": "1a3f70d0-aa46-11eb-8b97-2b2a779de581", "label": "Orchestrator Recognition", "valueType": "OrchestratorRecognizer", "value": { "text": "hi", "alteredText": null, "intents": { "QnAMaker": { "score": 0.9987310956576168 }, "HomeAutomation": { "score": 0.3402091165577196 }, "Weather": { "score": 0.24092200496795158 } }, "entities": {}, "result": [ { "Label": { "Type": 1, "Name": "QnAMaker", "Span": { "Offset": 0, "Length": 2 } }, "Score": 0.9987310956576168, "ClosestText": "hi" }, { "Label": { "Type": 1, "Name": "HomeAutomation", "Span": { "Offset": 0, "Length": 2 } }, "Score": 0.3402091165577196, "ClosestText": "make some coffee" }, { "Label": { "Type": 1, "Name": "Weather", "Span": { "Offset": 0, "Length": 2 } }, "Score": 0.24092200496795158, "ClosestText": "soliciting today's weather" } ] }, "name": "OrchestratorRecognizerResult", "id": "1ae65f30-aa46-11eb-8b97-2b2a779de581", "localTimestamp": "2021-04-30T23:26:04-07:00" }
konuşma,
hi
Orchestrator'ın Soru-Cevap Oluşturma amacının bir parçası olduğundan ve olaraktopScoringIntent
seçildiğinden, bot bu kez Soru-Cevap Oluşturma uygulamasına aynı konuşmayla ikinci bir istekte bulunur.Öykünücü
QnAMaker Trace
günlüğünde satırı seçin. Soru-Cevap Oluşturma sonucu Denetçi'de görüntülenir.{ "questions": [ "hi", "greetings", "good morning", "good evening" ], "answer": "Hello!", "score": 1, "id": 96, "source": "QnAMaker.tsv", "metadata": [], "context": { "isContextOnly": false, "prompts": [] } }
[Python (arşivlenmiş)]: (https://github.com/microsoft/BotBuilder-Samples/tree/main/archive/samples/python/14.nlp-with-orchestrator