Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнеры позволяют размещать Анализ текста для API работоспособности в собственной инфраструктуре. Если у вас есть требования к безопасности или управлению данными, которые не могут быть выполнены путем удаленного вызова Анализа текста для работоспособности, контейнеры могут быть хорошим вариантом.
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Необходимые компоненты
Прежде чем использовать контейнеры Анализа текста, необходимо выполнить следующие предварительные условия. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
-
Docker, установленный на главном компьютере. Docker нужно настроить таким образом, чтобы контейнеры могли подключать и отправлять данные о выставлении счетов в Azure.
- В Windows для поддержки контейнеров Linux также должен быть настроен Docker.
- Необходимо знать основные принципы и основные понятия Docker.
- Ресурс языка с бесплатной ценовой категорией (F0) или ценовой категории "Стандартный" (S).
Сбор обязательных параметров
Требуются три основных параметра для всех контейнеров ИИ Azure. Для условий лицензионного соглашения на использование программного обеспечения корпорации Майкрософт должно быть задано значение accept. Также требуются URI конечной точки и ключ API.
URI конечной точки
Это {ENDPOINT_URI} значение доступно на странице обзора портала Azure соответствующего ресурса Foundry Tools. Перейдите на страницу обзора, наведите указатель мыши на конечную точку и появится значок копирования в буфер обмена. Скопируйте и используйте конечную точку по мере необходимости.
Ключи
Значение {API_KEY} используется для запуска контейнера и доступно на странице ключей портала Azure соответствующего ресурса Foundry Tools. Перейдите на страницу "Ключи" и щелкните значок копирования в буфер обмена.
Внимание
Эти ключи подписки используются для доступа к API средств Foundry. Не предоставляйте доступ к ключам другим пользователям. Храните их в безопасном месте. Например, используйте Azure Key Vault. Также рекомендуется регулярно повторно создавать эти ключи. Для вызова API необходим только один ключ. При повторном создании первого ключа второй ключ можно использовать для бесперебойного доступа к службе.
Требования к главному компьютеру и рекомендации
Узел — это 64-разрядный компьютер, на котором выполняется контейнер Docker. Это может быть компьютер в локальной среде или служба размещения Docker в Azure, включая следующие решения:
- Служба Azure Kubernetes.
- Экземпляры контейнеров Azure.
- Кластер Kubernetes, развернутый в Azure Stack. Дополнительные сведения см. в статье Развертывание Kubernetes в Azure Stack.
В следующей таблице описаны минимальные и рекомендуемые спецификации для Анализа текста контейнеров работоспособности. Частота каждого ядра ЦП должна быть минимум 2,6 ГГц. Также указано допустимое количество транзакций в секунду (TPS).
| Минимальные спецификации узла | Рекомендуемые спецификации узла | Минимальное TPS | Максимальное TPS | |
|---|---|---|---|---|
| 1 документ/запрос | 4 ядра, 12 ГБ памяти | 6 ядер, 12 ГБ памяти | 15 | 30 |
| 10 документов/запросов | 6 ядер, 16 ГБ памяти | 8 ядер, 20 ГБ памяти | 15 | 30 |
Ядро и память соответствуют параметрам --cpus и --memory, которые используются как часть команды docker run.
Получение образа контейнера с помощью docker pull
Образ контейнера работоспособности Анализ текста можно найти в mcr.microsoft.com синдикате реестра контейнеров. Он находится в репозитории azure-cognitive-services/textanalytics/ и называется healthcare. Полное имя образа контейнера — mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare
Чтобы использовать последнюю версию контейнера, можно использовать latest тег. Полный список тегов также представлен в MCR.
Используйте команду docker pull, чтобы скачать этот образ контейнера из общедоступного реестра контейнеров Майкрософт. Вы можете найти рекомендуемые теги в реестре контейнеров Майкрософт
docker pull mcr.microsoft.com/azure-cognitive-services/textanalytics/healthcare:<tag-name>
Совет
Используйте команду docker images, чтобы получить список скачанных образов контейнеров. Например, следующая команда возвращает таблицу со списком идентификаторов, репозиториев и тегов для каждого скачанного образа контейнера:
docker images --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}"
IMAGE ID REPOSITORY TAG
<image-id> <repository-path/name> <tag-name>
Запуск контейнера с помощью команды docker run
После того как контейнер находится на хост-компьютере, используйте команду запуска Docker и запустите контейнеры. Контейнер продолжает работать, пока вы его не остановите.
Внимание
- В командах Docker в следующих разделах используется обратная косая черта (
\) как символ продолжения строки. Замените или удалите обратный слеш в соответствии с требованиями операционной системы хоста.Eula,BillingиApiKeyпараметры необходимо указать для запуска контейнера; в противном случае контейнер не запускается. Дополнительные сведения см. в разделе о выставлении счетов.- Подтверждение ответственного ИИ также должно присутствовать со значением
accept.- Контейнеры анализа тональности и распознавания языка используют API версии 3 и являются общедоступными. Контейнер извлечения ключевых фраз использует API версии 2 и находится в режиме предварительной версии.
Существует несколько способов установки и запуска Анализа текста для контейнера работоспособности.
- Используйте портал Azure для создания языкового ресурса, а Docker — для получения контейнера.
- Используйте виртуальную машину Azure с Docker и запустите контейнер.
- Используйте следующие скрипты PowerShell и Azure CLI для автоматизации развертывания ресурсов и конфигурации контейнеров.
При использовании контейнера Text Analytics для здоровья данные, содержащиеся в запросах и ответах API, не видны Microsoft и не используются для обучения модели, применяемой к вашим данным.
Локальный запуск контейнера
Чтобы запустить контейнер в собственной среде после загрузки образа контейнера, выполните следующую команду docker run. Замените заполнители собственными значениями:
| Заполнитель | Значение | Формат или пример |
|---|---|---|
| {API_KEY} | Ключ для языкового ресурса. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| {ENDPOINT_URI} | Конечная точка для доступа к API. Он представлен на странице ресурса Ключ и конечная точка на портале Azure. | 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}
Команда:
- запускает Анализ текста для контейнера работоспособности из образа контейнера;
- выделяет 6 ядер ЦП и 12 гигабайт (ГБ) памяти;
-
TCPПредоставляет порт 5000 и выделяет псевдо TTY для контейнера. - принимает условия лицензионного соглашения (EULA) и условия ответственного подхода к применению ИИ (RAI);
- автоматически удаляет контейнер после завершения его работы. Образ контейнера остается доступным на главном компьютере.
Демонстрационный пользовательский интерфейс для визуализации выходных данных
Контейнер предоставляет интерфейсы REST API конечной точки прогнозирования запросов. Мы также предоставляем средство визуализации в контейнере, доступном путем добавления /demo к конечной точке контейнера. Например:
http://<serverURL>:5000/demo
Используйте следующий пример запроса cURL, чтобы отправить запрос в развернутый контейнер, заменив serverURL переменную соответствующим значением.
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
Установка контейнера с помощью Веб-приложения Azure для контейнеров
Веб-приложение Azure для контейнеров — это ресурс Azure, предназначенный для запуска контейнеров в облаке. Он предлагает встроенные функции, такие как автомасштабирование, поддержка контейнеров Docker и Поддержка Docker Compose и HTTPS.
Примечание.
С помощью веб-приложения Azure вы автоматически получаете домен в виде <appservice_name>.azurewebsites.net
Запустите этот скрипт PowerShell с помощью Azure CLI, чтобы создать Веб-приложение для контейнеров, используя свою подписку и образ контейнера по протоколу HTTPS. Дождитесь завершения скрипта (приблизительно 25–30 минут), прежде чем отправлять первый запрос.
$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 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 Azure Language resource.
$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT = "" # This should be taken from Azure 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
Установка контейнера с помощью экземпляра контейнера Azure
Чтобы упростить развертывание, можно также использовать экземпляр контейнера Azure (ACI). ACI — это ресурс, который позволяет по запросу запускать контейнеры Docker в управляемой бессерверной среде Azure.
Инструкции по развертыванию ресурса ACI на портале Azure см. в статье Использование Экземпляров контейнеров Azure. Вы также можете использовать следующий скрипт PowerShell, используя Azure CLI, который создает ACI в вашей подписке на основе образа контейнера. Дождитесь завершения скрипта (приблизительно 25–30 минут), прежде чем отправлять первый запрос. Из-за ограничения на максимальное количество ЦП на ресурс ACI не выбирайте этот параметр, если вы ожидаете отправить более пяти больших документов (примерно 5000 символов каждый) на запрос. Сведения о доступности см. в статье Региональная поддержка ACI.
Примечание.
Экземпляры контейнеров Azure не поддерживают HTTPS для встроенных доменов. Если вам нужен ПРОТОКОЛ HTTPS, необходимо вручную настроить его, включая создание сертификата и регистрацию домена. Инструкции см. в следующем примере NGINX:
$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 Azure Language resource.
$TEXT_ANALYTICS_RESOURCE_API_ENDPOINT = "" # This should be taken from Azure 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
Безопасное подключение ACI
По умолчанию ACI с API контейнера не обеспечивает безопасность — контейнеры обычно выполняются внутри модуля pod, а сетевой мост изолирует модуль pod от внешнего доступа. Однако можно изменить контейнер с интерфейсным компонентом, сохраняя частную конечную точку контейнера. В следующих примерах NGINX используется в качестве шлюза входящего трафика для поддержки HTTPS/SSL и проверки подлинности на основе сертификата клиента.
Примечание.
NGINX — это http-сервер с открытым исходным кодом, высокопроизводительный HTTP-сервер и прокси-сервер. Контейнер NGINX можно использовать для завершения TLS подключения для одного контейнера. Более сложные решения для завершения соединений на основе ingress-контроллера NGINX также возможны.
Настройка NGINX в качестве шлюза входящего трафика
NGINX использует файлы конфигурации для включения компонентов в среде выполнения. Чтобы включить TLS завершение для другой службы, необходимо указать SSL-сертификат, чтобы завершить TLS подключение и proxy_pass указать адрес службы. Приведен пример:
Примечание.
Для ssl_certificate требуется указать путь в локальной файловой системе контейнера NGINX. Адрес, указанный для proxy_pass, должен быть доступен в сети контейнера NGINX.
Контейнер NGINX загружает все файлы, смонтированные в _.conf_, в путь конфигурации HTTP.
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;
}
}
Пример файла Compose
В следующем примере показано, как можно создать файл docker compose для развертывания контейнеров NGINX и контейнеров для проверки работоспособности:
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/
Чтобы инициировать этот файл Docker Compose, выполните следующую команду в консоли на корневом уровне файла:
docker-compose up
Дополнительные сведения см. в документации по NGINX на странице Завершение SSL NGINX.
Запуск нескольких контейнеров на одном узле
Если вы планируете запускать несколько контейнеров при открытых портах, обязательно назначьте каждому контейнеру отдельный открытый порт. Например, запускайте первый контейнер на порте 5000, а второй — на порте 5001.
Этот контейнер можно использовать и другой контейнер средств Foundry, запущенный на узле HOST вместе. Вы также можете использовать несколько контейнеров одного и того же контейнера Средств Foundry, запущенного.
Запрос конечной точки прогнозирования контейнера
Контейнер предоставляет интерфейсы REST API конечной точки прогнозирования запросов.
Используйте узел http://localhost:5000 для API контейнера.
Проверка состояния контейнера
Проверить это можно несколькими способами. Получите адрес и открытый порт для рассматриваемого контейнера из его параметра Внешний IP-адрес и запустите веб-браузер. Используйте приведенные ниже URL-адреса запросов, чтобы убедиться, что контейнер работает. В примерах в качестве URL-адресов запросов используется значение http://localhost:5000, однако ваш конкретный контейнер может иметь отличия. Убедитесь в правильности внешнего IP-адреса и открытого порта контейнера.
| Запросить URL-адрес | Характер использования |
|---|---|
http://localhost:5000/ |
Контейнер предоставляет домашнюю страницу. |
http://localhost:5000/ready |
При запросе с помощью команды GET этот URL-адрес подтверждает, что контейнер готов принять запрос к модели. Этот запрос может использоваться для проб активности и готовности Kubernetes. |
http://localhost:5000/status |
Этот URL-адрес, который можно также запросить с помощью GET, проверяет, действителен ли ключ API, используемый для запуска контейнера, без запроса конечной точки. Этот запрос может использоваться для проб активности и готовности Kubernetes. |
http://localhost:5000/swagger |
Контейнер предоставляет полный набор документации по конечным точкам и функции Попробовать. Эта функция позволяет ввести параметры в веб-форму HTML и создать запрос без необходимости писать код. После возвращения результатов запроса предоставляется пример команды CURL с примером требуемого формата HTTP-заголовков и текста. |
Структурирование запроса API для контейнера
Вы можете использовать расширение REST Client Visual Studio Code или следующий пример запроса cURL для отправки запроса в развернутый контейнер, заменив serverURL переменную соответствующим значением. Обратите внимание, что версия API в URL-адресе для контейнера отличается от размещенного API.
Примечание.
Функция "Ресурсы быстрого взаимодействия в сфере здравоохранения" (FHIR) доступна в последнем контейнере и предоставляется с помощью нового REST API службы "Язык".
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
Следующий код JSON является примером JSON-файла, присоединенного к тексту POST запроса языка Azure:
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"
}
}
]
}
Текст ответа контейнера
Следующий код JSON является примером текста ответа языка Azure из контейнеризованного синхронного вызова:
{
"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"
}
}
]
}
}
Запуск контейнера с поддержкой клиентской библиотеки
Начиная с версии контейнера 3.0.017010001-onprem-amd64 (или при использовании контейнера latest) можно запустить анализ текста для контейнера работоспособности с помощью клиентской библиотеки. Для этого добавьте в команду docker run следующий параметр:
enablelro=true
Затем при проверке подлинности клиентского объекта используйте конечную точку, в которой выполняется контейнер:
http://localhost:5000
Например, если вы используете C#, используйте следующий код:
var client = new TextAnalyticsClient("http://localhost:5000", "your-text-analytics-key");
Остановка контейнера
Чтобы завершить работу контейнера, в среде командной строки, где выполняется контейнер, нажмите комбинацию клавиш Ctrl+C.
Устранение неполадок
При запуске контейнера с включенным выходным подключением и ведением журнала контейнер создает файлы журналов. Эти файлы журналов полезны для устранения проблем, которые могут возникнуть во время запуска или работы контейнера.
Совет
Дополнительные сведения об устранении неполадок и рекомендации см. в статье часто задаваемые вопросы о контейнерах ИИ Azure.
Выставление счетов
Анализ текста для контейнеров работоспособности отправляет данные для выставления счетов в Azure с помощью языкового ресурса в учетной записи Azure.
Запросы к контейнеру оплачиваются согласно ценовой категории ресурса Azure, используемого для параметра ApiKey.
Контейнеры средств foundry не лицензированы для запуска без подключения к конечной точке измерения или выставления счетов. Вам необходимо разрешить контейнерам непрерывную передачу данных для выставления счетов в конечную точку выставления счетов. Контейнеры средств foundry не отправляют данные клиента, такие как изображение или текст, которые анализируются, в корпорацию Майкрософт.
Подключение к Azure
Для запуска контейнера необходимо указать значения аргументов, касающихся выставления счетов. Эти значения обеспечивают подключение контейнера к конечной точке выставления счетов. Отчеты об использовании контейнера примерно каждые 10—15 минут. Если контейнер не подключится к Azure в течение допустимого периода времени, контейнер будет продолжать работать, но не будет обслуживать запросы, пока не будет восстановлена конечная точка выставления счетов. Попытки подключения выполняются 10 раз на протяжении одинакового интервала времени (10–15 минут). Если контейнеру не удается подключиться к конечной точке выставления счетов за 10 попыток, он останавливает запросы на обслуживание. Дополнительные сведения, отправленные корпорации Майкрософт для выставления счетов, см. в контейнере средств Foundry .
Аргументы для выставления счетов
Команда docker run запустит контейнер, когда все три из следующих параметров предоставляются допустимыми значениями:
| Вариант | Описание |
|---|---|
ApiKey |
Ключ API ресурса Foundry Tools, который используется для отслеживания сведений о выставлении счетов. Этому параметру следует присвоить значение ключа API для подготовленного ресурса, который можно получить в Billing. |
Billing |
Конечная точка ресурса Foundry Tools, используемого для отслеживания сведений о выставлении счетов. Этому параметру следует присвоить URI конечной точки подготовленного ресурса Azure. |
Eula |
Указывает, что вы приняли условия лицензии для контейнера. Для этого параметра следует задать значение accept. |
Итоги
Из этой статьи вы узнали основные понятия и рабочий процесс скачивания, установки и выполнения Анализа текста для контейнеров работоспособности. Сводка:
- Анализ текста для работоспособности предоставляет контейнер Linux для Docker
- Образы контейнеров скачиваются из Реестра контейнеров Майкрософт (MCR).
- Образы контейнеров выполняются в Docker.
- Указав узел URI контейнера, можно использовать пакет SDK или REST API для вызова операций в Анализе текста для контейнеров работоспособности.
- При создании экземпляра контейнера нужно указать данные для выставления счетов.
Внимание
Контейнеры ИИ Azure не лицензируются для запуска без подключения к Azure для измерения. Клиенты должны убедиться, что контейнеры всегда могут передавать информацию о выставлении счетов в сервис учета. Контейнеры ИИ Azure не отправляют данные клиента (например, анализируемый текст) в корпорацию Майкрософт.
Следующие шаги
- Параметры конфигурации см. в разделе Конфигурация контейнеров.