Bagikan melalui


Memulai: Mengobrol menggunakan data Anda sendiri (sampel Python)

Artikel ini memperlihatkan cara menyebarkan dan menjalankan Obrolan dengan sampel data Anda sendiri denganmenggunakan contoh kode untuk Python. Aplikasi obrolan sampel ini dibangun dengan Python, Azure OpenAI Service, dan Retrieval Augmented Generation (RAG) melalui Azure AI Search.

Aplikasi ini memberikan jawaban atas pertanyaan pengguna tentang manfaat karyawan di perusahaan fiktif. Ini menggunakan Retrieval-Augmented Generation (RAG) untuk mereferensikan konten dari file PDF yang disediakan, yang dapat mencakup:

  • Buku pegangan karyawan
  • Dokumen gambaran umum manfaat
  • Daftar peran dan harapan perusahaan

Dengan menganalisis dokumen-dokumen ini, aplikasi dapat merespons kueri bahasa alami dengan jawaban yang akurat dan relevan secara kontekstual. Pendekatan ini menunjukkan bagaimana Anda dapat menggunakan data Anda sendiri untuk mendukung pengalaman obrolan cerdas dan khusus domain dengan Azure OpenAI dan Azure AI Search.

Anda juga mempelajari cara mengonfigurasi pengaturan aplikasi untuk mengubah perilaku responsnya.

Setelah menyelesaikan langkah-langkah dalam artikel ini, Anda dapat mulai menyesuaikan proyek dengan kode Anda sendiri. Artikel ini adalah bagian dari seri yang memandu Anda membangun aplikasi obrolan dengan Azure OpenAI Service dan Azure AI Search. Artikel lain dalam seri ini meliputi:

Catatan

Artikel ini didasarkan pada satu atau beberapa templat aplikasi AI, yang berfungsi sebagai implementasi referensi yang dikelola dengan baik. Templat ini dirancang agar mudah disebarkan dan menyediakan titik awal yang andal dan berkualitas tinggi untuk membangun aplikasi AI Anda sendiri.

Contoh arsitektur aplikasi

Diagram berikut menunjukkan arsitektur sederhana aplikasi obrolan.

Diagram yang memperlihatkan arsitektur untuk sampel dari klien ke aplikasi obrolan back-end dengan sumber data.

Komponen utama arsitektur meliputi:

  • Aplikasi web yang menghosting antarmuka obrolan interaktif (biasanya dibangun dengan Python Flask atau JavaScript/React) dan mengirim pertanyaan pengguna ke backend untuk diproses.
  • Sumber daya Pencarian Azure AI yang melakukan pencarian cerdas atas dokumen terindeks (PDF, file Word, dll.) dan mengembalikan kutipan dokumen (potongan) yang relevan untuk digunakan sebagai respons.
  • Instans Layanan Azure OpenAI yang:
    • Mengonversi dokumen dan pertanyaan pengguna menjadi representasi vektor untuk pencarian kesamaan semantik.
    • Mengekstrak kata kunci penting untuk menyempurnakan kueri Pencarian Azure AI.
    • Mensintesis respons akhir menggunakan data dan kueri pengguna yang diambil.

Alur umum aplikasi obrolan adalah sebagai berikut:

  • Pengguna mengirimkan pertanyaan: Pengguna memasukkan pertanyaan bahasa alami melalui antarmuka aplikasi web.
  • Azure OpenAI memproses pertanyaan: Backend menggunakan Azure OpenAI untuk:
    • Hasilkan penyematan pertanyaan menggunakan model text-embedding-ada-002.
    • Secara opsional mengekstrak kata kunci untuk menyempurnakan relevansi pencarian
  • Pencarian Azure AI mengambil data yang relevan: Penyematan atau kata kunci digunakan untuk melakukan pencarian semantik atas konten terindeks (seperti, PDF) di Azure AI Search.
  • Gabungkan hasil dengan pertanyaan: Kutipan dokumen (potongan) yang paling relevan dikombinasikan dengan pertanyaan asli pengguna.
  • Azure OpenAI menghasilkan respons: Input gabungan diteruskan ke model GPT (seperti, gpt-35-turbo atau gpt-4), yang menghasilkan jawaban sadar konteks.
  • Respons dikembalikan kepada pengguna: Jawaban yang dihasilkan ditampilkan di antarmuka obrolan.

Prasyarat

Lingkungan kontainer pengembangan tersedia dengan semua dependensi yang diperlukan untuk menyelesaikan artikel ini. Anda dapat menjalankan kontainer pengembangan di GitHub Codespaces (di browser) atau secara lokal dengan menggunakan Visual Studio Code.

Untuk menggunakan artikel ini, Anda memerlukan prasyarat berikut:

  • GitHub Codespaces (disarankan)
  • Visual Studio Code
  • Langganan Azure. Buat akun gratis sebelum Anda mulai.

  • Izin akun Azure. Akun Azure Anda harus memiliki izin Microsoft.Authorization/roleAssignments/write. Peran seperti Administrator Akses Pengguna atau Pemilik memenuhi persyaratan ini.

  • Akses yang diberikan ke Azure OpenAI di langganan Azure Anda. Dalam kebanyakan kasus, Anda dapat membuat filter konten kustom dan mengelola tingkat keparahan dengan akses umum ke model Azure OpenAI. Pendaftaran untuk akses berbasis persetujuan tidak diperlukan untuk akses umum. Untuk informasi selengkapnya, lihat Fitur Akses Terbatas untuk layanan Azure AI.

  • Filter konten atau modifikasi penyalahgunaan (opsional). Untuk membuat filter konten kustom, mengubah tingkat keparahan, atau mendukung pemantauan penyalahgunaan, Anda memerlukan persetujuan akses formal. Anda dapat mengajukan permohonan akses dengan melengkapi formulir pendaftaran yang diperlukan. Untuk informasi selengkapnya, lihat Pendaftaran untuk filter konten yang dimodifikasi dan/atau pemantauan penyalahgunaan.

  • Akses dukungan dan pemecahan masalah. Untuk akses ke pemecahan masalah, buka masalah dukungan di repositori GitHub.

  • Akun GitHub. Diperlukan untuk mencabut repositori dan menggunakan GitHub Codespaces atau mengkloningnya secara lokal.

Biaya penggunaan untuk sumber daya sampel

Sebagian besar sumber daya yang digunakan dalam arsitektur ini termasuk dalam tingkat harga dasar atau berbasis konsumsi. Ini berarti Anda hanya membayar apa yang Anda gunakan, dan biaya biasanya minimal selama pengembangan atau pengujian.

Untuk menyelesaikan sampel ini, mungkin ada biaya kecil yang dikeluarkan dari penggunaan layanan seperti Azure OpenAI, AI Search, dan penyimpanan. Setelah selesai mengevaluasi atau menyebarkan aplikasi, Anda dapat menghapus semua sumber daya yang disediakan untuk menghindari biaya yang sedang berlangsung.

Untuk perincian terperinci tentang biaya yang diharapkan, lihat Estimasi biaya di repositori GitHub untuk sampel.

Membuka lingkungan pengembangan

Mulailah dengan menyiapkan lingkungan pengembangan yang memiliki semua dependensi yang diinstal untuk menyelesaikan artikel ini.

  • GitHub Codespaces (disarankan)
  • Visual Studio Code
  • Langganan Azure. Buat satu secara gratis.
  • Izin akun Azure. Akun Azure Anda harus memiliki izin Microsoft.Authorization/roleAssignments/write. Peran seperti Administrator Akses Pengguna atau Pemilik memenuhi persyaratan ini.
  • Akun GitHub. Diperlukan untuk mencabut repositori dan menggunakan GitHub Codespaces atau mengkloningnya secara lokal.

Membuka lingkungan pengembangan

Gunakan instruksi berikut untuk menyebarkan lingkungan pengembangan yang telah dikonfigurasi sebelumnya yang berisi semua dependensi yang diperlukan untuk menyelesaikan artikel ini.

  • GitHub Codespaces (disarankan)
  • Visual Studio Code

Untuk penyiapan yang paling sederhana dan paling efisien, gunakan GitHub Codespaces. GitHub Codespaces menjalankan kontainer pengembangan yang dikelola oleh GitHub dan menyediakan Visual Studio Code untuk Web sebagai antarmuka pengguna (UI). Lingkungan ini mencakup semua alat, SDK, ekstensi, dan dependensi yang diperlukan yang telah diinstal sebelumnya—sehingga Anda dapat segera mulai mengembangkan tanpa konfigurasi manual.

Menggunakan Codespace memastikan:

  • Alat dan versi pengembang yang benar sudah diinstal.
  • Tidak perlu menginstal Docker, VS Code, atau ekstensi secara lokal.
  • Onboarding cepat dan penyiapan lingkungan yang mudah direplikasi.

Penting

Semua akun GitHub dapat menggunakan GitHub Codespaces hingga 60 jam gratis setiap bulan dengan 2 instans inti. Jika Anda melebihi kuota gratis atau menggunakan opsi komputasi yang lebih besar, tarif penagihan Codespace GitHub standar berlaku. Untuk informasi selengkapnya, lihat GitHub Codespaces - Penyimpanan dan jam inti termasuk bulanan.

  1. Untuk mulai bekerja dengan proyek sampel, buat ruang kode GitHub baru di main cabang Azure-Samples/azure-search-openai-demo repositori GitHub.

    Klik kanan opsi GitHub Codespaces - Open di bagian atas halaman repositori dan pilih Buka tautan di jendela baru. Ini memastikan bahwa kontainer pengembangan diluncurkan di tab browser khusus layar penuh, memberi Anda akses ke kode sumber dan dokumentasi bawaan.

    Gambar dari opsi 'Buka di GitHub Codespaces'.

  2. Pada halaman Buat codespace baru , tinjau pengaturan konfigurasi codespace, lalu pilih Buat codespace:

    Cuplikan layar konfirmasi untuk membuat ruang kode GitHub baru untuk sampel.

    Tunggu hingga ruang kode GitHub dimulai. Proses startup dapat memakan waktu beberapa menit.

  3. Setelah codespace GitHub terbuka, masuk ke Azure dengan Azure Developer CLI dengan memasukkan perintah berikut di panel Terminal dari codespace:

    azd auth login
    

    GitHub menampilkan kode keamanan di panel Terminal.

    1. Salin kode keamanan di panel Terminal dan pilih Enter. Jendela browser terbuka.

    2. Pada perintah, tempelkan kode keamanan ke bidang browser.

    3. Ikuti instruksi untuk mengautentikasi dengan akun Azure Anda.

Anda menyelesaikan tugas GitHub Codespaces yang tersisa dalam artikel ini dalam konteks kontainer pengembangan ini.

Menyebarkan aplikasi obrolan ke Azure

Repositori sampel mencakup semua yang Anda butuhkan untuk menerapkan aplikasi Chat dengan data Anda sendiri ke Azure, termasuk:

  • Kode sumber aplikasi (Python)
  • File infrastruktur sebagai kode (Bicep)
  • Konfigurasi untuk integrasi GitHub dan CI/CD (opsional)

Gunakan langkah-langkah berikut untuk menyebarkan aplikasi dengan Azure Developer CLI (azd).

Penting

Sumber daya Azure yang dibuat di bagian ini—terutama Azure AI Search—dapat mulai dikenakan biaya segera setelah diprovisi, bahkan jika penyebarannya terganggu sebelum selesai. Untuk menghindari biaya tak terduga, pantau penggunaan Azure Anda dan hapus sumber daya yang tidak digunakan segera setelah pengujian.

  1. Di panel Terminal Visual Studio Code, buat sumber daya Azure dan sebarkan kode sumber dengan menjalankan perintah berikut azd :

    azd up
    
  2. Proses ini meminta Anda untuk satu atau beberapa pengaturan berikut berdasarkan konfigurasi Anda:

    • Nama lingkungan: Nilai ini digunakan sebagai bagian dari nama grup sumber daya. Masukkan nama pendek dengan huruf kecil dan tanda hubung (-), seperti myenv. Huruf besar, angka, dan karakter khusus tidak didukung.

    • Langganan: Pilih langganan untuk membuat sumber daya. Jika Anda tidak melihat langganan yang Diinginkan, gunakan tombol panah untuk menggulir daftar lengkap langganan yang tersedia.

    • Lokasi: Lokasi wilayah ini digunakan untuk sebagian besar sumber daya, termasuk hosting. Pilih lokasi wilayah di dekat Anda secara geografis.

    • Lokasi untuk model OpenAI atau sumber daya Kecerdasan Dokumen: Pilih lokasi terdekat anda secara geografis. Jika wilayah yang Anda pilih untuk Lokasi Anda tersedia untuk pengaturan ini, pilih wilayah yang sama.

    Proses meng-deploy aplikasi bisa memakan waktu. Tunggu sampai penyebaran selesai sebelum melanjutkan.

  3. Setelah aplikasi berhasil disebarkan, panel Terminal menampilkan URL titik akhir:

    Cuplikan layar yang memperlihatkan URL titik akhir untuk aplikasi yang disebarkan seperti yang dilaporkan setelah menyelesaikan proses 'azd up'.

  4. Pilih URL titik akhir untuk membuka aplikasi obrolan di browser:

    Cuplikan layar aplikasi obrolan memperlihatkan beberapa saran untuk input obrolan dan kotak teks obrolan untuk memasukkan pertanyaan.

Menggunakan aplikasi obrolan untuk mendapatkan jawaban dari file PDF

Aplikasi obrolan dimuat sebelumnya dengan informasi manfaat karyawan dari file PDF. Anda dapat menggunakan aplikasi obrolan untuk mengajukan pertanyaan tentang manfaatnya. Langkah-langkah berikut membimbing Anda melalui proses penggunaan aplikasi obrolan. Jawaban Anda mungkin bervariasi karena model yang mendasar diperbarui.

  1. Di aplikasi obrolan, pilih opsi Apa yang terjadi dalam tinjauan performa? , atau masukkan teks yang sama di kotak teks obrolan. Aplikasi mengembalikan respons awal:

    Cuplikan layar jawaban awal dari aplikasi obrolan untuk pertanyaan tersebut, Apa yang terjadi dalam tinjauan performa?

  2. Dalam kotak jawaban, pilih kutipan:

    Cuplikan layar yang memperlihatkan kutipan yang disorot di kotak jawaban untuk aplikasi obrolan.

  3. GitHub Codespaces membuka panel Kutipan kanan dengan tiga wilayah bertab dan fokusnya adalah pada tab Kutipan :

    Cuplikan layar panel kanan terbuka di GitHub Codespaces dengan informasi yang terlihat untuk tab Kutipan.

    GitHub Codespaces menyediakan tiga tab informasi untuk membantu Anda memahami bagaimana aplikasi obrolan menghasilkan jawabannya:

    Tab Deskripsi
    Proses Pemikiran Menampilkan skrip interaksi pertanyaan/jawaban dalam obrolan. Anda dapat melihat konten yang disediakan oleh aplikasi systemobrolan, pertanyaan yang dimasukkan oleh user, dan klarifikasi yang dibuat oleh sistem assistant.
    Konten Pendukung Mencantumkan informasi yang digunakan untuk menjawab pertanyaan Anda dan materi sumber. Jumlah kutipan materi sumber ditentukan oleh pengaturan Pengembang. Jumlah default kutipan adalah 3.
    Kutipan Memperlihatkan isi sumber asli untuk kutipan yang dipilih.
  4. Setelah selesai, pilih tab yang saat ini dipilih di panel kanan. Panel kanan ditutup.

Menggunakan pengaturan untuk mengubah perilaku respons

Model OpenAI tertentu menentukan kecerdasan obrolan dan pengaturan yang digunakan untuk berinteraksi dengan model. Opsi Pengaturan pengembang membuka panel Konfigurasi pembuatan jawaban tempat Anda dapat mengubah pengaturan untuk aplikasi obrolan:

Cuplikan layar pengaturan pengembang tersedia di panel kanan di aplikasi obrolan.

Pengaturan Deskripsi
Mengganti templat prompt Mengambil alih perintah yang digunakan untuk menghasilkan jawaban berdasarkan hasil pertanyaan dan pencarian.
Suhu Mengatur suhu permintaan ke model bahasa besar (LLM) yang menghasilkan jawabannya. Suhu yang lebih tinggi menghasilkan respons yang lebih kreatif, tetapi mungkin kurang membumi.
Benih Mengatur seed untuk meningkatkan reproduksibilitas respons model. Benih dapat berupa bilangan bulat apa pun.
Skor pencarian minimum Mengatur skor minimum untuk hasil pencarian yang dikembalikan dari Azure AI Search. Rentang skor bergantung pada apakah Anda menggunakan Hibrid (default), Vektor saja, atau Teks hanya untuk pengaturan mode Pengambilan .
Minimum skor reranker Menetapkan skor minimum untuk hasil pencarian yang dihasilkan dari reranker semantik. Skor selalu berkisar antara 0-4. Semakin tinggi skor, semakin relevan secara semantik hasilnya adalah dengan pertanyaan.
Ambil hasil pencarian sejumlah ini Mengatur jumlah hasil pencarian yang akan diambil dari Azure AI Search. Hasil lainnya dapat meningkatkan kemungkinan menemukan jawaban yang benar, tetapi mungkin menyebabkan model 'hilang di tengah'. Anda dapat melihat sumber yang dikembalikan di tab Proses Pemikiran dan Konten Pendukung dari panel Kutipan .
Sertakan kategori Menentukan kategori yang akan disertakan saat menghasilkan hasil pencarian. Gunakan daftar dropdown untuk membuat pilihan Anda. Tindakan defaultnya adalah menyertakan Semua kategori.
Mengecualikan kategori Menentukan kategori apa pun yang akan dikecualikan dari hasil pencarian. Tidak ada kategori yang digunakan dalam himpunan data default.
Gunakan ranker semantik untuk pengambilan data Mengaktifkan ranker semantik Azure AI Search, dengan model yang mengurutkan kembali hasil pencarian berdasarkan kesamaan semantik dengan kueri pengguna.
Menggunakan keterangan semantik Mengirim keterangan semantik ke LLM alih-alih hasil pencarian lengkap. Keterangan semantik diekstrak dari hasil pencarian selama proses peringkat semantik.
Sarankan pertanyaan tindak lanjut Meminta LLM untuk menyarankan pertanyaan tindak lanjut berdasarkan kueri pengguna.
mode Pengambilan Mengatur mode penarikan untuk kueri Pencarian Azure AI. Tindakan default adalah Vektor + Teks (Hibrid), yang menggunakan kombinasi pencarian vektor dan pencarian teks lengkap. Opsi Vektor hanya menggunakan pencarian vektor. Opsi Teks hanya menggunakan pencarian teks lengkap. Pendekatan Hibrid optimal.
Stream respons penyelesaian obrolan Mengalirkan respons secara terus-menerus ke UI obrolan seiring dengan pembuatan konten.

Langkah-langkah berikut akan memandu Anda melalui proses mengubah pengaturan.

  1. Di browser, pilih opsi Pengaturan pengembang .

  2. Pilih kotak centang Sarankan pertanyaan tindak lanjut untuk mengaktifkan opsi, dan pilih Tutup untuk menerapkan perubahan pengaturan.

  3. Di aplikasi obrolan, ajukan ulang pertanyaan, kali ini dengan memasukkan teks di kotak pertanyaan:

    What happens in a performance review?
    

    Jawaban aplikasi obrolan sekarang menyertakan pertanyaan tindak lanjut yang disarankan:

    Cuplikan layar yang memperlihatkan bagaimana aplikasi obrolan menyediakan pertanyaan tindak lanjut yang disarankan setelah jawabannya.

  4. Pilih lagi opsi Pengaturan pengembang, dan hapus pilihan Gunakan ranker semantik untuk pengambilan. Tutup pengaturan.

  5. Ajukan pertanyaan yang sama lagi, dan perhatikan perbedaan jawaban dari aplikasi obrolan.

    Dengan peringkat Semantik: "Selama tinjauan kinerja di Contoso Electronics, atasan Anda akan membahas kinerja Anda selama setahun terakhir dan memberikan umpan balik mengenai area yang perlu diperbaiki. Anda juga akan memiliki kesempatan untuk membahas tujuan dan tujuan Anda untuk tahun mendatang. Peninjauan adalah dialog dua arah antara manajer dan karyawan, dan didorong bagi karyawan untuk jujur dan terbuka selama proses (1). Umpan balik yang diberikan selama peninjauan harus positif dan konstruktif, bertujuan untuk membantu karyawan berkembang dan tumbuh dalam peran mereka. Karyawan akan menerima ringkasan tertulis dari ulasan performa mereka, yang akan mencakup peringkat kinerja, umpan balik, dan tujuan dan tujuan mereka untuk tahun mendatang (1)."

    Tanpa peringkat Semantik: "Selama tinjauan kinerja di Contoso Electronics, atasan Anda akan membahas kinerja Anda selama setahun terakhir dan memberikan umpan balik tentang area untuk perbaikan. Ini adalah dialog dua arah di mana Anda didorong untuk jujur dan terbuka (1). Umpan balik yang diberikan selama peninjauan harus positif dan konstruktif, yang bertujuan untuk membantu Anda mengembangkan dan tumbuh dalam peran Anda. Anda akan menerima ringkasan tertulis dari ulasan, termasuk peringkat performa, umpan balik, dan tujuan Anda untuk tahun mendatang (1)."

Membersihkan sumber daya

Setelah Anda menyelesaikan latihan, ini adalah praktik terbaik untuk menghapus sumber daya apa pun yang tidak lagi diperlukan.

Membersihkan sumber daya Azure

Sumber daya Azure yang dibuat dalam artikel ini ditagihkan ke langganan Azure Anda. Jika Anda tidak mengharapkan untuk membutuhkan sumber daya ini di masa mendatang, hapus sumber daya tersebut untuk menghindari dikenakan lebih banyak biaya.

Hapus sumber daya Azure dan hapus kode sumber dengan menjalankan perintah berikut azd :

azd down --purge --force

Opsi perintah meliputi:

  • purge: Sumber daya yang dihapus segera dibersihkan seluruhnya. Opsi ini memungkinkan Anda menggunakan kembali metrik token Azure OpenAI per menit (TPM).
  • force: Penghapusan dilakukan secara diam-diam, tanpa memerlukan persetujuan pengguna.

Membersihkan GitHub Codespaces

  • GitHub Codespaces
  • Visual Studio Code

Menghapus lingkungan GitHub Codespaces memastikan bahwa Anda dapat memaksimalkan kuota jam penggunaan inti gratis yang Anda dapatkan untuk akun Anda.

Penting

Untuk informasi selengkapnya tentang hak akun GitHub Anda, lihat GitHub Codespaces - Penyimpanan dan jam inti yang sudah termasuk setiap bulan.

  1. Masuk ke dasbor GitHub Codespaces.

  2. Di dasbor, temukan codespace yang sedang berjalan yang bersumber dari Azure-Samples/azure-search-openai-demo repositori GitHub:

    Cuplikan layar semua Codespace GitHub yang sedang berjalan, termasuk status dan templatnya.

  3. Buka menu konteks untuk codespace dan pilih Hapus:

    Cuplikan layar menu konteks untuk satu codespace dengan opsi hapus disorot.

Dapatkan bantuan

Repositori sampel ini menawarkan informasi pemecahan masalah.

Jika masalah Anda tidak diatasi, masukkan masalah Anda ke halaman Masalah repositori pada halaman web.

  • Dapatkan kode sumber untuk sampel yang digunakan dalam artikel ini
  • Membangun aplikasi obrolan dengan arsitektur solusi praktik terbaik Azure OpenAI
  • Kontrol akses dalam aplikasi AI generatif dengan Azure AI Search
  • Membangun solusi OpenAI siap untuk perusahaan dengan Azure API Management
  • Pencarian vektor dengan performa lebih unggul dengan kemampuan gabungan untuk pengambilan dan peringkat.