Tároló: Szöveg fordítása
Szöveg fordítása.
URL-cím kérése
POST
kérés küldése ide:
POST http://localhost:{port}/translate?api-version=3.0&&from={from}&to={to}
Példakérés
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.'}]"
Példa válasz
[
{
"translations": [
{
"text": "Realmente me gustaría conducir su coche.",
"to": "es"
}
]
}
]
Kérelemparaméterek
A lekérdezési sztringen átadott kérelemparaméterek a következők:
Kötelező paraméterek
Lekérdezési paraméter | Leírás | Feltétel |
---|---|---|
api-verzió | Az ügyfél által kért API verziója. Az értéknek meg kell lennie 3.0 . |
Kötelező paraméter |
from | A bemeneti szöveg nyelvét adja meg. | Kötelező paraméter |
felhasználóként a(z) | A kimeneti szöveg nyelvét adja meg. Használhatja például to=de a német nyelvre való fordítást.A lekérdezési sztring paraméterének megismétlésével egyszerre több nyelvre is lefordítható. Például fordíthat to=de&to=it németre és olaszra. |
Kötelező paraméter |
- Lekérdezheti a szolgáltatást a hatókör által támogatott nyelvekhez
translation
. - Lásd még: Nyelvi támogatás az átíráshoz.
Választható paraméterek
Lekérdezési paraméter | Leírás |
---|---|
textType | Nem kötelező paraméter. Meghatározza, hogy a lefordított szöveg egyszerű vagy HTML-szöveg-e. Minden HTML-nek jól formázott, teljes elemnek kell lennie. A lehetséges értékek a következők: plain (alapértelmezett) vagy html . |
includeSentenceLength | Nem kötelező paraméter. Megadja, hogy a bemeneti szöveg és a lefordított szöveg mondathatárai szerepeljenek-e. A lehetséges értékek a következők: true vagy false (alapértelmezett). |
Kérésfejlécek
Fejlécek | Leírás | Feltétel |
---|---|---|
Hitelesítési fejlécek | Tekintse mega hitelesítéshez elérhető lehetőségeket. | Szükséges kérelemfejléc |
Content-Type | Megadja a hasznos adat tartalomtípusát. Az elfogadott érték a . application/json; charset=UTF-8 |
Szükséges kérelemfejléc |
Tartalomhossz | A kérelem törzsének hossza. | Választható |
X-ClientTraceId | Ügyfél által létrehozott GUID a kérés egyedi azonosításához. Ezt a fejlécet kihagyhatja, ha a nyomkövetési azonosítót a lekérdezési sztringben egy névvel ellátott lekérdezési paraméterrel adja meg ClientTraceId . |
Választható |
Kérés törzse
A kérelem törzse egy JSON-tömb. Minden tömbelem egy JSON-objektum, amelynek neve Text
egy sztringtulajdonság, amely a lefordítandó sztringet jelöli.
[
{"Text":"I would really like to drive your car around the block a few times."}
]
A következő korlátozások érvényesek:
- A tömb legfeljebb 100 elemet tartalmazhat.
- A kérelemben szereplő teljes szöveg nem haladhatja meg a 10 000 karaktert, szóközökkel együtt.
Választörzs
A sikeres válasz egy JSON-tömb, amely a bemeneti tömb minden sztringjéhez egy eredményt ad. Az eredményobjektumok a következő tulajdonságokat tartalmazzák:
translations
: Fordítási eredmények tömbje. A tömb mérete megegyezik a lekérdezési paraméterben megadott célnyelvek számávalto
. A tömb minden eleme a következőket tartalmazza:to
: A célnyelv nyelvi kódját képviselő sztring.text
: A lefordított szöveget tartalmazó sztring.sentLen
: Egy objektum, amely mondathatárokat ad vissza a bemeneti és kimeneti szövegekben.srcSentLen
: Egy egész számtömb, amely a bemeneti szövegben lévő mondatok hosszát jelöli. A tömb hossza a mondatok száma, az értékek pedig az egyes mondatok hossza.transSentLen
: Egy egész számtömb, amely a lefordított szöveg mondatainak hosszát jelöli. A tömb hossza a mondatok száma, az értékek pedig az egyes mondatok hossza.A mondathatárok csak akkor lesznek belefoglalva, ha a kérelem paramétere
includeSentenceLength
.true
sourceText
: Egy objektum, amelynek egyetlen sztringtulajdonsága van elnevezvetext
, amely a forrásnyelv alapértelmezett szkriptjében adja meg a bemeneti szöveget.sourceText
tulajdonság csak akkor jelenik meg, ha a bemenet olyan szkriptben van kifejezve, amely nem a nyelv szokásos szkriptje. Ha például a bemenet latin betűs arab, akkorsourceText.text
ugyanaz az arab szöveg lesz, amelyet arab szkriptté alakítottak át.
Válaszfejlécek
Fejlécek | Leírás |
---|---|
X-RequestId | A szolgáltatás által a kérés azonosítására és hibaelhárítási célokra használt érték. |
X-MT-System | Meghatározza a fordításhoz használt rendszertípust a fordításhoz kért minden egyes "to" nyelvhez. Az érték a sztringek vesszővel tagolt listája. Minden sztring egy típust jelez: ▪ Egyéni – A kérelem egyéni rendszert tartalmaz, és a fordítás során legalább egy egyéni rendszert használtak. ▪ Csapat – Minden más kérés |
Válaszállapot-kódok
Hiba esetén a kérés JSON-hibaválaszt ad vissza. A hibakód egy 6 jegyű szám, amely egyesíti a 3 jegyű HTTP-állapotkódot, majd egy háromjegyű számot a hiba további kategorizálásához. A gyakori hibakódokért tekintse meg a 3-as verziójú Translator referenciaoldalát.
Kódminták: szöveg fordítása
Feljegyzés
- Minden minta a
localhost
paranccsal megadottondocker run
fut. - Amíg a tároló fut,
localhost
maga a tárolóra mutat. - Nem kell használnia
localhost:5000
. Bármilyen portot használhat, amely még nincs használatban a gazdagépkörnyezetben.
Egyetlen bemenet lefordítása
Ez a példa bemutatja, hogyan fordíthat le egyetlen mondatot angolról egyszerűsített kínaira.
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?'}]"
A válasz törzse a következő:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
}
]
A translations
tömb egy elemet tartalmaz, amely a bemenetben lévő egyetlen szöveg fordítását biztosítja.
Azure AI Translator-végpont lekérdezése (szöveg)
Íme egy példa a cURL HTTP-kérésre a localhost:5000 parancs használatával, amelyet a docker run
következő paranccsal adott meg:
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?'}]"
Feljegyzés
Ha megkísérli a cURL POST kérést, mielőtt a tároló készen áll, a szolgáltatás átmenetileg nem érhető el válaszként. Várjon, amíg a tároló készen áll, majd próbálkozzon újra.
Szöveg fordítása a Swagger API használatával
Angol német ↔
- Lépjen a Swagger lapra:
http://localhost:5000/swagger/index.html
- Válassza a POST /translate lehetőséget
- Válassza ki a Kipróbálás lehetőséget
- Adja meg a From paramétert a következőként:
en
- Adja meg a To paramétert a következőként :
de
- Adja meg az api-version paramétert a következőként:
3.0
- Szöveg alatt cserélje le
string
a következő JSON-t
[
{
"text": "hello, how are you"
}
]
Válassza a Végrehajtás lehetőséget, az eredményként kapott fordítások a válasz törzsében jelennek meg. A következő választ kell látnia:
"translations": [
{
"text": "hallo, wie geht es dir",
"to": "de"
}
]
Szöveg fordítása Pythonnal
Angol francia ↔
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=(',', ': ')))
Szöveg fordítása a C#/.NET konzolalkalmazással
Angol spanyol ↔
Indítsa el a Visual Studiót, és hozzon létre egy új konzolalkalmazást. Szerkessze a *.csproj
fájlt a csomópont hozzáadásához – megadja a <LangVersion>7.1</LangVersion>
C# 7.1-et. Adja hozzá a Newtoonsoft.Json NuGet csomag 11.0.2-es verzióját.
Cserélje le az Program.cs
összes meglévő kódot a következő szkriptre:
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();
}
}
}
}
Több sztring fordítása
Több sztring egyszerre történő fordítása egyszerűen egy sztringtömb megadásának kérdése a kérelem törzsében.
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.'}]"
A válasz az összes szövegrész fordítását pontosan a kérelemben megadott sorrendben tartalmazza. A válasz törzse a következő:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"}
]
},
{
"translations":[
{"text":"我很好,谢谢你。","to":"zh-Hans"}
]
}
]
Fordítás több nyelvre
Ez a példa bemutatja, hogyan fordíthatja le ugyanazt a bemenetet több nyelvre egy kérelemben.
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?'}]"
A válasz törzse a következő:
[
{
"translations":[
{"text":"你好, 你叫什么名字?","to":"zh-Hans"},
{"text":"Hallo, was ist dein Name?","to":"de"}
]
}
]
Tartalom fordítása korrektúrával és lefordított tartalom megadása
Gyakori, hogy korrektúrát tartalmazó tartalmakat fordít le, például HTML-oldalról származó tartalmat vagy XML-dokumentumból származó tartalmat. Adja meg a lekérdezési paramétert textType=html
a címkékkel ellátott tartalom fordításakor. Emellett néha hasznos lehet bizonyos tartalmakat kizárni a fordításból. Az attribútummal class=notranslate
megadhatja az eredeti nyelven maradó tartalmat. Az alábbi példában az első div
elem tartalma nem lesz lefordítva, míg a második div
elem tartalma lesz lefordítva.
<div class="notranslate">This will not be translated.</div>
<div>This will be translated. </div>
Az alábbiakban egy mintakérést mutatunk be.
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>'}]"
A válasz a következő:
[
{
"translations":[
{"text":"<div class=\"notranslate\">This will not be translated.</div><div>这将被翻译。</div>","to":"zh-Hans"}
]
}
]
Fordítás dinamikus szótárral
Ha már tudja, hogy milyen fordítást szeretne alkalmazni egy szó vagy kifejezés esetében, megadhatja korrektúraként a kérésben. A dinamikus szótár csak a megfelelő főnevek, például a személyes nevek és a terméknevek számára biztonságos.
Az ellátandó korrektúra a következő szintaxist használja.
<mstrans:dictionary translation="translation of phrase">phrase</mstrans:dictionary>
Vegyük például a következő angol mondatot: "A wordomatic szó szótári bejegyzés". A wordomatic szó fordításban való megőrzéséhez küldje el a kérést:
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.'}]"
Az eredmény a következő:
[
{
"translations":[
{"text":"Das Wort \"wordomatic\" ist ein Wörterbucheintrag.","to":"de"}
]
}
]
Ez a funkció ugyanúgy működik, mint a .textType=text
textType=html
A funkciót takarékosan kell használni. A fordítás testreszabásának megfelelő és sokkal jobb módja a Custom Translator használata. A Custom Translator teljesen körűen használja a kontextust és a statisztikai valószínűségeket. Ha olyan betanítási adatokat hozott létre, amelyek kontextusban jelenítik meg a munkáját vagy a kifejezést, jobb eredményeket érhet el. További információ a Custom Translatorről.
Kérelmekre vonatkozó korlátok
Minden fordítási kérelem legfeljebb 10 000 karakter hosszúságú lehet az összes lefordított célnyelven. Ha például 3000 karakterből álló fordítási kérelmet küld három különböző nyelvre, az 3000x3 = 9000 karakteres kérelemméretet eredményez, amely megfelel a kérelemkorlátnak. Karakterenként számítunk fel díjat, nem pedig a kérések száma alapján. Javasoljuk, hogy küldjön rövidebb kéréseket.
Az alábbi táblázat a Translator fordítási művelet tömbelemeit és karakterkorlátait sorolja fel.
Művelet | Tömbelem maximális mérete | Tömbelemek maximális száma | Kérelem maximális mérete (karakterek) |
---|---|---|---|
Lefordítani | 10,000. | 100 | 10,000. |
Docker Compose használata: Translator támogató tárolókkal
A Docker compose egy olyan eszköz, amellyel többtárolós alkalmazásokat konfigurálhat egyetlen, jellemzően elnevezett compose.yaml
YAML-fájl használatával. docker compose up
A parancs használatával indítsa el a tárolóalkalmazást, a parancsot pedig docker compose down
a tárolók leállításához és eltávolításához.
Ha telepítette a Docker Desktop parancssori felületét, az tartalmazza a Docker-összeállítást és annak előfeltételeit. Ha nem rendelkezik Docker Desktoppal, tekintse meg a Docker Compose telepítésének áttekintését.
Az alábbi táblázat a szöveg- és dokumentumfordítási műveletekhez szükséges támogató tárolókat sorolja fel. A Translator-tároló számlázási adatokat küld az Azure-nak az Azure-fiók Azure AI Translator-erőforrásán keresztül.
Művelet | Lekérdezés kérése | Dokumentumtípusok | Támogató tárolók |
---|---|---|---|
• Szövegfordítás • Dokumentumfordítás |
from Megadott. |
Office-dokumentumok | Egyik sem |
• Szövegfordítás • Dokumentumfordítás |
from nincs megadva. A forrásnyelv meghatározásához automatikus nyelvfelismerés szükséges. |
Office-dokumentumok | Szövegelemzés:nyelvi tároló ✔️ |
• Szövegfordítás • Dokumentumfordítás |
from Megadott. |
Beolvasott PDF-dokumentumok | Vision:read container ✔️ |
• Szövegfordítás • Dokumentumfordítás |
from nincs megadva, amely automatikus nyelvfelismerést igényel a forrásnyelv meghatározásához. |
Beolvasott PDF-dokumentumok | Szövegelemzés:nyelvi tároló ✔️ Vision:read container ✔️ |
Tárolórendszerképek és címkék
Az Azure AI-szolgáltatások tárolórendszerképe a Microsoft Eszközjegyzék katalógusban található. Az alábbi táblázat a szöveg- és dokumentumfordítás teljes képhelyét sorolja fel:
Tároló | Kép helye | Jegyzetek |
---|---|---|
Fordító: Szövegfordítás | mcr.microsoft.com/azure-cognitive-services/translator/text-translation:latest |
Megtekintheti az Azure AI-szolgáltatások szövegfordítási verziócímkék teljes listáját az MCR-en. |
Translator: Dokumentumfordítás | TODO | TODO |
Szövegelemzés: nyelv | mcr.microsoft.com/azure-cognitive-services/textanalytics/language:latest |
Az Azure AI-szolgáltatások Text Analytics Nyelvi verziócímkék teljes listáját megtekintheti az MCR-en. |
Látás: olvasás | mcr.microsoft.com/azure-cognitive-services/vision/read:latest |
Megtekintheti az Azure AI-szolgáltatások Computer Vision Read OCR verziócímkék teljes listáját az MCR-en. |
Az alkalmazás létrehozása
Az előnyben részesített szerkesztő vagy IDE használatával hozzon létre egy új könyvtárat az alkalmazáshoz,
container-environment
vagy hozzon létre egy tetszőleges nevet.Hozzon létre egy új YAML-fájlt .
compose.yaml
A fájlhoz mind a .yml, mind acompose
.yaml kiterjesztés használható.Másolja és illessze be a következő YAML-kódmintát a
compose.yaml
fájlba. Cserélje le és{TRANSLATOR_ENDPOINT_URI}
cserélje le{TRANSLATOR_KEY}
az Azure Portal Translator-példány kulcs- és végpontértékeit. Győződjön meg arról, hogy adocument translation endpoint
.A legfelső szintű név (
azure-ai-translator
,azure-ai-language
,azure-ai-read
) a megadott paraméter.Ez
container_name
egy nem kötelező paraméter, amely a tároló nevét állítja be a futtatáskor, ahelyett, hogy nevet adnedocker compose
.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}
Nyisson meg egy terminált, lépjen a
container-environment
mappára, és indítsa el a tárolókat a következődocker-compose
paranccsal:docker compose up
A tárolók leállításához használja a következő parancsot:
docker compose down
Tipp.
docker compose
Parancsok:docker compose pause
szünetelteti a tárolók futtatását.docker compose unpause {your-container-name}
feloldja a szüneteltetett tárolókat.docker compose restart
újraindítja az összes leállított és futó tárolót az összes korábbi módosításával együtt. Ha módosítja a konfigurációtcompose.yaml
, ezek a módosítások nem frissülnek adocker compose restart
paranccsal. A fájl frissítéseinek és változásainak megjelenítéséhez adocker compose up
parancsot kell használniacompose.yaml
.docker compose ps -a
listázza az összes tárolót, beleértve a leállított tárolókat is.docker compose exec
lehetővé teszi parancsok futtatását a környezeti változók leválasztásához vagy beállításához egy futó tárolóban.
További információ: Docker CLI-referencia.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: