Rumah  >  Artikel  >  pembangunan bahagian belakang  >  d[IA]gnosis: membangunkan aplikasi RAG dengan IRIS for Healt

d[IA]gnosis: membangunkan aplikasi RAG dengan IRIS for Healt

WBOY
WBOYasal
2024-08-29 06:32:351208semak imbas

Dengan pengenalan jenis data vektor dan fungsi Carian Vektor dalam IRIS, seluruh dunia kemungkinan terbuka untuk pembangunan aplikasi dan contoh aplikasi ini adalah yang baru-baru ini saya lihat diterbitkan dalam pertandingan awam oleh Kementerian Kesihatan dari Valencia di mana mereka meminta alat untuk membantu dalam pengekodan ICD-10 menggunakan model AI.

Bagaimanakah kami boleh melaksanakan aplikasi yang serupa dengan yang diminta? Mari lihat apa yang kita perlukan:

  1. Senarai kod ICD-10, yang akan kami gunakan sebagai konteks untuk aplikasi RAG kami untuk mencari diagnosis dalam teks biasa.
  2. Model terlatih yang mengvektorkan teks yang mana kita akan mencari persamaan dalam kod ICD-10.
  3. Perpustakaan Python yang diperlukan untuk pengingesan dan vektorisasi kod dan teks ICD-10.
  4. Halaman hadapan mesra yang menyokong teks yang kami cari untuk kemungkinan diagnosis.
  5. Orkestrasi permintaan yang diterima daripada bahagian hadapan.

Apakah yang IRIS sediakan kepada kami untuk menampung keperluan di atas?

  1. Import CSV, sama ada menggunakan fungsi RecordMapper atau terus menggunakan Python Terbenam.
  2. Python Terbenam membolehkan kami melaksanakan kod Python yang diperlukan untuk menjana vektor menggunakan model yang dipilih.
  3. Terbitkan REST API yang akan digunakan daripada aplikasi bahagian hadapan.
  4. Pengeluaran kebolehoperasian yang membenarkan penjejakan maklumat dalam IRIS.

Nah, kita hanya perlu melihat contoh yang dibangunkan:

d[IA]gnosis

Berkaitan dengan artikel ini, anda mempunyai akses kepada aplikasi yang dibangunkan, dalam artikel seterusnya kami akan melihat secara terperinci bagaimana kami melaksanakan setiap fungsi, daripada penggunaan model, penyimpanan vektor dan penggunaan carian vektor .

Jom semak permohonan:

Mengimport kod ICD-10

d[IA]gnosis: developing RAG applications with IRIS for Healt

Dari skrin konfigurasi kami diberitahu format bahawa fail CSV mesti mematuhi kod ICD-10 yang akan kami import. Proses pemuatan dan vektorisasi memakan banyak masa dan sumber, itulah sebabnya penggunaan bekas Docker mengkonfigurasi bukan sahaja memori RAM yang boleh digunakan oleh Docker tetapi juga memori cakera sekiranya keperluan melebihi RAM yang diperuntukkan:

  # iris
  iris:
    init: true
    container_name: iris
    build:
      context: .
      dockerfile: iris/Dockerfile
    ports:
      - 52774:52773
      - 51774:1972
    volumes:
    - ./shared:/shared
    environment:
    - ISC_DATA_DIRECTORY=/shared/durable
    command: --check-caps false --ISCAgent false
    mem_limit: 30G
    memswap_limit: 32G

Fail dengan kod ICD-10 tersedia dalam laluan projek /shared/cie10/icd10.csv, sebaik sahaja 100% dicapai, aplikasi akan sedia untuk digunakan.

Dalam aplikasi kami, kami telah menentukan dua fungsi berbeza untuk pengekodan diagnostik, satu berdasarkan mesej HL7 yang diterima dalam sistem dan satu lagi berdasarkan teks biasa.

Tangkapan diagnostik daripada HL7

Projek ini mengandungi beberapa mesej HL7 yang disediakan untuk ujian, ia hanya perlu menyalin fail /shared/hl7/messagesa01_en.hl7 ke folder /shared/HL7In dan pengeluaran yang berkaitan akan bertanggungjawab untuk mengekstrak diagnosis daripadanya untuk memaparkannya dalam aplikasi web:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Dari skrin permintaan diagnosis kita boleh melihat semua diagnosis yang diterima melalui pemesejan HL7. Untuk mengekodkannya kepada ICD-10, kita hanya perlu klik pada kaca pembesar untuk menunjukkan senarai kod ICD-10 yang paling hampir dengan diagnosis yang diterima:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Setelah dipilih, kami akan melihat diagnosis dan kod ICD-10 yang berkaitan dalam senarai. Dengan mengklik pada butang dengan ikon sampul surat, mesej akan dijana menggunakan yang asal dan termasuk yang baharu yang dipilih dalam segmen diagnosis:

MSH|^~\&|HIS|HULP|EMPI||||ADT^A08|592956|P|2.5.1
EVN|A01|
PID|||1556655212^^^SERMAS^SN~922210^^^HULP^PI||GARCÍA PÉREZ^JUAN^^^||20150403|M|||PASEO PEDRO ÁLVAREZ 195 1 CENTRO^^LEGANÉS^MADRID^28379^SPAIN||555283055^PRN^^JUAN.GARCIA@YAHOO.COM|||||||||||||||||N|
PV1||N
DG1|1||O10.91^Unspecified pre-existing hypertension complicating pregnancy^CIE10-ES|Gestational hypertension||A||

Mesej ini boleh ditemui dalam laluan /shared/HL7Out

Tangkapan skrin diagnosis dalam teks biasa

Daripada pilihan Penganalisis Teks, pengguna boleh memasukkan teks biasa yang mana proses analisis akan dijalankan. Aplikasi akan mencari dalam tupel 3 perkataan yang dilemmatiskan (menghapuskan rencana, kata ganti nama dan perkataan lain yang kurang relevan). Setelah dianalisis, sistem akan menunjukkan kepada kami teks bergaris bawah yang berkaitan dan kemungkinan diagnosis yang ditemui:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Setelah analisis telah dijalankan, ia boleh dirujuk pada bila-bila masa daripada sejarah analisis.

Sejarah analisis

Semua analisis yang dijalankan direkodkan dan boleh dirujuk pada bila-bila masa, dapat melihat semua kemungkinan kod ICD-10 yang tersedia:

Dalam artikel seterusnya...

Kami akan melihat bagaimana, menggunakan Embedded Python, kami menggunakan model LLM khusus untuk vektorisasi kedua-dua kod ICD-10 yang akan kami gunakan sebagai konteks dan teks percuma.

Jika anda mempunyai sebarang soalan atau cadangan, jangan teragak-agak untuk menulis ulasan pada artikel tersebut.

Atas ialah kandungan terperinci d[IA]gnosis: membangunkan aplikasi RAG dengan IRIS for Healt. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn