Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Özel Web API'si becerisi, özel işlemler sağlayan bir Web API uç noktasına çağrı yaparak yapay zeka zenginleştirmesini genişletmenize olanak tanır. Yerleşik becerilere benzer şekilde, Özel Web API'sinde de girişler ve çıkışlar bulunur. Girişlere bağlı olarak, dizin oluşturucu çalıştırıldığında Web API'niz bir JSON yükü alır ve bir JSON yükünü yanıt olarak ve bir başarı durum koduyla birlikte verir. Yanıtın özel beceriniz tarafından belirtilen çıkışlara sahip olması beklenir. Diğer tüm yanıtlar hata olarak kabul edilir ve zenginleştirme yapılmaz. JSON yükünün yapısı bu belgede daha aşağıda açıklanmıştır.
Özel Web API'sinin becerisi, Verilerinizde Azure OpenAI özelliğinin uygulanmasında da kullanılır. Azure OpenAI rol tabanlı erişim için yapılandırılmışsa ve vektör dizinini oluştururken çağrılar alırsanız403 Forbidden, Azure AI Search'te sistem tarafından atanan bir kimlik olduğunu ve Azure OpenAI'de güvenilir hizmet olarak çalıştığını doğrulayın.
Not
Dizin oluşturucu, Web API'sinden döndürülen belirli standart HTTP durum kodları için iki kez yeniden denenir. Bu HTTP durum kodları şunlardır:
502 Bad Gateway503 Service Unavailable429 Too Many Requests
@odata.type
Microsoft.Skills.Custom.WebApiSkill
Beceri parametreleri
Parametreler büyük/küçük harfe duyarlıdır.
| Parametre adı | Açıklama |
|---|---|
uri |
JSON yükünün gönderildiği Web API'sinin URI'sini. Yalnızca https URI düzenine izin verilir. |
authResourceId |
(İsteğe bağlı) Ayarlanırsa, bu becerinin kodu barındıran işlev veya uygulama bağlantısında sistem tarafından yönetilen kimlik kullanması gerektiğini belirten bir dize. Bu özellik, şu biçimlerden herhangi birinde bir uygulama (istemci) kimliği veya Uygulamanın Microsoft Entra Id kaydı alır: api://<appId>, <appId>/.default, api://<appId>/.default. Bu değer, dizin oluşturucu tarafından alınan kimlik doğrulama belirtecinin kapsamını daraltmak için kullanılır ve işleve veya uygulamaya özel Web beceri API'si isteğiyle birlikte gönderilir. Bu özelliğin ayarlanması, arama hizmetinizin yönetilen kimlik için yapılandırılmasını ve Azure işlev uygulamanızın bir Microsoft Entra oturum açma işlemi için yapılandırılmasını gerektirir. Bu parametreyi kullanmak için API'yi ile api-version=2023-10-01-Previewçağırın. |
authIdentity |
(İsteğe bağlı) Arama hizmeti tarafından kodu barındıran işleve veya uygulamaya bağlanmak için kullanılan kullanıcı tarafından yönetilen kimlik. Sistem veya kullanıcı tarafından yönetilen kimlik kullanabilirsiniz. Sistem tarafından yönetilen kimlik kullanmak için boş bırakın authIdentity . |
httpMethod |
Yükü gönderirken kullanılacak yöntem. İzin verilen yöntemler veya'dır PUTPOST |
httpHeaders |
Anahtarların üst bilgi adlarını, değerlerin de yüküyle birlikte Web API'nize gönderilen üst bilgi değerlerini temsil ettiği anahtar-değer çiftleri koleksiyonu. Aşağıdaki üst bilgilerin bu koleksiyonda olması yasaktır: , , , , , Accept, Accept-Charset, Accept-Encoding, Content-LengthContent-Type, Cookie. HostTEUpgradeVia |
timeout |
(İsteğe bağlı) Belirtildiğinde, API çağrısı yapan http istemcisinin zaman aşımını gösterir. XSD "dayTimeDuration" değeri (ISO 8601 süre değerinin kısıtlanmış bir alt kümesi) olarak biçimlendirilmelidir. Örneğin, PT60S 60 saniye için. Ayarlanmamışsa, varsayılan değer olarak 30 saniye seçilir. Zaman aşımı en fazla 230 saniye ve en az 1 saniye olarak ayarlanabilir. |
batchSize |
(İsteğe bağlı) API çağrısı başına kaç "veri kaydı" gönderildiğini gösterir (aşağıdaki JSON yük yapısına bakın). Ayarlanmamışsa, varsayılan olarak 1000 seçilir. Dizin aktarım hızı ile API'nizdeki yük arasında uygun bir denge elde etmek için bu parametreyi kullanmanızı öneririz. |
degreeOfParallelism |
(İsteğe bağlı) Belirtildiğinde, dizin oluşturucunun sağladığınız uç noktaya paralel olarak yaptığı çağrı sayısını gösterir. Uç noktanız baskı altında başarısız oluyorsa bu değeri azaltabilir veya uç noktanız yükü işleyebilirse yükseltebilirsiniz. Ayarlanmazsa, varsayılan 5 değeri kullanılır.
degreeOfParallelism en fazla 10 ve en az 1 olarak ayarlanabilir. |
Beceri girişleri
Bu beceri için önceden tanımlanmış giriş yok. Girişler, var olan herhangi bir alan veya özel becerinize geçirmek istediğiniz zenginleştirme ağacındaki herhangi bir düğüm.
Beceri çıkışları
Bu beceri için önceden tanımlanmış çıkış yok. Becerinin çıkışının arama dizinindeki bir alana gönderilmesi gerekiyorsa dizin oluşturucuda bir çıkış alanı eşlemesi tanımladığınızdan emin olun.
Örnek tanım
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "A custom skill that can identify positions of different phrases in the source text",
"uri": "https://contoso.count-things.com",
"batchSize": 4,
"context": "/document",
"inputs": [
{
"name": "text",
"source": "/document/content"
},
{
"name": "language",
"source": "/document/languageCode"
},
{
"name": "phraseList",
"source": "/document/keyphrases"
}
],
"outputs": [
{
"name": "hitPositions"
}
]
}
Örnek giriş JSON yapısı
Bu JSON yapısı, Web API'nize gönderilen yükü temsil eder. Her zaman şu kısıtlamaları izler:
Üst düzey varlık çağrılır
valuesve bir nesne dizisidir. Bu tür nesnelerin sayısı en fazla şeklindedirbatchSize.Dizideki her nesnenin
valuessahip olduğu:Bu
recordIdkaydı tanımlamak için kullanılan benzersiz bir dize olan özellik.dataJSON nesnesi olan bir özellik. özelliğinindataalanları, beceri tanımının bölümünde belirtileninputs"adlara" karşılık gelir. Bu alanların değerleri bu alanların değerleridirsource(belgedeki bir alandan veya başka bir beceriden olabilir).
{
"values": [
{
"recordId": "0",
"data":
{
"text": "Este es un contrato en Inglés",
"language": "es",
"phraseList": ["Este", "Inglés"]
}
},
{
"recordId": "1",
"data":
{
"text": "Hello world",
"language": "en",
"phraseList": ["Hi"]
}
},
{
"recordId": "2",
"data":
{
"text": "Hello world, Hi world",
"language": "en",
"phraseList": ["world"]
}
},
{
"recordId": "3",
"data":
{
"text": "Test",
"language": "es",
"phraseList": []
}
}
]
}
Örnek çıkış JSON yapısı
"Çıkış", Web API'nizden döndürülen yanıta karşılık gelir. Web API'sinin yalnızca bir JSON yükü döndürmesi (yanıt üst bilgisine Content-Type bakarak doğrulanmış) ve aşağıdaki kısıtlamaları karşılaması gerekir:
adlı
valuesbir üst düzey varlık olmalıdır ve bu bir nesne dizisi olmalıdır.Dizideki nesne sayısı, Web API'sine gönderilen nesne sayısıyla aynı olmalıdır.
Her nesnenin sahip olması gerekenler:
Bir
recordIdözellik.dataAlanların içindeki "adlarla"outputeşleşen zenginleştirmeler olduğu ve değerinin zenginleştirme olarak kabul edildiği bir nesne olan özellik.Dizin
errorsoluşturucu yürütme geçmişine eklenen hataları listeleyen bir özellik. Bu özellik gereklidir, ancak birnulldeğere sahip olabilir.warningsDizin oluşturucu yürütme geçmişine eklenen uyarıları listeleyen bir dizi özelliği. Bu özellik gereklidir, ancak birnulldeğere sahip olabilir.
içindeki nesnelerin
valuesistekte veya yanıtta sıralanması önemli değildir. Ancak, web API'sinerecordIdyönelik özgün isteğin parçası olmayan birrecordIdiçeren yanıttaki tüm kayıtların atılması için bağıntı için kullanılır.
{
"values": [
{
"recordId": "3",
"data": {
},
"errors": [
{
"message" : "'phraseList' should not be null or empty"
}
],
"warnings": null
},
{
"recordId": "2",
"data": {
"hitPositions": [6, 16]
},
"errors": null,
"warnings": null
},
{
"recordId": "0",
"data": {
"hitPositions": [0, 23]
},
"errors": null,
"warnings": null
},
{
"recordId": "1",
"data": {
"hitPositions": []
},
"errors": null,
"warnings": [
{
"message": "No occurrences of 'Hi' were found in the input text"
}
]
},
]
}
Hata durumları
Web API'nizin kullanılamaması veya başarılı olmayan durum kodları göndermenize ek olarak, aşağıdakiler hatalı durumlar olarak kabul edilir:
Web API'sinin bir başarı durum kodu döndürmesine rağmen yanıt bunun
application/jsonolmadığını gösteriyorsa yanıt geçersiz kabul edilir ve zenginleştirme yapılmaz.Yanıt
recordIddizisinde geçersiz kayıtlar (örneğin,valueseksik veya yinelenen) varsa, geçersiz kayıtlar için zenginleştirme yapılmaz. Özel beceriler geliştirirken Web API beceri sözleşmesine uymak önemlidir. Beklenen sözleşmeyi izleyen Power Skill deposunda sağlanan bu örneğe başvurabilirsiniz.
Web API'sinin kullanılamadığı veya HTTP hatası döndürdüğü durumlarda, dizin oluşturucu yürütme geçmişine HTTP hatasıyla ilgili kullanılabilir ayrıntıları içeren kolay bir hata eklenir.