Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
LLM-приложения и медицинские данные
Использование больших языковых моделей с медицинскими данными: запрос и ответ API контекста, облачные и локальные модели, агентные системы, извлечение против контекста и промптинг с указанием происхождения данных.
Приложение, использующее большую языковую модель с медицинскими данными, должно решить одну проблему, которую модель не может решить сама: какую часть записи пациента поместить в промпт и как ее пометить, чтобы модель могла отличить факты от заметок. Anpheros решает эту проблему на стороне данных с помощью контекстного API: на основе пациента, задачи и лимита токенов он возвращает соответствующие разделы записи пациента HL7 FHIR R4, причем каждый элемент помечен своим источником. Ваше приложение отправляет этот контекст выбранной вами модели — размещенной или локальной.
Как подключить LLM к медицинским данным FHIR? Храните записи в FHIR-хранилище, к которому модель не имеет прямого доступа — с Anpheros, запись пациента HL7 FHIR R4 — запросите у него контекст с учетом бюджета и помеченный источником (POST /v1/context) и поместите этот контекст в промпт выбранной вами модели. Модель никогда не получает учетные данные базы данных или API; ваше приложение выполняет вызовы с согласия пациента.
Anpheros не запускает модели и не имеет нативной интеграции с каким-либо поставщиком моделей или локальным исполнителем.
Шаблон
1. your app ── POST /v1/context {patient, task, question, budget_tokens, format} ──► Anpheros
2. Anpheros ── sections + text + omitted + warnings + manifest_id ──────────────────► your app
3. your app ── system prompt + context + user question ─────────────────────────────► the model
4. the model ── answer ───────────────────────────────────────────────────────────────► your app
5. your app ── optional write-back with author_type "ai" ──────────────────────────► Anpheros
Запрос контекста
curl -X POST https://platform.anpheros.com/v1/context -H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' -d '{
"patient": "'$PID'",
"task": "medication review before a cardiology visit",
"question": "How did blood pressure evolve over the last 3 months?",
"budget_tokens": 1500,
"format": "text"
}'
| Поле | Значение |
|---|---|
patient |
идентификатор пациента, видимый вашим учетным данным |
task, question |
что будет делать модель; платформа планирует, какие части записи релевантны |
needs |
необязательные явные потребности, например ["labs:4548-4", "vitals:trend:85354-9", "timeline:180d"] |
budget_tokens |
размер контекста, 300–8 000 (по умолчанию 2 000) |
format |
structured (разделы JSON) или text (также возвращает готовый текстовый блок) |
window_days |
необязательное окно просмотра назад |
Контекстный ответ
sections— например, сводная карточка, состояния, лекарства, аллергии, иммунизации, результаты лабораторных исследований, жизненно важные показатели с еженедельными тенденциями и маркерами до/после лечения, симптомы, временная шкала и документы. Каждый элемент несетauthor_typeиsource.omitted— что не вписалось в бюджет; сообщите модели, что ее контекст является частичным.warnings,provenance_note.text— когдаformatявляетсяtext.manifest_id— запись о том, какие разделы и источники были использованы, привязанная к журналу доступа.- раздел
ai_notes— значения, написанные ИИ ранее, появляются только там, отмеченные как непроверенные, никогда не смешиваются с клиническими разделами.
Облачные модели
При использовании размещенной модели — от OpenAI, Anthropic, Google, xAI или другого поставщика — ваш бэкенд помещает контекст в запрос и вызывает API поставщика. Контекст покидает вашу инфраструктуру и передается этому поставщику, поэтому:
- убедитесь, что согласие пациента и ваше уведомление о конфиденциальности охватывают отправку данных поставщику;
- заключите с поставщиком соглашение об обработке данных, соответствующее медицинским данным;
- отправляйте только то, что необходимо для задачи — бюджет токенов и явные
needsпомогут в этом.
Локальные модели
При использовании модели, которую вы запускаете самостоятельно — например, через Ollama или другой локальный runtime — единственным сетевым вызовом, передающим данные пациента, является вызов между вашим бэкендом и Anpheros; запрос и ответ остаются в вашей инфраструктуре. Меньшие локальные модели имеют меньшие контекстные окна: соответственно, ниже budget_tokens и предпочтительнее format: "text".
Агентные системы
Когда модель решает, какие вызовы совершать, предоставьте ей инструменты (контекст, поиск, временная шкала) вместо необработанных учетных данных, сузьте области действия и регистрируйте каждый manifest_id рядом с ответом. AI-агенты и медицинские данные
API контекста или собственный поиск?
Конвейер поиска по свободному тексту (создание эмбеддингов фрагментов документов и их поиск) полезен для неструктурированных заметок. Для структурированных медицинских данных API контекста обычно проще и безопаснее: он работает с кодированными ресурсами FHIR, сохраняет происхождение данных, знает о тенденциях и периодах лечения, уважает согласие и проходит аудит. Эти два подхода можно комбинировать — например, контекст из Anpheros плюс найденные фрагменты из управляемых вами документов.
Промптинг с указанием происхождения данных
Сохраняйте метки в промпте и объясните модели, что они означают:
The context below comes from the patient's record. Each item is labelled with its author type
(patient, practitioner, device, import, derived) and source. Items under ai_notes were written by an
AI earlier and are not verified. Say which items your answer relies on. If the context is marked as
partial, say so. Do not give a diagnosis or change a treatment; suggest discussing it with a clinician.
Связанные материалы
- Приложения ИИ в здравоохранении
- Агенты ИИ и медицинские данные
- Как создать медицинский чат-бот со структурированными данными
- Безопасность, конфиденциальность и местоположение данных
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card