Indeks vektor yang kami bangun, ukur, lalu matikan
Platform AI generatif terkelola untuk lembaga keuangan teregulasi: persetujuan konten empat mata, pengambilan informasi yang dibatasi per divisi, dan tumpukan pengambilan informasi yang dibentuk ulang oleh pengukuran.
Detail klien dihapus
Pekerjaan ini dilindungi perjanjian kerahasiaan. Klien, produk, vendor, dan informasi lain yang dapat mengidentifikasi pihak terkait sengaja dihapus atau digeneralisasi. Semua uraian tentang masalah, rekayasa, dan hasilnya tetap berdasarkan pekerjaan nyata.

Ringkasan eksekutif
Sebuah lembaga keuangan teregulasi membutuhkan asisten AI generatif yang dapat disetujui oleh fungsi risikonya. Bagian tersulitnya tidak pernah terletak pada modelnya. Yang sulit adalah membuktikan siapa boleh bertanya apa, dokumen mana yang boleh menjadi dasar sebuah jawaban, dan siapa yang menyetujui dokumen itu untuk ditampilkan. Kami membangun platform dengan tiga permukaan (backend pemasukan dan pengambilan informasi, asisten karyawan, serta konsol tata kelola) yang menjadikan model kontrol maker-checker milik lembaga tersebut sebagai arsitekturnya, bukan sekadar lapisan tambahan di atasnya. Di tengah jalan, studi pengambilan informasi luring membalikkan rancangan awal: tumpukan hibrida vektor dan kata kunci kalah oleh pencarian kata kunci biasa atas ringkasan halaman yang dihasilkan model, dan kami merilis yang lebih sederhana.
Konteks bisnis
Lembaga ini bekerja di bawah ekspektasi pengawasan yang memandang jawaban otomatis yang tidak dapat dijelaskan sebagai jawaban yang tidak dapat diterima. Pengetahuannya tersimpan dalam dokumen yang panjang dan padat format: kebijakan, prosedur, ketentuan produk, dan pengungkapan, penuh tabel, grafik, serta bagian berhalaman banyak yang hanya halaman pertamanya memuat judul. Dokumen-dokumen itu dimiliki divisi yang berbeda, dan materi satu divisi tidak otomatis dapat dibaca bagian organisasi lainnya. Asisten apa pun harus menghormati batas itu di dalam proses pengambilan informasi, bukan sekadar di antarmuka, dan setiap dokumen yang sampai ke asisten harus sudah disetujui oleh orang lain selain pengunggahnya. Karyawan juga bekerja dalam dua bahasa, sehingga pertanyaan yang sama datang dalam dua bahasa dan harus sampai pada bukti yang sama.
Tantangan
Karyawan tidak dapat menemukan apa yang sebenarnya sudah diketahui lembaganya. Jawabannya ada, tersimpan di dokumen kebijakan dan produk yang panjang dan dimiliki divisi yang berbeda-beda, tetapi menemukannya berarti harus tahu dokumen mana yang dibuka dan membaca melewati tabel serta grafik. Solusi yang paling jelas, yaitu asisten atas seluruh korpus, justru satu-satunya hal yang tidak akan disetujui fungsi risiko: tidak dapat ditunjukkan siapa yang boleh melihat dokumen mana, siapa yang menyetujui dokumen itu, dan dari mana asal sebuah kalimat dalam jawaban. Asisten yang tidak bisa menjawab tiga pertanyaan itu tidak layak diluncurkan, sebagus apa pun jawabannya.
Sasaran
- Menjawab hanya dari dokumen internal yang telah disetujui, dengan sitasi di balik setiap klaim
- Menegakkan batas divisi di dalam mesin pengambilan informasi, bukan hanya di antarmuka
- Mewajibkan pemeriksa kedua sebelum sebuah dokumen dapat dijadikan dasar jawaban
- Memungkinkan administrator mereproduksi persis apa yang dilihat pengguna akhir
- Menjaga belanja tetap terbatas dan dapat diatribusikan ke satu divisi
- Mengindeks dokumen panjang dan padat gambar tanpa perlu diawasi manusia
Arsitektur solusi
Kami membagi platform mengikuti garis yang memang sudah dipakai lembaga itu untuk mengatur dirinya. pemasukan mengubah dokumen menjadi unit halaman yang dapat diambil dan dilacak asalnya. pengambilan informasi adalah alat yang dipanggil agen dengan argumen yang tidak boleh dipilih sendiri oleh agen: identitas dan cakupan divisi disuntikkan di sisi server pada setiap panggilan. Keputusan adalah tempat model maker-checker berada, dengan bentuk yang sama seperti saat mengatur hal lain. Konsolnya ada agar administrator dapat mereproduksi persis tampilan pengguna akhir, karena "di tempat saya berhasil" bukan jawaban yang diterima fungsi risiko.
Alur ujung ke ujung
- Pengguna
Pemilik divisi mengunggah dokumen
- Sistem
Format dan tipe diperiksa silang, lalu disimpan secara tak berubah
Tipe yang dideklarasikan dan berkasnya sendiri harus cocok sebelum apa pun berjalan, karena berkas yang salah label baru gagal jauh kemudian dan jauh lebih mahal.
- Sistem
Orkestrasi tahan-lama mengambil alih pekerjaan panjang
Mengindeks dokumen ratusan halaman berjalan beberapa menit, jauh melewati batas waktu permintaan, sehingga prosesnya keluar sepenuhnya dari jalur permintaan.
- Sistem
Halaman dirender berurutan dan dibaca secara paralel
Perendernya tidak aman untuk banyak utas, sedangkan pengenalan karakter terikat jaringan, sehingga dua paruh dari batch yang sama berjalan dengan model konkurensi berbeda.
- AI
Model visual meringkas tiap halaman dalam konteks bagiannya
Halaman empat puluh tujuh merujuk gambar di atas, sementara gambarnya ada di halaman empat puluh enam, jadi halaman dikirim ke model bersama-sama dalam satu bagian dan tidak pernah lintas bagian.
- Sistem
Ringkasan dan potongan ditulis ke indeks pencarian
- Tinjauan manusia
Pemeriksa kedua menerbitkan dokumen
Sampai seseorang selain pengunggah menyetujuinya, dokumen itu ada tetapi tidak dapat diambil.
- Pengguna
Karyawan mengajukan pertanyaan
- AI
Agen menulis ulang pertanyaan menjadi beberapa kueri
Kueri pertama selalu berupa pertanyaan apa adanya, dan setiap kueri dibuat dalam dua bahasa kerja, karena jawaban yang sama bisa tersimpan dalam salah satu bahasa itu.
- Sistem
pengambilan informasi, perangkingan ulang, dan jawaban bersitasi mengalir kembali
Cakupan diterapkan sebagai filter di dalam kuerinya sendiri, sehingga apa yang dapat dilihat mesin pengambilan informasi ditentukan sebelum model melihat apa pun.
Tantangan dan keputusan rekayasa
Kami membangun indeks vektor, mengukurnya, lalu berhenti mengkuerinya
Mesin pengambilan informasi pertama adalah yang biasa diharapkan: pencarian hibrida kata kunci dan vektor dengan reciprocal rank fusion. Studi luring atas pertanyaan nyata menunjukkan kaki vektornya justru merugikan. Halaman yang berdekatan secara semantik tetapi salah topik terus menggeser halaman yang benar, karena dalam korpus yang setiap halamannya memakai kosakata institusional yang sama, kemiripan penyematan lebih banyak mengukur apakah dua halaman berjenis dokumen yang sama, bukan apakah salah satunya menjawab pertanyaan.
Keputusan
Lakukan pengambilan informasi dengan pencarian kata kunci atas ringkasan halaman yang dihasilkan model, bukan atas teks mentahnya. Ringkasan itu ditulis saat pemasukan agar terstruktur rapi dan padat kata kunci, yang justru dihargai oleh mesin pencocokan istilah. Alur pemasukan berhenti menjadi sekadar langkah prapemrosesan dan berubah menjadi hal yang menghasilkan permukaan pengambilan informasi itu sendiri.
Konsekuensi
Indeksnya masih mendefinisikan dan mengisi tiga bidang vektor yang tidak dikueri siapa pun. Kami mempertahankannya daripada menjalankan migrasi demi penyimpanan yang biayanya tidak signifikan, dan karena hasil pengukuran bisa berubah. Membawa bidang yang tak terpakai lebih murah daripada berpura-pura studinya mengatakan hal lain.
Tata kelola harus menjadi arsitekturnya, bukan lapisan di atasnya
Maker-checker adalah cara lembaga ini mengatur segala hal, dan sistem AI yang hanya menempelkan persetujuan di pinggirannya pasti akan ditolak. Bagian yang lebih sulit adalah pengambilan informasi: antarmuka yang menyembunyikan dokumen divisi lain bukanlah kontrol, karena model tetap bisa diminta meringkas apa yang baru saja dibacanya.
Keputusan
Empat pemeriksaan otorisasi yang independen, dengan lapisan terdalam membaca ulang izin pemanggil dari basis data pada setiap tindakan istimewa alih-alih memercayai token sesi, sehingga peran yang dicabut langsung berhenti berlaku, bukan menunggu masuk berikutnya. Cakupan divisi disusun menjadi filter di dalam kueri pengambilan informasi itu sendiri, sehingga upaya penyisipan prompt tidak dapat memperluas apa yang bisa dilihat mesin pengambilan informasi.
Konsekuensi
Empat pemeriksaan berarti empat tempat yang harus dijaga tetap selaras, dan keempatnya akan menyimpang bila tidak diawasi. Visibilitas menu didokumentasikan secara gamblang sebagai bukan batas keamanan, justru agar tidak ada kontributor di kemudian hari yang mengira tautan tersembunyi sama dengan izin yang ditegakkan.
Dokumen panjang gagal di tengah jalan, dan sistem harus menyadarinya
Mengindeks dokumen ratusan halaman berarti orkestrasi selama beberapa menit di sejumlah pekerja paralel. Perendernya tidak aman untuk banyak utas, modelnya butuh halaman sebelumnya untuk memahami rujukan ke gambar di atas, dan pekerjaan bisa mati: pekerja dimulai ulang, layanan hulu tersendat, atau kode orkestratornya berubah saat sebuah instans masih berjalan.
Keputusan
Render secara berurutan dan baca secara paralel. Paralelkan antarbagian dokumen tetapi tetap berurutan di dalam satu bagian, sehingga konteks mengalir maju tepat di tempat yang penting saja, dengan halaman benih bertumpang tindih yang membawa konteks melewati pemisahan yang sembarang. Lalu satu putaran rekonsiliasi setiap sepuluh menit membandingkan keadaan orkestrasi dengan basis data dan memperbaiki selisihnya, dan percobaan ulang melanjutkan dari halaman terakhir yang benar-benar masuk indeks, bukan dari awal.
Konsekuensi
Perekonsiliasi hanya menyapu pekerjaan yang tersendat ketika ia dapat memastikan apa yang sedang berjalan. Jika ia tidak dapat menghubungi API orkestrasi, ia tidak melakukan apa pun, karena menandai pekerjaan yang sehat sebagai gagal lebih buruk daripada menandainya terlambat.
Model bertugas menyusun, bukan memutuskan
Prompt sistem yang dapat disunting penyewa adalah kebutuhan nyata sekaligus permukaan serangan yang nyata. Divisi perlu mengatur nada, cakupan, dan perilaku penolakan, tetapi bidang yang sama juga tempat paling jelas untuk mencoba membujuk sistem melanggar aturannya sendiri, dan model penalaran menambah masalah kedua: pertimbangan internalnya datang dalam aliran token yang sama dengan jawabannya.
Keputusan
Prompt penyewa boleh mengubah nada, cakupan, dan perilaku penolakan, tetapi kontrak pembuatan kueri bersifat tetap dan dinyatakan demikian: kueri pertama selalu berupa pertanyaan pengguna apa adanya, dan setiap kueri dibuat dalam dua bahasa kerja. Identitas dan divisi ditimpa di sisi server pada setiap panggilan alat, sehingga model tidak pernah memasok cakupannya sendiri. Sebuah mesin keadaan aliran memisahkan pertimbangan tersembunyi dari teks yang terlihat pengguna dengan menahan bagian akhir penyangga yang mungkin merupakan awal sebuah tanda tersembunyi.
Konsekuensi
Gerbang belanja gagal terbuka. Jika layanan kuota tidak dapat dihubungi, pertanyaannya tetap diteruskan, karena menolak pengguna yang sah gara-gara kegagalan telemetri adalah hasil yang lebih buruk, dan selisihnya direkonsiliasi kemudian. Ini asimetri yang disengaja: pemeriksaan akses gagal tertutup, pemeriksaan anggaran tidak.
Hasil dan pelajaran
- 0 of 3Bidang vektor yang dikueri di produksi
- -75%Biaya permintaan kueri grup analitik
- 4Lapisan otorisasi independen
- 30%Konteks model yang dicadangkan untuk prompt platform
- 50Kandidat pengambilan informasi per pertanyaan
- 10 minInterval rekonsiliasi pengindeksan
Platform ini menjalankan tiga permukaan di atas satu inti yang terkelola. Setiap jawaban membawa sitasi yang mengarah ke halaman tertentu yang sudah disetujui, bukan sekadar ke dokumennya, sehingga pembaca dapat memeriksa kalimatnya, bukan sumbernya. Administrator dapat memutar ulang pertanyaan apa pun dengan cakupan pengambilan informasi persis milik pengguna akhir, yang mengubah perdebatan soal kebenaran jawaban menjadi kasus yang dapat direproduksi.
Hasil yang bertahan lama bukanlah asistennya. Yang bertahan adalah bahwa persetujuan, cakupan, dan belanja menjadi sifat bawaan sistem, bukan sekadar janji tentang sistem. Masing-masing ditegakkan di tempat yang dapat ditunjuk seorang peninjau, dan itulah yang membuat asisten ini layak disetujui, sekaligus membuat pergantian model berikutnya menjadi perubahan konfigurasi, bukan penilaian risiko dari nol.
Pelajaran yang dipetik
- Ukur pengambilan informasi sebelum menganggap penyematan pantas ada di sana
- Tulis teks yang memang ingin Anda temukan, lalu cari di teks itu
- Identitas dan cakupan seharusnya ada di panggilan alat, bukan di prompt
- Paralelkan antarbagian, tetap berurutan di dalamnya
- Putaran rekonsiliasi mengalahkan penanganan galat yang cermat untuk pekerjaan panjang
- Tentukan sejak awal gerbang mana yang gagal terbuka dan mana yang gagal tertutup
Pertimbangan produksi
Rahasia diambil dari brankas terkelola saat proses dimulai dan diperiksa ulang pada interval singkat, dengan klien yang bergantung padanya dibangun ulang di tempat, sehingga rotasi tidak memerlukan penerapan ulang. Setiap permintaan menulis peristiwa terstruktur berkunci id korelasi, dan itulah yang membuat belanja dapat diatribusikan per divisi, bukan hanya secara agregat. Sesi bergeser mengikuti aktivitas dengan batas mutlak, sehingga workstation yang menganggur keluar sendiri tanpa menghukum sesi kerja yang panjang. Uji penetrasi mendorong penataan header keamanan, dan kebijakan keamanan kontennya sengaja melarang peramban memanggil backend AI secara langsung: semua panggilan melewati server aplikasi sendiri, tempat identitas dilekatkan.
Yang akan kami lakukan berikutnya
Perangking ulang sudah membuat penilaian relevansi pada setiap pertanyaan yang dilihatnya, dan penilaian itu dibuang begitu saja. Menangkapnya akan mengubah pendapat yang tersirat menjadi kumpulan evaluasi berlabel, dan itulah kepingan yang hilang untuk memutuskan apakah kaki vektor layak dikembalikan alih-alih diperdebatkan. Utas kedua adalah memindahkan persetujuan lebih dekat ke pemasukan, sehingga dokumen yang akan ditolak tidak pernah masuk indeks sama sekali, bukan diindeks lalu ditahan. Utas ketiga adalah mempersempit jarak antara apa yang dibuang perangking ulang dan apa yang sebenarnya diinginkan pembaca, yang hari ini hanya terlihat lewat umpan balik negatif yang datang belakangan.
Teknologi
10- Azure AI Search
- Azure Document Intelligence
- Azure Durable Functions
- Cosmos DB
- Azure Blob Storage
- Azure Key Vault
- Microsoft Entra ID
- LangGraph
- FastAPI
- Next.js
