A Text Analytics használata állapottárolókhoz
A tárolók lehetővé teszik a Text Analytics for Health API üzemeltetését a saját infrastruktúráján. Ha olyan biztonsági vagy adatszabályozási követelményekkel rendelkezik, amelyeket nem lehet teljesíteni a Text Analytics távolról történő meghívásával, akkor a tárolók jó választásnak bizonyulhatnak.
Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Előfeltételek
A Text Analytics állapottárolókhoz való használata előtt meg kell felelnie az alábbi előfeltételeknek. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
- A Docker telepítve van egy gazdagépen. A Dockert úgy kell konfigurálni, hogy a tárolók kapcsolódhassanak és számlázási adatokat küldjenek az Azure-ba.
- Windows rendszeren a Dockert úgy is konfigurálnia kell, hogy támogassa a Linux-tárolókat.
- Ismernie kell a Docker alapfogalmait.
- Az ingyenes (F0) vagy standard (S) tarifacsomaggal rendelkező nyelvi erőforrás.
A szükséges paraméterek összegyűjtése
Három elsődleges paraméter szükséges az összes Azure AI-tárolóhoz. A Microsoft szoftverlicenc-feltételeinek elfogadási értékkel kell rendelkeznie. Végponti URI- és API-kulcsra is szükség van.
Végpont URI-ja
Az {ENDPOINT_URI}
érték a megfelelő Azure AI-szolgáltatási erőforrás Azure Portal áttekintési oldalán érhető el. Lépjen az Áttekintés lapra, mutasson a végpont fölé, és megjelenik egy Másolás vágólapra ikon. Szükség esetén másolja és használja a végpontot.
Kulcsok
Az {API_KEY}
érték a tároló elindítására szolgál, és elérhető a megfelelő Azure AI-szolgáltatási erőforrás Kulcsok lapján. Lépjen a Kulcsok lapra, és válassza a Vágólapra másolás ikont.
Fontos
Ezek az előfizetési kulcsok az Azure AI-szolgáltatások API-ját használják. Ne ossza meg a kulcsait. Biztonságosan tárolja őket. Használja például az Azure Key Vaultot. Azt is javasoljuk, hogy ezeket a kulcsokat rendszeresen újragenerálja. API-hívás létrehozásához csak egy kulcs szükséges. Az első kulcs újragenerálása után a második kulcsot használhatja a szolgáltatáshoz való folyamatos hozzáféréshez.
A gazdagépre vonatkozó követelmények és javaslatok
A gazdagép egy x64-alapú számítógép, amely a Docker-tárolót futtatja. Ez lehet egy számítógép a helyszínen vagy egy Docker-üzemeltetési szolgáltatás az Azure-ban, például:
- Azure Kubernetes Service.
- Azure Container Instances.
- Az Azure Stackben üzembe helyezett Kubernetes-fürt. További információ: Kubernetes üzembe helyezése az Azure Stackben.
Az alábbi táblázat az állapottárolókhoz készült Text Analytics minimális és ajánlott specifikációit ismerteti. Minden processzormagnak legalább 2,6 gigahertzesnek (GHz) vagy gyorsabbnak kell lennie. Az engedélyezett másodpercenkénti tranzakciók (TPS) is fel vannak sorolva.
Minimális gazdagép-specifikációk | Ajánlott gazdagép-specifikációk | Minimális TPS | Maximális TPS | |
---|---|---|---|---|
1 dokumentum/kérelem | 4 magos, 12 GB-os memória | 6 magos, 12 GB-os memória | 15 | 30 |
10 dokumentum/kérelem | 6 magos, 16 GB-os memória | 8 magos, 20 GB-os memória | 15 | 30 |
A processzormag és a memória megfelel a --cpus
parancs részeként docker run
használt beállításoknak és --memory
beállításoknak.
A tároló lemezképének lekérése docker pull
Az állapottároló szövegelemzési rendszerképe a mcr.microsoft.com
tárolóregisztrációs adatbázis szindikátumán található. Az adattárban azure-cognitive-services/textanalytics/
található, és neve healthcare
. A teljes tárolórendszerkép neve a következő: mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare
A tároló legújabb verziójának használatához használhatja a címkét latest
. Az MCR-en a címkék teljes listája is megtalálható.
A parancs használatával töltse le ezt a docker pull
tárolórendszerképet a Microsoft nyilvános tárolóregisztrációs adatbázisából. A kiemelt címkék a Microsoft Container Registryben találhatók
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:<tag-name>
Tipp.
A docker images paranccsal listázhatja a letöltött tárolólemezképeket. Az alábbi parancs például az egyes letöltött tárolólemezképek azonosítóját, adattárát és címkéjét sorolja fel táblázatként formázva:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
A tároló futtatása a következővel: docker run
Ha a tároló a gazdaszámítógépen van, a docker-futtatási paranccsal futtassa a tárolókat. A tároló addig fut, amíg le nem állítja.
Fontos
- A következő szakaszok docker-parancsai a fordított perjelet használják,
\
vonal-folytatási karakterként. Cserélje le vagy távolítsa el ezt a gazda operációs rendszer követelményei alapján. - A
Eula
tároló futtatásához meg kell adni a ,Billing
ésApiKey
a beállításokat, ellenkező esetben a tároló nem indul el. További információ: Számlázás.- A felelős AI -nyugtának (RAI) is jelen
accept
kell lennie .
- A felelős AI -nyugtának (RAI) is jelen
- A hangulatelemzési és nyelvfelismerési tárolók az API 3-at használják, és általánosan elérhetők. A kulcskifejezés-kinyerési tároló az API 2-es verzióját használja, és előzetes verzióban érhető el.
Az állapottároló Text Analytics szolgáltatását többféleképpen is telepítheti és futtathatja.
- Az Azure Portal használatával hozzon létre egy nyelvi erőforrást, és használja a Dockert a tároló lekéréséhez.
- A tároló futtatásához használjon Egy Azure-beli virtuális gépet a Dockerrel.
- Az erőforrások üzembe helyezésének és a tárolók konfigurálásának automatizálásához használja az alábbi PowerShell- és Azure CLI-szkripteket.
Ha a Text Analytics állapottárolót használ, az API-kérésekben és válaszokban szereplő adatok nem láthatók a Microsoft számára, és nem használhatók az adatokra alkalmazott modell betanítására.
Futtassa helyileg a tárolót
Ha a tárolót a saját környezetében szeretné futtatni a tároló lemezképének letöltése után, hajtsa végre a következő docker run
parancsot. Cserélje le az alábbi helyőrzőket a saját értékeire:
Helyőrző | Érték | Formátum vagy példa |
---|---|---|
{API_KEY} | A nyelvi erőforrás kulcsa. Az erőforrás kulcs- és végpontoldalán , az Azure Portalon található. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
{ENDPOINT_URI} | Az API eléréséhez használt végpont. Az erőforrás kulcs- és végpontoldalán , az Azure Portalon található. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
docker run --rm -it -p 5000:5000 --cpus 6 --memory 12g \
mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:<tag-name> \
Eula=accept \
rai_terms=accept \
Billing={ENDPOINT_URI} \
ApiKey={API_KEY}
A parancs a következőket hajtja végre:
- A Text Analytics állapottárolójának futtatása a tároló lemezképéből
- 6 processzormagot és 12 gigabájt (GB) memóriát foglal le
- Az 5000-s TCP-portot teszi elérhetővé, és pszeudo-TTY-t foglal le a tárolóhoz
- Elfogadja a végfelhasználói licencszerződést (EULA) és a felelős AI-feltételeket
- A tárolót a kilépés után automatikusan eltávolítja. A tárolólemezkép továbbra is elérhető a gazdaszámítógépen.
Bemutató felhasználói felület a kimenet megjelenítéséhez
A tároló REST-alapú lekérdezés-előrejelzési végpont API-kat nyújt. Egy vizualizációs eszközt is biztosítottunk a tárolóban, amely a tároló végpontjának hozzáfűzésével /demo
érhető el. Példa:
http://<serverURL>:5000/demo
Az alábbi cURL-példakéréssel elküldhet egy lekérdezést az üzembe helyezett tárolónak, és a változót a serverURL
megfelelő értékre cserélheti.
curl -X POST 'http://<serverURL>:5000/text/analytics/v3.1/entities/health' --header 'Content-Type: application/json' --header 'accept: application/json' --data-binary @example.json
A tároló telepítése az Azure Web App for Containers használatával
Az Azure Web App for Containers egy Azure-erőforrás, amely a tárolók felhőben való futtatására van dedikált. Olyan beépített képességeket kínál, mint az automatikus skálázás, a Docker-tárolók és a Docker-összeállítás támogatása, a HTTPS-támogatás és még sok más.
Feljegyzés
Az Azure Web App használatával automatikusan kap egy tartományt a következő formában: <appservice_name>.azurewebsites.net
Futtassa ezt a PowerShell-szkriptet az Azure CLI-vel egy webalkalmazás tárolókhoz való létrehozásához az előfizetés és a tárolórendszerkép HTTPS-en keresztüli használatával. Várjon, amíg a szkript befejeződik (körülbelül 25–30 perc), mielőtt elküldené az első kérést.
$subscription_name = "" # THe name of the subscription you want you resource to be created on.
$resource_group_name = "" # The name of the resource group you want the AppServicePlan
# and AppSerivce to be attached to.
$resources_location = "" # This is the location you wish the AppServicePlan to be deployed to.
# You can use the "az account list-locations -o table" command to
# get the list of available locations and location code names.
$appservice_plan_name = "" # This is the AppServicePlan name you wish to have.
$appservice_name = "" # This is the AppService resource name you wish to have.
$TEXT_ANALYTICS_RESOURCE_API_KEY = "" # This should be taken from the Language resource.
$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT = "" # This should be taken from the Language resource.
$DOCKER_IMAGE_NAME = "mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:latest"
az login
az account set -s $subscription_name
az appservice plan create -n $appservice_plan_name -g $resource_group_name --is-linux -l $resources_location --sku P3V2
az webapp create -g $resource_group_name -p $appservice_plan_name -n $appservice_name -i $DOCKER_IMAGE_NAME
az webapp config appsettings set -g $resource_group_name -n $appservice_name --settings Eula=accept rai_terms=accept Billing=$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT ApiKey=$TEXT_ANALYTICS_RESOURCE_API_KEY
# Once deployment complete, the resource should be available at: https://<appservice_name>.azurewebsites.net
A tároló telepítése az Azure Container Instance használatával
Azure Container Instance (ACI) használatával is egyszerűbbé teheti az üzembe helyezést. Az ACI egy erőforrás, amely lehetővé teszi Docker-tárolók igény szerinti futtatását felügyelt, kiszolgáló nélküli Azure-környezetben.
Tekintse meg az Azure Container Instances használatát az ACI-erőforrások Azure Portalon történő üzembe helyezésének lépéseihez. Az alábbi PowerShell-szkriptet az Azure CLI használatával is használhatja, amely létrehoz egy ACI-t az előfizetésében a tárolórendszerkép használatával. Várjon, amíg a szkript befejeződik (körülbelül 25–30 perc), mielőtt elküldené az első kérést. Az ACI-erőforrásonkénti cpu-k maximális számának korlátozása miatt ne válassza ezt a beállítást, ha kérésenként 5-nél több nagyméretű dokumentumot (egyenként körülbelül 5000 karaktert) szeretne elküldeni. A rendelkezésre állással kapcsolatos információkért tekintse meg az ACI regionális támogatási cikkét.
Feljegyzés
Az Azure Container Instances nem támogatja a beépített tartományok HTTPS-támogatását. Ha HTTPS-ra van szüksége, manuálisan kell konfigurálnia, beleértve a tanúsítvány létrehozását és a tartomány regisztrálását. Ehhez az NGINX-sel kapcsolatos utasításokat alább találja.
$subscription_name = "" # The name of the subscription you want you resource to be created on.
$resource_group_name = "" # The name of the resource group you want the AppServicePlan
# and AppService to be attached to.
$resources_location = "" # This is the location you wish the web app to be deployed to.
# You can use the "az account list-locations -o table" command to
# Get the list of available locations and location code names.
$azure_container_instance_name = "" # This is the AzureContainerInstance name you wish to have.
$TEXT_ANALYTICS_RESOURCE_API_KEY = "" # This should be taken from the Language resource.
$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT = "" # This should be taken from the Language resource.
$DNS_LABEL = "" # This is the DNS label name you wish your ACI will have
$DOCKER_IMAGE_NAME = "mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:latest"
az login
az account set -s $subscription_name
az container create --resource-group $resource_group_name --name $azure_container_instance_name --image $DOCKER_IMAGE_NAME --cpu 4 --memory 12 --port 5000 --dns-name-label $DNS_LABEL --environment-variables Eula=accept rai_terms=accept Billing=$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT ApiKey=$TEXT_ANALYTICS_RESOURCE_API_KEY
# Once deployment complete, the resource should be available at: http://<unique_dns_label>.<resource_group_region>.azurecontainer.io:5000
Biztonságos ACI-kapcsolat
Az ACI tároló API-val való használatakor alapértelmezés szerint nincs biztosítva biztonság. Ennek az az oka, hogy a tárolók általában egy pod részeként futnak, amelyet kívülről egy hálózati híd véd. Azonban módosíthatja a tárolót egy előtérbeli összetevővel, így a tárolóvégpont privát marad. Az alábbi példák az NGINX-et használják bejövő átjáróként a HTTPS/SSL és az ügyféltanúsítvány-hitelesítés támogatásához.
Feljegyzés
Az NGINX egy nyílt forráskódú, nagy teljesítményű HTTP-kiszolgáló és proxy. Az NGINX-tárolók egy tároló TLS-kapcsolatának megszüntetésére használhatók. Összetettebb NGINX-alapú bejövő TLS-megszüntetési megoldások is lehetségesek.
NGINX beállítása bejövő átjáróként
Az NGINX konfigurációs fájlokat használ a funkciók futásidőben való engedélyezéséhez. Ahhoz, hogy egy másik szolgáltatás TLS-leállítása engedélyezhető legyen, meg kell adnia egy SSL-tanúsítványt a TLS-kapcsolat megszakításához és proxy_pass
a szolgáltatás címének megadásához. Az alábbiakban egy minta látható.
Feljegyzés
ssl_certificate
Az NGINX-tároló helyi fájlrendszerében egy elérési út megadására számít. A megadott proxy_pass
címnek elérhetőnek kell lennie az NGINX-tároló hálózatából.
Az NGINX-tároló betölti a HTTP-konfigurációs útvonal alá /etc/nginx/conf.d/
csatlakoztatott összes fájlt_.conf_
.
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
# replace with .crt and .key paths
ssl_certificate /cert/Local.crt;
ssl_certificate_key /cert/Local.key;
location / {
proxy_pass http://cognitive-service:5000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Példa Docker-írási fájlra
Az alábbi példa bemutatja, hogyan hozható létre docker compose fájl az NGINX- és állapottárolók üzembe helyezéséhez:
version: "3.7"
services:
cognitive-service:
image: {IMAGE_ID}
ports:
- 5000:5000
environment:
- eula=accept
- billing={ENDPOINT_URI}
- apikey={API_KEY}
volumes:
# replace with path to logs folder
- <path-to-logs-folder>:/output
nginx:
image: nginx
ports:
- 443:443
volumes:
# replace with paths for certs and conf folders
- <path-to-certs-folder>:/cert
- <path-to-conf-folder>:/etc/nginx/conf.d/
A Docker-levélírási fájl elindításához hajtsa végre a következő parancsot egy konzolról a fájl gyökérszintjén:
docker-compose up
További információkért tekintse meg az NGINX NGINX SSL-megszakítással kapcsolatos dokumentációját.
Több tároló futtatása ugyanazon a gazdagépen
Ha több tárolót szeretne futtatni közzétett portokkal, mindenképpen futtassa az egyes tárolókat egy másik közzétett porttal. Futtassa például az első tárolót az 5000-s porton, a másodikat pedig az 5001-s porton.
Ezt a tárolót és egy másik Azure AI-szolgáltatási tárolót együtt futtathatja a GAZDAGÉPen. Több tároló is futtatható ugyanabból az Azure AI-szolgáltatási tárolóból.
A tároló előrejelzési végpontjának lekérdezése
A tároló REST-alapú lekérdezés-előrejelzési végpont API-kat nyújt.
A tároló API-khoz használja a gazdagépet (http://localhost:5000
).
Ellenőrizze, hogy fut-e egy tároló
A tároló futásának ellenőrzésére többféleképpen is van lehetőség. Keresse meg a szóban forgó tároló külső IP-címét és közzétett portját, és nyissa meg a kedvenc webböngészőt. A tároló futásának ellenőrzéséhez használja az alábbi kérési URL-címeket. Az itt felsorolt példakérési URL-címek eltérőek http://localhost:5000
lehetnek, de az adott tároló eltérő lehet. Ügyeljen arra, hogy a tároló külső IP-címére és közzétett portjára támaszkodjon.
URL-cím kérése | Cél |
---|---|
http://localhost:5000/ |
A tároló egy kezdőlappal rendelkezik. |
http://localhost:5000/ready |
A GET használatával kért URL-cím ellenőrzi, hogy a tároló készen áll-e egy lekérdezés elfogadására a modellen. Ez a kérés használható a Kubernetes-beli élő- és készültségi mintavételekhez. |
http://localhost:5000/status |
A GET szolgáltatással is kért, ez az URL-cím ellenőrzi, hogy a tároló elindításához használt API-kulcs érvényes-e végpontlekérdezés nélkül. Ez a kérés használható a Kubernetes-beli élő- és készültségi mintavételekhez. |
http://localhost:5000/swagger |
A tároló átfogó dokumentációval is rendelkezik a végpontokhoz, valamint egy kipróbálás funkcióval is. Ezzel a funkcióval beírhatja a beállításokat egy webes HTML-űrlapba, és kódírás nélkül is elvégezheti a lekérdezést. A lekérdezés visszatérése után megjelenik egy példa CURL-parancs, amely bemutatja a szükséges HTTP-fejléceket és törzsformátumot. |
A tároló API-kérésének strukturálása
A Postman vagy az alábbi példa cURL-kérés használatával elküldheti a lekérdezést az üzembe helyezett tárolónak, és lecserélheti a változót a serverURL
megfelelő értékre. Vegye figyelembe, hogy a tároló URL-címében szereplő API verziója eltér a üzemeltetett API-tól.
Feljegyzés
A Fast Healthcare Interoperability Resources (FHIR) funkció a legújabb tárolóban érhető el, és az új nyelvű REST API-n keresztül érhető el.
curl -i -X POST 'http://<serverURL>:5000/language/analyze-text/jobs?api-version=2022-04-01-preview' --header 'Content-Type: application/json' --header --data-binary @example.json
Az alábbi JSON egy példa a Language request POST törzséhez csatolt JSON-fájlra:
example.json
{
"analysisInput": {
"documents": [
{
"text": "The doctor prescried 200mg Ibuprofen.",
"language": "en",
"id": "1"
}
]
},
"tasks": [
{
"taskName": "analyze 1",
"kind": "Healthcare",
"parameters": {
"fhirVersion": "4.0.1"
}
}
]
}
Tároló válasz törzse
Az alábbi JSON egy példa a tárolóalapú szinkron hívás nyelvi válasz törzsére:
{
"jobId": "{JOB-ID}",
"lastUpdateDateTime": "2022-04-18T15:50:16Z",
"createdDateTime": "2022-04-18T15:50:14Z",
"expirationDateTime": "2022-04-19T15:50:14Z",
"status": "succeeded",
"errors": [],
"tasks": {
"completed": 1,
"failed": 0,
"inProgress": 0,
"total": 1,
"items": [
{
"kind": "HealthcareLROResults",
"taskName": "analyze 1",
"lastUpdateDateTime": "2022-04-18T15:50:16.7046515Z",
"status": "succeeded",
"results": {
"documents": [
{
"id": "1",
"entities": [
{
"offset": 4,
"length": 6,
"text": "doctor",
"category": "HealthcareProfession",
"confidenceScore": 0.76
},
{
"offset": 21,
"length": 5,
"text": "200mg",
"category": "Dosage",
"confidenceScore": 0.99
},
{
"offset": 27,
"length": 9,
"text": "Ibuprofen",
"category": "MedicationName",
"confidenceScore": 1.0,
"name": "ibuprofen",
"links": [
{ "dataSource": "UMLS", "id": "C0020740" },
{ "dataSource": "AOD", "id": "0000019879" },
{ "dataSource": "ATC", "id": "M01AE01" },
{ "dataSource": "CCPSS", "id": "0046165" },
{ "dataSource": "CHV", "id": "0000006519" },
{ "dataSource": "CSP", "id": "2270-2077" },
{ "dataSource": "DRUGBANK", "id": "DB01050" },
{ "dataSource": "GS", "id": "1611" },
{ "dataSource": "LCH_NW", "id": "sh97005926" },
{ "dataSource": "LNC", "id": "LP16165-0" },
{ "dataSource": "MEDCIN", "id": "40458" },
{ "dataSource": "MMSL", "id": "d00015" },
{ "dataSource": "MSH", "id": "D007052" },
{ "dataSource": "MTHSPL", "id": "WK2XYI10QM" },
{ "dataSource": "NCI", "id": "C561" },
{ "dataSource": "NCI_CTRP", "id": "C561" },
{ "dataSource": "NCI_DCP", "id": "00803" },
{ "dataSource": "NCI_DTP", "id": "NSC0256857" },
{ "dataSource": "NCI_FDA", "id": "WK2XYI10QM" },
{ "dataSource": "NCI_NCI-GLOSS", "id": "CDR0000613511" },
{ "dataSource": "NDDF", "id": "002377" },
{ "dataSource": "PDQ", "id": "CDR0000040475" },
{ "dataSource": "RCD", "id": "x02MO" },
{ "dataSource": "RXNORM", "id": "5640" },
{ "dataSource": "SNM", "id": "E-7772" },
{ "dataSource": "SNMI", "id": "C-603C0" },
{ "dataSource": "SNOMEDCT_US", "id": "387207008" },
{ "dataSource": "USP", "id": "m39860" },
{ "dataSource": "USPMG", "id": "MTHU000060" },
{ "dataSource": "VANDF", "id": "4017840" }
]
}
],
"relations": [
{
"relationType": "DosageOfMedication",
"entities": [
{
"ref": "#/results/documents/0/entities/1",
"role": "Dosage"
},
{
"ref": "#/results/documents/0/entities/2",
"role": "Medication"
}
]
}
],
"warnings": [],
"fhirBundle": {
"resourceType": "Bundle",
"id": "bae9d4e0-191e-48e6-9c24-c1ff6097c439",
"meta": {
"profile": [
"http://hl7.org/fhir/4.0.1/StructureDefinition/Bundle"
]
},
"identifier": {
"system": "urn:ietf:rfc:3986",
"value": "urn:uuid:bae9d4e0-191e-48e6-9c24-c1ff6097c439"
},
"type": "document",
"entry": [
{
"fullUrl": "Composition/9044c2cc-dcec-4b9d-b005-bfa8be978aa8",
"resource": {
"resourceType": "Composition",
"id": "9044c2cc-dcec-4b9d-b005-bfa8be978aa8",
"status": "final",
"type": {
"coding": [
{
"system": "http://loinc.org",
"code": "11526-1",
"display": "Pathology study"
}
],
"text": "Pathology study"
},
"subject": {
"reference": "Patient/5c554347-4290-4b05-83ac-6637ff3bfb40",
"type": "Patient"
},
"encounter": {
"reference": "Encounter/6fe12f5b-e35c-4c92-a492-96feda5a1a3b",
"type": "Encounter",
"display": "unknown"
},
"date": "2022-04-18",
"author": [
{
"reference": "Practitioner/fb5da4d8-e0f0-4434-8d29-4419b065c4d7",
"type": "Practitioner",
"display": "Unknown"
}
],
"title": "Pathology study",
"section": [
{
"title": "General",
"code": {
"coding": [
{
"system": "",
"display": "Unrecognized Section"
}
],
"text": "General"
},
"text": {
"div": "<div>\r\n\t\t\t\t\t\t\t<h1>General</h1>\r\n\t\t\t\t\t\t\t<p>The doctor prescried 200mg Ibuprofen.</p>\r\n\t\t\t\t\t</div>"
},
"entry": [
{
"reference": "List/db388912-b5fb-4073-a74c-2751fd3374dd",
"type": "List",
"display": "General"
}
]
}
]
}
},
{
"fullUrl": "Practitioner/fb5da4d8-e0f0-4434-8d29-4419b065c4d7",
"resource": {
"resourceType": "Practitioner",
"id": "fb5da4d8-e0f0-4434-8d29-4419b065c4d7",
"extension": [
{
"extension": [
{ "url": "offset", "valueInteger": -1 },
{ "url": "length", "valueInteger": 7 }
],
"url": "http://hl7.org/fhir/StructureDefinition/derivation-reference"
}
],
"name": [{ "text": "Unknown", "family": "Unknown" }]
}
},
{
"fullUrl": "Patient/5c554347-4290-4b05-83ac-6637ff3bfb40",
"resource": {
"resourceType": "Patient",
"id": "5c554347-4290-4b05-83ac-6637ff3bfb40",
"gender": "unknown"
}
},
{
"fullUrl": "Encounter/6fe12f5b-e35c-4c92-a492-96feda5a1a3b",
"resource": {
"resourceType": "Encounter",
"id": "6fe12f5b-e35c-4c92-a492-96feda5a1a3b",
"meta": {
"profile": [
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
]
},
"status": "finished",
"class": {
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"display": "unknown"
},
"subject": {
"reference": "Patient/5c554347-4290-4b05-83ac-6637ff3bfb40",
"type": "Patient"
}
}
},
{
"fullUrl": "MedicationStatement/24e860ce-2fdc-4745-aa9e-7d30bb487c4e",
"resource": {
"resourceType": "MedicationStatement",
"id": "24e860ce-2fdc-4745-aa9e-7d30bb487c4e",
"extension": [
{
"extension": [
{ "url": "offset", "valueInteger": 27 },
{ "url": "length", "valueInteger": 9 }
],
"url": "http://hl7.org/fhir/StructureDefinition/derivation-reference"
}
],
"status": "active",
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls",
"code": "C0020740",
"display": "Ibuprofen"
},
{
"system": "http://www.nlm.nih.gov/research/umls/aod",
"code": "0000019879"
},
{
"system": "http://www.whocc.no/atc",
"code": "M01AE01"
},
{
"system": "http://www.nlm.nih.gov/research/umls/ccpss",
"code": "0046165"
},
{
"system": "http://www.nlm.nih.gov/research/umls/chv",
"code": "0000006519"
},
{
"system": "http://www.nlm.nih.gov/research/umls/csp",
"code": "2270-2077"
},
{
"system": "http://www.nlm.nih.gov/research/umls/drugbank",
"code": "DB01050"
},
{
"system": "http://www.nlm.nih.gov/research/umls/gs",
"code": "1611"
},
{
"system": "http://www.nlm.nih.gov/research/umls/lch_nw",
"code": "sh97005926"
},
{ "system": "http://loinc.org", "code": "LP16165-0" },
{
"system": "http://www.nlm.nih.gov/research/umls/medcin",
"code": "40458"
},
{
"system": "http://www.nlm.nih.gov/research/umls/mmsl",
"code": "d00015"
},
{
"system": "http://www.nlm.nih.gov/research/umls/msh",
"code": "D007052"
},
{
"system": "http://www.nlm.nih.gov/research/umls/mthspl",
"code": "WK2XYI10QM"
},
{
"system": "http://ncimeta.nci.nih.gov",
"code": "C561"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nci_ctrp",
"code": "C561"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nci_dcp",
"code": "00803"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nci_dtp",
"code": "NSC0256857"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nci_fda",
"code": "WK2XYI10QM"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nci_nci-gloss",
"code": "CDR0000613511"
},
{
"system": "http://www.nlm.nih.gov/research/umls/nddf",
"code": "002377"
},
{
"system": "http://www.nlm.nih.gov/research/umls/pdq",
"code": "CDR0000040475"
},
{
"system": "http://www.nlm.nih.gov/research/umls/rcd",
"code": "x02MO"
},
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "5640"
},
{
"system": "http://snomed.info/sct",
"code": "E-7772"
},
{
"system": "http://snomed.info/sct/900000000000207008",
"code": "C-603C0"
},
{
"system": "http://snomed.info/sct/731000124108",
"code": "387207008"
},
{
"system": "http://www.nlm.nih.gov/research/umls/usp",
"code": "m39860"
},
{
"system": "http://www.nlm.nih.gov/research/umls/uspmg",
"code": "MTHU000060"
},
{
"system": "http://hl7.org/fhir/ndfrt",
"code": "4017840"
}
],
"text": "Ibuprofen"
},
"subject": {
"reference": "Patient/5c554347-4290-4b05-83ac-6637ff3bfb40",
"type": "Patient"
},
"context": {
"reference": "Encounter/6fe12f5b-e35c-4c92-a492-96feda5a1a3b",
"type": "Encounter",
"display": "unknown"
},
"dosage": [
{
"text": "200mg",
"doseAndRate": [{ "doseQuantity": { "value": 200 } }]
}
]
}
},
{
"fullUrl": "List/db388912-b5fb-4073-a74c-2751fd3374dd",
"resource": {
"resourceType": "List",
"id": "db388912-b5fb-4073-a74c-2751fd3374dd",
"status": "current",
"mode": "snapshot",
"title": "General",
"subject": {
"reference": "Patient/5c554347-4290-4b05-83ac-6637ff3bfb40",
"type": "Patient"
},
"encounter": {
"reference": "Encounter/6fe12f5b-e35c-4c92-a492-96feda5a1a3b",
"type": "Encounter",
"display": "unknown"
},
"entry": [
{
"item": {
"reference": "MedicationStatement/24e860ce-2fdc-4745-aa9e-7d30bb487c4e",
"type": "MedicationStatement",
"display": "Ibuprofen"
}
}
]
}
}
]
}
}
],
"errors": [],
"modelVersion": "2022-03-01"
}
}
]
}
}
A tároló futtatása ügyfélkódtár-támogatással
A tároló verziójától 3.0.017010001-onprem-amd64
kezdve (vagy ha a tárolót latest
használja) futtathatja a Text Analytics állapottárolót az ügyfélkódtár használatával. Ehhez adja hozzá a következő paramétert a docker run
parancshoz:
enablelro=true
Ezt követően az ügyfélobjektum hitelesítése után használja a tároló által futtatott végpontot:
http://localhost:5000
Ha például C#-ot használ, akkor a következő kódot kell használnia:
var client = new TextAnalyticsClient("http://localhost:5000", "your-text-analytics-key");
A tároló leállítása
A tároló leállításához a tárolót futtató parancssori környezetben válassza a Ctrl+C billentyűkombinációt.
Hibaelhárítás
Ha a tárolót kimeneti csatlakoztatással és naplózással futtatja, a tároló olyan naplófájlokat hoz létre, amelyek segítenek elhárítani a tároló indításakor vagy futtatásakor felmerülő problémákat.
Tipp.
További hibaelhárítási információkért és útmutatásért tekintse meg az Azure AI-tárolókkal kapcsolatos gyakori kérdéseket (GYIK).
Számlázás
Az állapottárolókhoz készült Text Analytics számlázási adatokat küld az Azure-nak egy Nyelvi erőforrás használatával az Azure-fiókjában.
A tárolóba irányuló lekérdezések számlázása a paraméterhez használt Azure-erőforrás tarifacsomagján ApiKey
lesz.
Az Azure AI-szolgáltatások tárolói nem rendelkeznek licenceléssel anélkül, hogy a mérési vagy számlázási végponthoz csatlakozna. Engedélyeznie kell a tárolók számára, hogy mindig közöljék a számlázási adatokat a számlázási végponttal. Az Azure AI-szolgáltatások tárolói nem küldenek ügyféladatokat, például az elemezni kívánt képet vagy szöveget a Microsoftnak.
Csatlakozás az Azure szolgáltatáshoz
A tárolónak futtatnia kell a számlázási argumentum értékeit. Ezek az értékek lehetővé teszik, hogy a tároló csatlakozzon a számlázási végponthoz. A tároló körülbelül 10–15 percenként jelenti a használatot. Ha a tároló az engedélyezett időkereten belül nem csatlakozik az Azure-hoz, a tároló továbbra is fut, de nem szolgál ki lekérdezéseket, amíg vissza nem állítja a számlázási végpontot. A kapcsolat 10 alkalommal, 10–15 perces időintervallumban történik. Ha a 10 próbálkozáson belül nem tud csatlakozni a számlázási végponthoz, a tároló leállítja a kérések kiszolgálását. Tekintse meg az Azure AI-szolgáltatások tárolójának gyakori kérdéseit a Microsoftnak a számlázáshoz küldött információk példájáért.
Számlázási argumentumok
A docker run
parancs akkor indítja el a tárolót, ha az alábbi lehetőségek közül mind a három érvényes értéket tartalmazza:
Lehetőség | Leírás |
---|---|
ApiKey |
Az Azure AI-szolgáltatások erőforrásának API-kulcsa, amely a számlázási adatok nyomon követésére szolgál. Ennek a beállításnak az értékét api-kulcsra kell állítani a kiépített erőforráshoz, amely a következőben Billing van megadva: . |
Billing |
Az Azure AI-szolgáltatások erőforrásának végpontja, amely a számlázási adatok nyomon követésére szolgál. Ennek a beállításnak az értékét egy kiépített Azure-erőforrás végponti URI-jára kell állítani. |
Eula |
Azt jelzi, hogy elfogadta a tároló licencét. Ennek a beállításnak az értékét el kell fogadni. |
Összegzés
Ebben a cikkben megismerkedett az állapottárolókhoz készült Text Analytics letöltésével, telepítésével és futtatásával kapcsolatos fogalmakkal és munkafolyamatokkal. Összegezve:
- A Text Analytics for Health linuxos tárolót biztosít a Docker számára
- A tárolólemezképek a Microsoft Container Registryből (MCR) töltődnek le.
- A tárolólemezképek a Dockerben futnak.
- A REST API-val vagy az SDK-val meghívhatja az állapottárolókhoz tartozó Text Analytics műveleteit a tároló gazdagép URI-jának megadásával.
- A tárolók példányosításakor meg kell adnia a számlázási adatokat.
Fontos
Az Azure AI-tárolók nem rendelkeznek licenceléssel anélkül, hogy az Azure-hoz csatlakozna mérési célokra. Az ügyfeleknek engedélyeznie kell a tárolóknak, hogy mindig közöljék a számlázási adatokat a mérési szolgáltatással. Az Azure AI-tárolók nem küldenek ügyféladatokat (például elemezni kívánt szöveget) a Microsoftnak.
Következő lépések
- Lásd: Tárolók konfigurálása konfigurációs beállításokhoz.