Rumah > pembangunan bahagian belakang > Tutorial Python > Membina Aplikasi AI dengan Keselamatan Gred Perusahaan Menggunakan RAG dan FGA

Membina Aplikasi AI dengan Keselamatan Gred Perusahaan Menggunakan RAG dan FGA

Mary-Kate Olsen
Lepaskan: 2024-11-19 11:00:03
asal
245 orang telah melayarinya

Siaran ini ditulis oleh Bartosz Pietrucha

pengenalan

Membina aplikasi LLM gred perusahaan adalah satu keperluan dalam persekitaran perniagaan masa kini. Walaupun kebolehcapaian model dan API semakin bertambah baik, satu cabaran penting kekal: memastikan keselamatan mereka dan mengurus kebenaran mereka dengan berkesan.

Untuk menangani perkara ini, Keizinan Berbutir Halus (FGA) dan Retrieval Augmented Generation (RAG) ialah strategi yang berkesan untuk membina aplikasi AI yang selamat dan peka konteks yang mengekalkan kawalan akses yang ketat. Dalam artikel ini, kami akan meneroka cara FGA dan RAG boleh digunakan dalam tetapan penjagaan kesihatan sambil melindungi data sensitif.

Kami akan melakukan ini dengan membimbing anda melalui pelaksanaan sistem kebenaran Kawalan Akses Berasaskan Perhubungan (ReBAC) yang menyokong kemas kini masa nyata dengan tiga alatan: AstraDB, Langflow dan Permit.io.

Contoh Kes Penggunaan: Aplikasi Penjagaan Kesihatan

Untuk lebih memahami kerumitan kebenaran dalam aplikasi LLM, dan penyelesaian yang ditawarkan oleh FGA dan RAG, kita boleh melihat ruang penjagaan kesihatan digital - kerana ia memberikan contoh sempurna di mana keupayaan AI dan keselamatan yang ketat adalah penting. Penyedia penjagaan kesihatan semakin mahu memanfaatkan LLM untuk menyelaraskan aliran kerja, menambah baik pembuatan keputusan dan menyediakan penjagaan pesakit yang lebih baik. Doktor dan pesakit sama-sama mahukan akses mudah kepada rekod perubatan melalui antara muka AI intuitif seperti chatbots.

Walau bagaimanapun, data perubatan adalah sangat sensitif dan harus dikawal dengan teliti. Walaupun LLM boleh memberikan cerapan pintar, kami mesti memastikan ia hanya mengakses dan mendedahkan maklumat yang dibenarkan untuk dilihat oleh pengguna. Doktor, sebagai contoh, hanya perlu melihat diagnosis daripada pusat perubatan yang ditetapkan dan pesakit hanya boleh mengakses rekod mereka sendiri.

Keselamatan Melalui Keizinan Berbutir Halus

Teruskan dengan contoh penjagaan kesihatan digital, mari lihat contoh aplikasi perubatan.

Aplikasi ini terdiri daripada beberapa sumber, beberapa peranan dan beberapa hubungan antara entiti ini:

  1. Jenis Sumber :

    • Pusat Perubatan (cth., London, Warsaw)
    • Lawatan (cth., Lawatan Pagi, Lawatan Petang)
    • Diagnosa (cth., Diabetes, Sakit Kepala, Virus)
  2. Peranan :

    • Doktor (cth., Dr Bartosz)
    • Pesakit (cth., Gabriel, Olga)
  3. Hubungan :

    • Doktor ditugaskan ke Pusat Perubatan
    • Lawatan adalah milik Pusat Perubatan
    • Diagnosis adalah sebahagian daripada Lawatan
    • Pesakit disambungkan ke Lawatan mereka

Seperti yang anda lihat, perhubungan hierarki sumber kami bermakna melaksanakan kawalan akses berasaskan peranan tradisional, di mana kebenaran diberikan secara langsung, tidak akan mencukupi.

Kerumitan kebenaran aplikasi ini memerlukan kami menggunakan penyelesaian kebenaran yang lebih terperinci (FGA) - dalam kes ini, Kawalan Akses Berasaskan Perhubungan (ReBAC).

ReBAC, model keizinan yang diilhamkan oleh kertas Zanzibar Google, memperoleh kebenaran daripada perhubungan antara entiti dalam sistem - tidak seperti kawalan akses berasaskan peranan tradisional (RBAC), di mana kebenaran diberikan secara langsung.

Kuasa ReBAC terletak pada cara kebenaran diperoleh melalui perhubungan ini. Mari lihat perwakilan visual contoh kami:

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

Dalam contoh di atas, Dr Bartosz mempunyai akses kepada diagnosis Virus bukan kerana kebenaran yang diberikan secara langsung tetapi sebaliknya kerana dia ditugaskan ke Pusat Perubatan Warsaw, yang mengandungi Lawatan Petang, yang mengandungi diagnosis . Oleh itu, hubungan antara sumber ini membentuk rantaian yang membolehkan kami memperoleh kebenaran akses.

Terdapat faedah yang jelas untuk menggunakan pendekatan ini:

  • Ia memodelkan struktur organisasi dunia sebenar secara semula jadi
  • Kebenaran menyesuaikan diri secara automatik apabila perhubungan berubah
  • Ia menyediakan kawalan halus sambil kekal berskala

Tetapi cabaran itu tidak berakhir di situ - kerana kami sedang membina sistem yang perlu berfungsi dengan LLM, ia perlu mempunyai keupayaan untuk menilai rantai perhubungan ini dalam masa nyata. Dalam bahagian seterusnya, kita akan belajar cara membuat pelaksanaan yang membolehkannya.

Sebelum kami meneruskan, mari semak dengan pantas peraturan kebenaran yang kami ingin pastikan ada:

  1. Hanya doktor yang mempunyai hubungan yang sah dengan pusat perubatan boleh melihat lawatannya
  2. Akses kepada diagnosis diperoleh secara automatik daripada perhubungan ini
  3. Perubahan dalam perhubungan (mis., penugasan semula doktor) serta-merta menjejaskan hak akses

Keperluan ini boleh dicapai melalui penggunaan Retrieval Augmented Generation (RAG).

Retrieval Augmented Generation (RAG)

RAG (Retrieval Augmented Generation) ialah teknik yang mempertingkatkan output LLM dengan menggabungkan dua langkah utama: pertama, mendapatkan maklumat yang berkaitan daripada pangkalan pengetahuan, dan kemudian menggunakan maklumat tersebut untuk menambah konteks LLM untuk penjanaan yang lebih tepat. Walaupun RAG boleh berfungsi dengan pangkalan data tradisional atau stor dokumen, pangkalan data vektor amat berkuasa untuk tujuan ini kerana ia boleh melakukan carian persamaan semantik, mencari maklumat berkaitan konsep walaupun kata kunci tepat tidak sepadan.

Dalam amalan, ini bermakna apabila pengguna bertanya tentang "masalah jantung," sistem boleh mendapatkan semula dokumen yang berkaitan tentang "isu jantung" atau "penyakit kardiovaskular," menjadikan respons LLM lebih tepat dan menyeluruh. Bahagian "penjanaan" kemudiannya melibatkan LLM yang mensintesis konteks yang diperoleh semula ini dengan pengetahuannya yang telah dilatih untuk menghasilkan respons fakta yang relevan yang berasaskan data khusus anda.

Untuk pelaksanaan kami, kami akan menggunakan AstraDB sebagai pangkalan data vektor kami. AstraDB menawarkan faedah berikut:

  • Ia menyimpan dan mencari dengan cekap melalui pembenaman
  • Ia berskala baik dengan data yang semakin meningkat
  • Ia terintegrasi dengan baik dengan rantaian LLM seperti Langflow (yang akan kami bincangkan kemudian dalam artikel)

Untuk melaksanakan saluran paip RAG kami, kami juga akan menggunakan LangFlow, rangka kerja sumber terbuka yang menjadikan pembinaan sistem ini intuitif melalui antara muka visualnya. Sistem LangFlow boleh dibangunkan dengan persekitaran Python yang dijalankan secara tempatan atau dalam platform DataStax yang dihoskan awan. Dalam kes kami, kami memilih pilihan kedua dengan mencipta pangkalan data AstraDB tanpa pelayan (vektor) di bawah: https://astra.datastax.com

Dalam pelaksanaan kami, semakan kebenaran harus berlaku pada saat yang penting - selepas mendapatkan semula data daripada pangkalan data vektor tetapi sebelum memberikannya kepada LLM sebagai konteks. Dengan cara ini, kami mengekalkan kecekapan carian dengan terlebih dahulu mencari semua maklumat yang berkaitan dan kemudian menapis data yang tidak dibenarkan sebelum ia sampai ke LLM. LLM hanya boleh menggunakan dan mendedahkan maklumat yang dibenarkan untuk dilihat oleh pengguna.

Semakan keselamatan ini dilaksanakan menggunakan Permit.io, yang menyediakan infrastruktur untuk menilai rantai perhubungan yang kompleks dalam masa nyata. Apabila data anda berkembang dan hubungan menjadi lebih kompleks, sistem terus memastikan bahawa setiap maklumat hanya boleh diakses oleh mereka yang mempunyai kebenaran yang betul.

Untuk bermula dengan Permit, anda boleh membuat akaun percuma dengan mudah dengan melawati tapak web di https://app.permit.io. Setelah akaun percuma anda dibuat, anda akan mempunyai akses kepada papan pemuka Permit, tempat anda boleh menyediakan dasar kebenaran anda, mengurus pengguna dan peranan serta menyepadukan Permit ke dalam aplikasi anda. Peringkat percuma menawarkan semua ciri yang diperlukan untuk mencipta contoh penjagaan kesihatan digital dengan kawalan akses berasaskan perhubungan (ReBAC).

Kedua-dua LangFlow dan Permit menawarkan akaun percuma untuk mula bekerja, jadi anda tidak perlu membayar apa-apa untuk membina sistem sedemikian dan melihat sendiri cara ia berfungsi.

Panduan Pelaksanaan

Sebelum kita menyelami butiran pelaksanaan, adalah penting untuk memahami alat yang akan kita gunakan - Langflow. Dibina di atas LangChain, Langflow ialah rangka kerja sumber terbuka yang memudahkan penciptaan aplikasi LLM yang kompleks melalui antara muka visual. LangChain menyediakan asas yang teguh dengan menawarkan komponen piawai untuk operasi LLM biasa seperti pemisahan teks, penjanaan benam dan dorongan rantaian pemikiran. Komponen ini boleh dipasang menjadi saluran paip berkuasa yang mengendalikan segala-galanya daripada pengingesan data kepada penjanaan tindak balas.

Apa yang menjadikan Langflow amat berharga untuk kes penggunaan kami ialah antara muka pembina visualnya, yang membolehkan kami membina saluran paip ini dengan menyambungkan komponen secara grafik - sama seperti cara anda melukis carta alir. Pendekatan visual ini menjadikannya lebih mudah untuk memahami dan mengubah suai aliran data melalui aplikasi kami, daripada input pengguna awal kepada respons akhir yang dibenarkan. Selain itu, sifat sumber terbuka Langflow bermakna ia percuma untuk digunakan dan boleh dilanjutkan dengan komponen tersuai, yang penting untuk melaksanakan semakan kebenaran kami.

Penyelesaian Langflow kami memanfaatkan dua aliran berbeza namun saling berkaitan untuk menyediakan akses selamat kepada maklumat perubatan:

1. Aliran Pengingesan

Aliran pengingesan bertanggungjawab untuk memuatkan diagnosis ke dalam AstraDB bersama-sama dengan pembenaman masing-masing. Kami menggunakan MistralAI untuk menjana benam bagi setiap diagnosis, membolehkan anda melakukan carian semantik pada data diagnosis kemudian. Komponen utama yang terlibat dalam aliran ini ialah:

  • Buat Senarai: Komponen ini digunakan untuk mencipta senarai diagnosis untuk diserap ke dalam AstraDB.
  • Pembenaman MistralAI : Komponen ini menjana pembenaman untuk setiap diagnosis, yang disimpan dalam AstraDB.
  • AstraDB : AstraDB berfungsi sebagai stor vektor di mana diagnosis dan benamnya disimpan untuk mendapatkan semula selanjutnya. Building AI Applications with Enterprise-Grade Security Using RAG and FGA

2. Aliran Sembang

Aliran sembang bertanggungjawab untuk berinteraksi dengan pengguna dan memberikan mereka data diagnosis yang diperlukan. Imej di bawah sepatutnya dibaca dari kiri ke kanan (sebelah kanan yang pertama diteruskan sebagai sebelah kiri yang kedua):

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

? Nota: Terdapat tambahan “_ Pemasangan Pip” _ komponen yang dilaksanakan sekali sahaja untuk memasang modul permit. Ini kerana kami melaksanakan LangFlow pada platform kod rendah DataStax. Langkah ini bersamaan dengan melaksanakan permit pemasangan pip secara tempatan.

Jujukan operasi dalam Aliran Sembang adalah seperti berikut:

  1. Input Pengguna : Pengguna memulakan interaksi dengan menaip pertanyaan.
  • Contoh: "Adakah kita mempunyai pesakit yang menghidap diabetes?"
  1. Dapatkan Diagnosa : AstraDB disoal untuk diagnosis yang berkaitan berdasarkan input pengguna.
  • Contoh hasil carian (ditandakan dengan 1 pada imej aliran di atas):

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

  1. Tapis Data Berdasarkan Kebenaran : Sebelum menghantar respons kepada komponen pemprosesan seterusnya, mencipta konteks untuk LLM yang bertindak balas kepada pertanyaan awal, kami menapis diagnosis yang diambil menggunakan komponen PermitFilter tersuai untuk memastikan pengguna mempunyai hak untuk melihat setiap diagnosis.
  • Contoh hasil yang ditapis (ditandakan dengan 2 pada imej aliran di atas):

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

  1. Jana Respons : Setelah ditapis, diagnosis yang dibenarkan digunakan sebagai konteks untuk menjana respons untuk gesaan pengguna menggunakan MistralAI.
  • Contoh gesaan dengan konteks ditapis dengan langkah kebenaran:
Seasonal Migraine
Flu virus with high fever

---
You are a doctor's assistant and help to retrieve information about patients' diagnoses.
Given the patients' diagnoses above, answer the question as best as possible.
The retrieved diagnoses may belong to multiple patients.

Question: list all the recent diagnoses

Answer: 

Salin selepas log masuk

Komponen Penapis Permit

Untuk menjalankan komponen PermitFilter, yang memainkan peranan penting dalam pelaksanaan kami, kami memerlukan contoh larian Titik Keputusan Dasar (PDP) Permit. PDP bertanggungjawab untuk menilai dasar dan membuat keputusan sama ada tindakan tertentu dibenarkan untuk pengguna dan sumber tertentu. Dengan menguatkuasakan semakan kebenaran ini sebelum konteks mencapai model bahasa, kami menghalang kebocoran maklumat sensitif dan memastikan penguatkuasaan dasar kawalan akses.

Lihat Ia Bertindak

Pelaksanaan lengkap tersedia dalam Repositori GitHub kami, di mana anda akan dapati:

  • Komponen LangFlow tersuai
  • Kod penyepaduan Permit.io
  • Arahan persediaan terperinci
  • Contoh pertanyaan dan jawapan

Untuk mula berinteraksi dengan pembantu AI kami dengan semakan kebenaran dilaksanakan, kami hanya boleh memulakan taman permainan LangFlow. Dalam contoh di bawah, saya disahkan sebagai bartosz@health.app yang bermaksud saya hanya mempunyai akses kepada Lawatan-Lawatan Petang dan Petang tanpa Lawatan-Pagi dengan Diabetes. Ini bermakna LLM tidak mempunyai maklumat tentang diabetes dalam konteksnya.

Building AI Applications with Enterprise-Grade Security Using RAG and FGA

Kesimpulan

Menjamin akses kepada data penjagaan kesihatan yang sensitif sambil memanfaatkan keupayaan LLM adalah keutamaan dan cabaran. Dengan menggabungkan RAG dan kebenaran terperinci, kami boleh membina aplikasi AI yang pintar dan selamat. Manfaat utama ialah:

  • Respons peka konteks melalui RAG
  • Kawalan akses tepat melalui ReBAC
  • Pemodelan semula jadi perhubungan organisasi
  • Keselamatan berskala yang menyesuaikan diri dengan perubahan perhubungan

Menggunakan alatan seperti LangFlow dan Permit.io, penyedia penjagaan kesihatan boleh melaksanakan sistem kawalan akses berasaskan perhubungan yang bertindak balas secara dinamik kepada perubahan peranan dan perhubungan, memastikan data hanya boleh diakses oleh individu yang diberi kuasa. Dengan menyepadukan penyelesaian ini, organisasi penjagaan kesihatan boleh memanfaatkan AI secara berkesan untuk meningkatkan penjagaan pesakit tanpa menjejaskan keselamatan.

Atas ialah kandungan terperinci Membina Aplikasi AI dengan Keselamatan Gred Perusahaan Menggunakan RAG dan FGA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan