Kapsayıcı: Metni Çevir
Metni çevirin.
İstek URL’si
Şuraya bir POST
isteği gönderin:
POST http://localhost:{port}/translate?api-version=3.0&&from={from}&to={to}
Örnek istek
curl -x POST "https:localhost:5000/translate?api-version=3.0&from=en&to=es" -H "Content-Type: application/json" -d "[{
'Text': 'I would really like to drive your car.'}]"
Örnek yanıt
[
{
"translations": [
{
"text": "Realmente me gustaría conducir su coche.",
"to": "es"
}
]
}
]
İstek parametreleri
Sorgu dizesinde geçirilen istek parametreleri şunlardır:
Gerekli parametreler
Sorgu parametresi | Açıklama | Koşul |
---|---|---|
api-sürümü | İstemci tarafından istenen API sürümü. Değer olmalıdır 3.0 . |
Gerekli parametre |
kimden | Giriş metninin dilini belirtir. | Gerekli parametre |
kullanıcısı | Çıkış metninin dilini belirtir. Örneğin, Almancaya çevirmek için kullanın to=de .Sorgu dizesinde parametresi yinelenerek aynı anda birden çok dile çevrilebilir. Örneğin, Almanca ve İtalyanca'ya çevirmek için kullanın to=de&to=it . |
Gerekli parametre |
- Hizmeti desteklenen kapsam dilleri için
translation
sorgulayabilirsiniz. - Ayrıca bkz. Çeviri için dil desteği.
İsteğe bağlı parametreler
Sorgu parametresi | Açıklama |
---|---|
textType | İsteğe bağlı parametre. Çevrilen metnin düz metin mi yoksa HTML metni mi olduğunu tanımlar. Tüm HTML'ler iyi biçimlendirilmiş, eksiksiz bir öğe olmalıdır. Olası değerler şunlardır: plain (varsayılan) veya html . |
includeSentenceLength | İsteğe bağlı parametre. Giriş metni ve çevrilmiş metin için tümce sınırlarının eklenip eklenmeyeceğini belirtir. Olası değerler şunlardır: true veya false (varsayılan). |
İstek üst bilgileri
Üst Bilgiler | Açıklama | Koşul |
---|---|---|
Kimlik doğrulama üst bilgileri | Kimlik doğrulaması için kullanılabilir seçeneklere bakın. | Gerekli istek üst bilgisi |
İçerik Türü | Yükün içerik türünü belirtir. Kabul edilen değer: application/json; charset=UTF-8 . |
Gerekli istek üst bilgisi |
İçerik Uzunluğu | İstek gövdesinin uzunluğu. | Optional |
X-ClientTraceId | İsteği benzersiz olarak tanımlamak için istemci tarafından oluşturulan GUID. adlı ClientTraceId bir sorgu parametresi kullanarak izleme kimliğini sorgu dizesine eklerseniz bu üst bilgiyi atlayabilirsiniz. |
Optional |
Request body
İsteğin gövdesi bir JSON dizisidir. Her dizi öğesi, çevrilecek dizeyi temsil eden adlı Text
dize özelliğine sahip bir JSON nesnesidir.
[
{"Text":"I would really like to drive your car around the block a few times."}
]
Aşağıdaki sınırlamalar geçerlidir:
- Dizide en fazla 100 öğe olabilir.
- İstekte yer alan metnin tamamı boşluklar da dahil olmak üzere 50.000 karakteri aşamaz.
Yanıt gövdesi
Başarılı bir yanıt, giriş dizisindeki her dize için bir sonuç içeren bir JSON dizisidir. Sonuç nesnesi aşağıdaki özellikleri içerir:
translations
: Çeviri sonuçları dizisi. Dizinin boyutu, sorgu parametresi aracılığıyla belirtilen hedef dillerin sayısıylato
eşleşir. Dizideki her öğe şunları içerir:to
: Hedef dilin dil kodunu temsil eden bir dize.text
: Çevrilmiş metni veren bir dize.sentLen
: Giriş ve çıkış metinlerinde cümle sınırları döndüren bir nesne.srcSentLen
: Giriş metnindeki cümlelerin uzunluklarını temsil eden bir tamsayı dizisi. Dizinin uzunluğu tümce sayısıdır ve değerler her cümlenin uzunluğudur.transSentLen
: Çevrilen metindeki cümlelerin uzunluklarını temsil eden bir tamsayı dizisi. Dizinin uzunluğu tümce sayısıdır ve değerler her cümlenin uzunluğudur.Tümce sınırları yalnızca istek parametresi
includeSentenceLength
olduğundatrue
eklenir.sourceText
: Adlıtext
tek dize özelliğine sahip olan ve giriş metnini kaynak dilin varsayılan betiğinde veren nesne.sourceText
özelliği yalnızca giriş, dilin normal betiği olmayan bir betikte ifade edildiğinde bulunur. Örneğin, giriş Latin betiğinde Arapça yazılmışsa,sourceText.text
Arap betiğine dönüştürülen Aynı Arapça metin olacaktır.
Yanıt üst bilgileri
Üst Bilgiler | Açıklama |
---|---|
X-RequestId | hizmet tarafından isteği tanımlamak için oluşturulan ve sorun giderme amacıyla kullanılan değer. |
X-MT Sistemi | Çeviri için istenen her 'to' dili için çeviri için kullanılan sistem türünü belirtir. Değer, virgülle ayrılmış bir dize listesidir. Her dize bir tür gösterir: ▪ Özel - İstek özel bir sistem içerir ve çeviri sırasında en az bir özel sistem kullanılmıştır. ▪ Ekip - Diğer tüm istekler |
Yanıt durum kodları
Hata oluşursa, istek bir JSON hata yanıtı döndürür. Hata kodu, hatayı daha fazla kategorilere ayırmak için 3 basamaklı HTTP durum kodunu ve ardından 3 basamaklı bir sayıyı birleştiren 6 basamaklı bir sayıdır. Yaygın hata kodları v3 Çevirmen başvuru sayfasında bulunabilir.
Kod örnekleri: metni çevirme
Not
- Her örnek, komutuyla
docker run
belirttiğiniz üzerindelocalhost
çalışır. - Kapsayıcınız çalışırken kapsayıcının
localhost
kendisini gösterir. - kullanmak
localhost:5000
zorunda değilsiniz. Konak ortamınızda henüz kullanımda olmayan herhangi bir bağlantı noktasını kullanabilirsiniz.
Tek bir girişi çevirme
Bu örnekte, tek bir cümlenin İngilizceden Basitleştirilmiş Çinceye nasıl çevrildiği gösterilmektedir.
curl -X POST "http://localhost:{port}/translate?api-version=3.0&from=en&to=zh-Hans" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"
Yanıt gövdesi:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
}
]
Dizi translations
, girişteki tek metin parçasının çevirisini sağlayan bir öğe içerir.
Azure AI Translator uç noktasını sorgulama (metin)
Aşağıda, komutuyla belirttiğiniz localhost:5000 kullanan bir cURL HTTP isteği örneği verilmişti docker run
:
curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-HANS"
-H "Content-Type: application/json" -d "[{'Text':'Hello, what is your name?'}]"
Not
Kapsayıcı hazır olmadan önce cURL POST isteğini denerseniz Hizmet geçici olarak kullanılamıyor yanıtı alırsınız. Kapsayıcı hazır olana kadar bekleyin ve yeniden deneyin.
Swagger API'sini kullanarak metni çevirme
İngilizce ↔ Almanca
- Swagger sayfasına gidin:
http://localhost:5000/swagger/index.html
- GÖNDER/çevir'i seçin
- Deneyin'i seçin
- From parametresini olarak girin
en
- To parametresini şu şekilde girin:
de
- api-version parametresini olarak girin
3.0
- Metinlerin altında değerini aşağıdaki JSON ile değiştirin
string
[
{
"text": "hello, how are you"
}
]
Yürüt'e tıklayın, sonuçta elde edilen çeviriler Yanıt Gövdesi'nde çıkış olur. Aşağıdaki yanıtı görmeniz gerekir:
"translations": [
{
"text": "hallo, wie geht es dir",
"to": "de"
}
]
Python ile metin çevirme
İngilizce ↔ Fransızca
import requests, json
url = 'http://localhost:5000/translate?api-version=3.0&from=en&to=fr'
headers = { 'Content-Type': 'application/json' }
body = [{ 'text': 'Hello, how are you' }]
request = requests.post(url, headers=headers, json=body)
response = request.json()
print(json.dumps(
response,
sort_keys=True,
indent=4,
ensure_ascii=False,
separators=(',', ': ')))
C#/.NET konsol uygulamasıyla metni çevirme
İngilizce ↔ İspanyolca
Visual Studio'yu başlatın ve yeni bir konsol uygulaması oluşturun. *.csproj
Düğümü eklemek <LangVersion>7.1</LangVersion>
için dosyayı düzenleyin; C# 7.1'i belirtir. Newtoonsoft.Json NuGet paketi sürüm 11.0.2'yi ekleyin.
içindeki Program.cs
tüm mevcut kodu aşağıdaki betikle değiştirin:
using Newtonsoft.Json;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace TranslateContainer
{
class Program
{
const string ApiHostEndpoint = "http://localhost:5000";
const string TranslateApi = "/translate?api-version=3.0&from=en&to=es";
static async Task Main(string[] args)
{
var textToTranslate = "Sunny day in Seattle";
var result = await TranslateTextAsync(textToTranslate);
Console.WriteLine(result);
Console.ReadLine();
}
static async Task<string> TranslateTextAsync(string textToTranslate)
{
var body = new object[] { new { Text = textToTranslate } };
var requestBody = JsonConvert.SerializeObject(body);
var client = new HttpClient();
using (var request =
new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri($"{ApiHostEndpoint}{TranslateApi}"),
Content = new StringContent(requestBody, Encoding.UTF8, "application/json")
})
{
// Send the request and await a response.
var response = await client.SendAsync(request);
return await response.Content.ReadAsStringAsync();
}
}
}
}
Birden çok dizeyi çevirme
Aynı anda birden çok dizeyi çevirmek, istek gövdesinde bir dizi dize belirtmekle ilgili bir işlemdir.
curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-Hans" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}, {'Text':'I am fine, thank you.'}]"
Yanıt, tüm metin parçalarının istektekiyle aynı sırada çevirisini içerir. Yanıt gövdesi:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
},
{
"translations":[
{"text":"我很好,谢谢你。","to":"zh-Hans"}
]
}
]
Birden çok dile çevirme
Bu örnekte aynı girişin tek bir istekte birkaç dile nasıl çevrildiği gösterilmektedir.
curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-Hans&to=de" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'Hello, what is your name?'}]"
Yanıt gövdesi:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"},
{"text":"Hallo, was ist dein Name?","to":"de"}
]
}
]
İşaretle içeriği çevirme ve çevrilmiş içeriği belirtme
HTML sayfasından içerik veya XML belgesinden içerik gibi işaretlemeler içeren içerikleri çevirmek yaygın bir durumdır. İçerikleri etiketlerle çevirirken sorgu parametresini textType=html
ekleyin. Ayrıca, bazı durumlarda belirli içerikleri çevirinin dışında tutmak yararlı olabilir. özniteliğini class=notranslate
kullanarak özgün dilinde kalması gereken içeriği belirtebilirsiniz. Aşağıdaki örnekte, ikinci öğedeki içerik çevrilirken, ilk div
öğenin içindeki div
içerik çevrilmiyor.
<div class="notranslate">This will not be translated.</div>
<div>This will be translated. </div>
Burada örnek bir istek gösterilmektedir.
curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=zh-Hans&textType=html" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'<div class=\"notranslate\">This will not be translated.</div><div>This will be translated.</div>'}]"
Yanıt:
[
{
"translations":[
{"text":"<div class=\"notranslate\">This will not be translated.</div><div>这将被翻译。</div>","to":"zh-Hans"}
]
}
]
Dinamik sözlükle çevir
Bir sözcük veya ifadeye uygulamak istediğiniz çeviriyi zaten biliyorsanız, istek içinde işaretleme olarak sağlayabilirsiniz. Dinamik sözlük yalnızca kişisel adlar ve ürün adları gibi uygun adlar için güvenlidir.
Sağlamak için işaretleme aşağıdaki söz dizimini kullanır.
<mstrans:dictionary translation="translation of phrase">phrase</mstrans:dictionary>
Örneğin, "Wordomatic sözcüğü bir sözlük girdisidir" İngilizce cümlesini düşünün. Çeviride wordomatic sözcüğünü korumak için isteği gönderin:
curl -X POST "http://localhost:5000/translate?api-version=3.0&from=en&to=de" -H "Ocp-Apim-Subscription-Key: <client-secret>" -H "Content-Type: application/json; charset=UTF-8" -d "[{'Text':'The word <mstrans:dictionary translation=\"wordomatic\">word or phrase</mstrans:dictionary> is a dictionary entry.'}]"
Sonuç:
[
{
"translations":[
{"text":"Das Wort \"wordomatic\" ist ein Wörterbucheintrag.","to":"de"}
]
}
]
Bu özellik veya ile textType=text
textType=html
aynı şekilde çalışır. Bu özellik tedbirli kullanılmalıdır. Çeviriyi özelleştirmenin uygun ve çok daha iyi bir yolu Özel Çeviri Aracı'nı kullanmaktır. Özel Çeviri bağlam ve istatistiksel olasılıkları tam olarak kullanır. çalışmanızı veya tümceciğinizi bağlamda gösteren eğitim verileri oluşturduysanız daha iyi sonuçlar elde edersiniz. Özel Çeviri Aracı hakkında daha fazla bilgi edinin.
İstek limitleri
Her çeviri isteği, çevirdiğiniz tüm hedef dillerde 50.000 karakterle sınırlıdır. Örneğin, üç farklı dile çevrilecek 3.000 karakterlik bir çevirme isteği göndermek, istek sınırını karşılayan 3000x3 = 9.000 karakterlik bir istek boyutuna neden olur. İstek sayısına göre değil karakter başına ücretlendirilirsiniz. Daha kısa istekler göndermenizi öneririz.
Aşağıdaki tabloda Translator çevirisi işlemi için dizi öğesi ve karakter sınırları listelemektedir.
İşlem | Dizi öğesinin en büyük boyutu | En fazla dizi öğesi sayısı | En büyük istek boyutu (karakterler) |
---|---|---|---|
Çevir | Kategori 10,000 | 100 | 50,000 |
Docker compose kullanma: Destekleyici kapsayıcılarla translator
Docker compose, genellikle adlı compose.yaml
tek bir YAML dosyası kullanarak çok kapsayıcılı uygulamaları yapılandırmanıza olanak tanıyan bir araçtır. docker compose up
Kapsayıcı uygulamanızı başlatmak için komutunu ve docker compose down
kapsayıcılarınızı durdurup kaldırmak için komutunu kullanın.
Docker Desktop CLI'yı yüklediyseniz Docker oluşturma ve önkoşullarını içerir. Docker Desktop'larınız yoksa Docker Compose'u Yüklemeye genel bakış bölümüne bakın.
Aşağıdaki tabloda, metin ve belge çevirisi işlemleriniz için gerekli destekleyici kapsayıcılar listelanmaktadır. Translator kapsayıcısı, Azure hesabınızdaki Azure AI Translator kaynağı aracılığıyla faturalama bilgilerini Azure'a gönderir.
İşlem | İstek sorgusu | Document type | Destekleyici kapsayıcılar |
---|---|---|---|
•Metin çevirisi • Belge Çevirisi |
from Belirtilen. |
Office belgeleri | Hiçbiri |
•Metin çevirisi • Belge Çevirisi |
from belirtilmemiş. Kaynak dili belirlemek için otomatik dil algılama gerektirir. |
Office belgeleri | ✔️ Metin analizi:dil kapsayıcısı |
•Metin çevirisi • Belge Çevirisi |
from Belirtilen. |
Taranan PDF belgeleri | ✔️ Görüntü İşleme:kapsayıcıyı okuma |
•Metin çevirisi • Belge Çevirisi |
from kaynak dili belirlemek için otomatik dil algılama gerektiren belirtilmedi. |
Taranan PDF belgeleri | ✔️ Metin analizi:dil kapsayıcısı ✔️ Görüntü İşleme:kapsayıcıyı okuma |
Kapsayıcı görüntüleri ve etiketleri
Azure AI hizmetleri kapsayıcı görüntüleri Microsoft Yapıt Kayıt Defteri kataloğunda bulunabilir. Aşağıdaki tabloda, metin ve belge çevirisi için tam görüntü konumu listelenir:
Kapsayıcı | Görüntü konumu | Notlar |
---|---|---|
Translator: Metin çevirisi | mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest |
MCR'de Azure AI hizmetlerinin Metin Çevirisi sürüm etiketlerinin tam listesini görüntüleyebilirsiniz. |
Translator: Belge çevirisi | TODO | TODO |
Metin analizi: dil | mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest |
MCR'de Azure AI hizmetlerinin tam listesini Metin Analizi Dil sürümü etiketlerini görüntüleyebilirsiniz. |
Görüntü İşleme: okuma | mcr.microsoft.com/azure-cognitive-services/vision/read:latest |
Azure AI hizmetlerinin tam listesini görüntüleyebilir Görüntü İşleme MCR'de sürüm etiketlerini okuyunOCR . |
Uygulamanızı oluşturma
Tercih ettiğiniz düzenleyiciyi veya IDE'yi kullanarak uygulamanız için veya seçtiğiniz bir adla
container-environment
yeni bir dizin oluşturun.adlı
compose.yaml
yeni bir YAML dosyası oluşturun. Dosya içincompose
hem .yml hem de .yaml uzantıları kullanılabilir.Aşağıdaki YAML kod örneğini kopyalayıp dosyanıza
compose.yaml
yapıştırın. ve{TRANSLATOR_ENDPOINT_URI}
değerini Azure portal Translator örneğinizdeki anahtar ve uç nokta değerleriyle değiştirin{TRANSLATOR_KEY}
. kullandığınızdandocument translation endpoint
emin olun.Üst düzey ad (
azure-ai-translator
,azure-ai-language
,azure-ai-read
) belirttiğiniz parametredir.container_name
, çalıştırıldığında kapsayıcı için bir ad oluşturmak yerinedocker compose
bir ad ayarlayan isteğe bağlı bir parametredir.services: azure-ai-translator: container_name: azure-ai-translator image: mcr.microsoft.com/product/azure-cognitive-services/translator/text-translation:latest environment: - EULA=accept - billing={TRANSLATOR_ENDPOINT_URI} - apiKey={TRANSLATOR_KEY} - AzureAiLanguageHost=http://azure-ai-language:5000 - AzureAiReadHost=http://azure-ai-read:5000 ports: - "5000:5000" azure-ai-language: container_name: azure-ai-language image: mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest environment: - EULA=accept - billing={TRANSLATOR_ENDPOINT_URI} - apiKey={TRANSLATOR_KEY} azure-ai-read: container_name: azure-ai-read image: mcr.microsoft.com/azure-cognitive-services/vision/read:latest environment: - EULA=accept - billing={TRANSLATOR_ENDPOINT_URI} - apiKey={TRANSLATOR_KEY}
Bir terminal açın, klasöre
container-environment
gidin ve kapsayıcıları aşağıdakidocker-compose
komutla başlatın:docker compose up
Kapsayıcıları durdurmak için aşağıdaki komutu kullanın:
docker compose down
İpucu
docker compose
Komut:docker compose pause
çalışan kapsayıcıları duraklatır.docker compose unpause {your-container-name}
duraklatılmış kapsayıcıları duraklatır.docker compose restart
tüm durdurulmuş ve çalışan kapsayıcıyı önceki tüm değişiklikleriyle yeniden başlatır. Yapılandırmanızdacompose.yaml
değişiklik yaparsanız, bu değişiklikler komutuyladocker compose restart
güncelleştirilmez. Dosyadakidocker compose up
güncelleştirmeleri ve değişikliklericompose.yaml
yansıtmak için komutunu kullanmanız gerekir.docker compose ps -a
durdurulan kapsayıcılar da dahil olmak üzere tüm kapsayıcıları listeler.docker compose exec
çalışan bir kapsayıcıda ortam değişkenlerini ayırmak veya ayarlamak için komutları yürütmenize olanak tanır.
Daha fazla bilgi için bkz. docker CLI başvurusu.