Hızlı Başlangıç: Mürekkep Tanıma REST API ve Java ile dijital mürekkep tanıma
Not
Mürekkep Tanıma API'si önizlemesini 26 Ağustos 2020'de sona erdirdi. Mevcut Mürekkep Tanıma kaynaklarınız varsa, hizmet 31 Ocak 2021'de tamamen kullanımdan kaldırana kadar bunları kullanmaya devam edebilirsiniz.
Dijital mürekkep vuruşlarında Mürekkep Tanıma API'sini kullanmaya başlamak için bu hızlı başlangıcı kullanın. Bu Java uygulaması JSON biçimli mürekkep vuruşu verilerini içeren bir API isteği gönderir ve yanıtı alır.
Bu uygulama Java dilinde yazılmış olsa da, API çoğu programlama diliyle uyumlu bir RESTful web hizmetidir.
Normalde API'yi dijital mürekkep oluşturma uygulamasından çağırırsınız. Bu hızlı başlangıç, bir JSON dosyasından aşağıdaki el yazısı örneği için mürekkep vuruşu verileri gönderir.
Bu hızlı başlangıcın kaynak kodu GitHub'da bulunabilir.
Önkoşullar
Java™ Development Kit(JDK) 7 veya üzeri.
Bu kitaplıkları Maven Deposundan içeri aktarın
Bu hızlı başlangıç için örnek mürekkep vuruşu verileri GitHub'da bulunabilir.
Mürekkep Tanıma kaynağı oluşturma
Not
1 Temmuz 2019'da oluşturulan kaynakların uç noktaları aşağıda gösterilen özel alt etki alanı biçimini kullanır. Daha fazla bilgi ve bölgesel uç noktaların tam listesi için bkz. Bilişsel Hizmetler için özel alt etki alanı adları.
Azure Bilişsel Hizmetler, abone olduğunuz Azure kaynaklarıyla temsil edilir. Azure portal kullanarak Mürekkep Tanıma için bir kaynak oluşturun.
Kaynak oluşturduktan sonra, Azure portal kaynağınızı açıp Hızlı başlangıç'a tıklayarak uç noktanızı ve anahtarınızı alın.
İki ortam değişkeni oluşturun:
INK_RECOGNITION_SUBSCRIPTION_KEY
- İsteklerinizin kimliğini doğrulamak için abonelik anahtarı.INK_RECOGNITION_ENDPOINT
- Kaynağınızın uç noktası. Şu şekilde görünür:
https://<your-custom-subdomain>.api.cognitive.microsoft.com
Yeni uygulama oluşturma
Sık kullandığınız IDE ortamında veya düzenleyicide yeni bir Java projesi oluşturun ve aşağıdaki kitaplıkları içeri aktarın.
import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.util.EntityUtils; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.HashMap; import java.util.Map;
Abonelik anahtarınız, uç noktanız ve JSON dosyanız için değişkenler oluşturun. Uç nokta daha sonra Mürekkep tanıma URI'sine eklenir.
// Add your Azure Ink Recognition subscription key to your environment variables. private static final String subscriptionKey = System.getenv("INK_RECOGNITION_SUBSCRIPTION_KEY"); // Add your Azure Ink Recognition endpoint to your environment variables. public static final String rootUrl = System.getenv("INK_RECOGNITION_ENDPOINT"); public static final String inkRecognitionUrl = "/inkrecognizer/v1.0-preview/recognize"; // Replace the dataPath string with a path to the JSON formatted ink stroke data file. private static final String dataPath = "PATH_TO_INK_STROKE_DATA";
İstek göndermek için işlev oluşturma
Yukarıda oluşturulan değişkenleri alan adlı
sendRequest()
yeni bir işlev oluşturun. Ardından aşağıdaki adımları gerçekleştirin.API'ye istek gönderebilen bir
CloseableHttpClient
nesne oluşturun. Uç noktanızı ve Mürekkep Tanıma URL'sini birleştirerek isteği birHttpPut
istek nesnesine gönderin.üst bilgisini olarak ayarlamak
Content-Type
ve abonelik anahtarınızı üst bilgisineapplication/json
eklemek için isteğinsetHeader()
Ocp-Apim-Subscription-Key
işlevini kullanın.Gönderilecek veriler için isteğin
setEntity()
işlevini kullanın.İsteği göndermek ve bir
CloseableHttpResponse
nesneye kaydetmek için istemcininexecute()
işlevini kullanın.Yanıt içeriğini depolamak için bir
HttpEntity
nesne oluşturun. ilegetEntity()
içeriği alın. Yanıt boş değilse döndür.static String sendRequest(String endpoint, String apiAddress, String subscriptionKey, String requestData) { try (CloseableHttpClient client = HttpClients.createDefault()) { HttpPut request = new HttpPut(endpoint + apiAddress); // Request headers. request.setHeader("Content-Type", "application/json"); request.setHeader("Ocp-Apim-Subscription-Key", subscriptionKey); request.setEntity(new StringEntity(requestData)); try (CloseableHttpResponse response = client.execute(request)) { HttpEntity respEntity = response.getEntity(); if (respEntity != null) { return EntityUtils.toString(respEntity, "utf-8"); } } catch (Exception respEx) { respEx.printStackTrace(); } } catch (IOException ex) { System.err.println("Exception on Anomaly Detector: " + ex.getMessage()); ex.printStackTrace(); } return null; }
Mürekkep tanıma isteği gönderme
Mürekkep vuruşu verilerinizi tanımak için adlı recognizeInk()
bir yöntem oluşturun. sendRequest()
Uç nokta, url, abonelik anahtarı ve json verilerinizle yukarıda oluşturulan yöntemini çağırın. Sonucu alın ve konsola yazdırın.
static void recognizeInk(String requestData) {
System.out.println("Sending an Ink recognition request.");
String result = sendRequest(rootUrl, inkRecognitionUrl, subscriptionKey, requestData);
// Pretty-print the JSON result
try {
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> response = objectMapper.readValue(result, HashMap.class);
System.out.println(objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(response));
} catch (JsonParseException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Dijital mürekkep verilerinizi yükleme ve isteği gönderme
Uygulamanızın ana yönteminde, isteklere eklenecek verileri içeren JSON dosyasında okuyun.
Yukarıda oluşturulan mürekkep tanıma işlevini çağırın.
public static void main(String[] args) throws Exception { String requestData = new String(Files.readAllBytes(Paths.get(dataPath)), "utf-8"); recognizeInk(requestData); }
Uygulamayı çalıştırma ve yanıtı görüntüleme
Uygulamayı çalıştırın. Başarılı bir yanıt JSON biçiminde döndürülür. JSON yanıtını GitHub'da da bulabilirsiniz.
Sonraki adımlar
Mürekkep Tanıma API'sinin dijital mürekkep oluşturma uygulamasında nasıl çalıştığını görmek için GitHub'da aşağıdaki örnek uygulamalara göz atın: