SSS botunuza birden çok kategori ekleme

Bu öğreticide aşağıdakilerin nasıl yapılacağını öğreneceksiniz:

  • Proje oluşturma ve soru yanıt çiftlerini meta verilerle ayrı kategoriler halinde etiketleme
  • Her etki alanı için ayrı bir proje oluşturma
  • Her etki alanı için ayrı bir dil kaynağı oluşturma

SSS botu oluştururken, birden çok etki alanı genelindeki sorguları ele almanızı gerektiren kullanım örnekleriyle karşılaşabilirsiniz. Microsoft'taki pazarlama ekibinin birden çok Surface Ürünü ile ilgili yaygın kullanıcı sorgularını yanıtlayan bir müşteri destek botu oluşturmak istediğini düşünelim. Buradaki kolaylık açısından projeyi oluşturmak için iki SSS URL'sini, Surface Kalemi'ni ve Surface Earbuds'u kullanacağız.

Etki alanına özgü meta verilerle proje oluşturma

İçerik yazarları, soru yanıt çiftlerini ayıklamak veya projeye özel soru yanıt çiftleri eklemek için belgeleri kullanabilir. Bu soru ve yanıtları belirli etki alanları veya kategoriler halinde gruplandırmak için meta veriler ekleyebilirsiniz.

Surface ürünlerindeki bot için, her iki ürün türüne yönelik sorguları yanıtlayan bir bot oluşturmak için aşağıdaki adımları uygulayabilirsiniz:

  1. Kaynak>URL'leri ekle'yi seçerek aşağıdaki SSS URL'lerini> kaynak olarak ekleyin ve ardından AŞAĞıDAKI URL'lerin her birini ekledikten sonra Tümünü ekle'yi seçin:

    Surface Kalemi hakkında SSS
    Surface Earbuds SSS

    Screenshot of add URL UI.

  2. Bu projede, iki üründe soru yanıt çiftleri var ve belirli bir ürün için soru ve yanıtlar arasında yanıtlar arayabilecek şekilde aralarında ayrım yapmak istiyoruz. Bunu yapmak için soru yanıt çiftleri için meta veri alanını güncelleştirebiliriz.

    Aşağıdaki örnekte de görebileceğiniz gibi, ürün anahtar ve surface_pen veyasurface_earbuds değer olarak uygun olan her yerde içeren bir meta veri ekledik. Bu örneği genişleterek birden çok üründeki verileri ayıklayabilir ve her ürün için farklı bir değer ekleyebilirsiniz.

    Screenshot of metadata example.

  3. Şimdi, sistemin belirli bir üründeki yanıtı aramasını kısıtlamak için bu ürünü REST API'yi yanıtlayan özel soruya filtre olarak geçirmeniz gerekir.

    REST API tahmin URL'si Projeyi dağıt bölmesinden alınabilir:

    Screenshot of the Deploy project page with the prediction URL displayed.

    API çağrısının JSON gövdesinde meta veri ürünü için değer olarak surface_pen geçtik. Bu nedenle, sistem yalnızca aynı meta verilerle Soru-Cevap çiftleri arasında yanıtı arar.

        {
          "question": "What is the price?",
          "top": 3
        },
        "answerSpanRequest": {
          "enable": true,
          "confidenceScoreThreshold": 0.3,
          "topAnswersWithSpan": 1
        },
        "filters": {
          "metadataFilter": {
            "metadata": [
              {
                "key": "product",
                "value": "surface_pen"
              }
            ]
          }
        }
    

    Meta veri değerini kullanıcı girişlerine göre aşağıdaki yollarla elde edebilirsiniz:

    • Bot istemcisi aracılığıyla etki alanını kullanıcıdan giriş olarak açıkça alın. Örneğin, aşağıda gösterildiği gibi, konuşma başlatıldığında kullanıcıdan giriş olarak ürün kategorisini alabilirsiniz.

      Take metadata input

    • Bot bağlamı temelinde etki alanını örtük olarak tanımlayın. Örneğin, önceki sorunun belirli bir Surface ürününde olması durumunda, istemci tarafından bağlam olarak kaydedilebilir. Kullanıcı bir sonraki sorguda ürünü belirtmezse, bot bağlamını Yanıt Oluştur API'sine meta veri olarak geçirebilirsiniz.

      Pass context

    • Meta veri filtresi için kullanılacak etki alanını tanımlamak için kullanıcı sorgusundan varlığı ayıklayın. Varlık ayıklama için Adlandırılmış Varlık Tanıma (NER) ve konuşma dili anlama gibi diğer Azure AI hizmetlerini kullanabilirsiniz.

      Extract metadata from query

Projelerimiz ne kadar büyük olabilir?

Tek bir projeye en fazla 50000 soru yanıt çifti ekleyebilirsiniz. Verileriniz 50.000 soru yanıt çiftini aşıyorsa projeyi bölmeyi düşünmelisiniz.

Her etki alanı için ayrı bir proje oluşturma

Ayrıca her etki alanı için ayrı bir proje oluşturabilir ve projeleri ayrı ayrı tutabilirsiniz. Tüm API'ler, kullanıcının projede herhangi bir güncelleştirme yapmak veya kullanıcının sorusuna bir yanıt getirmek için proje adını geçirmesini gerektirir.

Kullanıcı sorusu hizmet tarafından alındığında, ilgili projeden yanıt getirmek için gösterilen REST API uç noktasında öğesini geçirmeniz projectName gerekir. URL'yi Projeyi dağıt sayfasında Tahmin URL'sini al'ın altında bulabilirsiniz:

https://southcentralus.api.cognitive.microsoft.com/language/:query-knowledgebases?projectName=Test-Project-English&api-version=2021-10-01&deploymentName=production

Her etki alanı için ayrı bir dil kaynağı oluşturma

Microsoft'taki pazarlama ekibinin Surface ve Xbox ürünleriyle ilgili kullanıcı sorgularını yanıtlayan bir müşteri destek botu oluşturmak istediğini düşünelim. Surface ve Xbox'ta projelere erişmek için farklı ekipler atamayı planlıyorlar. Bu durumda biri Surface, diğeri Xbox için olmak üzere iki özel soru yanıtlama kaynağı oluşturmanız tavsiye edilir. Ancak, aynı kaynağa erişen kullanıcılar için ayrı roller tanımlayabilirsiniz.