Saya gembira selepas menyumbang kepada pelbagai repositori semasa Hacktoberfest, tetapi sebaik sahaja Hacktoberfest, saya mendapat keterujaan mendalam baharu ini untuk menyumbang kepada lebih banyak Projek Sumber Terbuka. Saya telah menyumbang kepada banyak projek yang mempunyai susunan teknologi yang merangkumi kedua-dua bahagian belakang dan hadapan, tetapi kali ini saya ingin menyumbang kepada projek berasaskan AI, terutamanya sesuatu yang berkaitan dengan RAG (Retrieval Augmented Generation) seperti yang saya ingin selidiki ke dalamnya
Semasa mencari banyak repo berdasarkan RAG, saya terjumpa alat RAG sumber terbuka yang sempurna, ORAssistant, sekali lagi, chatbot yang menjawab soalan atau pertanyaan biasa untuk projek yang lebih besar.
Seni bina alat ini agak kompleks, saya masih cuba memikirkan cara seni bina pertanyaan utama beroperasi, tetapi ini adalah bahagian yang menarik, belajar sambil saya menyumbang.
Untuk isu pertama saya, saya telah mengambil salah satu isu di mana tugasnya adalah untuk mengautomasikan gelung maklum balas, dalam istilah Leyman, perkara ini melibatkan bahawa apl RAG biasanya bergantung pada maklum balas daripada pengguna untuk memperhalusi lagi maklum balas, tugasnya adalah untuk mendapatkan maklum balas ini daripada pengguna dan menyimpannya dalam pangkalan data dan memberinya kembali kepada model itu sendiri
Seni bina akan kelihatan seperti ini
Pada masa ini, sistem menyimpan maklum balas dalam Helaian Google, yang sekali lagi bukan pendekatan yang dioptimumkan
Isu ini sendiri akan mengambil masa sekitar 4-5 PR untuk diselesaikan, tetapi untuk fokus blog ini, saya akan menghadkannya kepada PR pertama yang saya buat.
Untuk permintaan tarik pertama, seperti yang terbukti daripada perbincangan daripada isu itu, tugas saya adalah untuk menyediakan dan menjalankan reka bentuk pangkalan data terlebih dahulu. Semasa berbuat demikian, saya menghadapi banyak isu
Penyelesaian yang saya cadangkan untuk PR ini, berkisar pada perbincangan memilih pangkalan data yang betul, selepas perbincangan terperinci dengan penyelenggara, kami memutuskan bahawa adalah yang terbaik untuk menggunakan MongoDB untuk projek, memikirkan tentang kebolehskalaan dan fleksibiliti dalam medan disebabkan sifat MongoDB tanpa skema.
Selepas membuat reka bentuk awal, saya membuka PR, yang berkaitan dengan penyediaan reka bentuk awal untuk bahagian hadapan
Salah satu isu yang dihadapi semasa proses penggabungan ini ialah ia tidak lulus ujian dalam saluran paip CI, yang tidak berkaitan dengan ralat dalam kod saya, tetapi kerana beberapa rahsia repositori tidak disebarkan ke garpu repositori yang saya sedang kerjakan, jadi penyelenggara terpaksa memberi saya akses tulis kepada repo untuk mendapatkan gabungan PR saya
PR ini kini akan bertindak sebagai asas untuk PR selanjutnya yang akhirnya akan menyelesaikan keseluruhan isu. Sejujurnya, ini adalah salah satu projek terbaik yang telah saya kerjakan dalam beberapa ketika, saya mengambil kira-kira 6-7 PR untuk menyelesaikan satu isu sahaja, ini menunjukkan betapa rumit dan membangunkan projek itu.
Saya sangat menikmati bagaimana Kembara Sumber Terbuka saya terbentuk.
Atas ialah kandungan terperinci Menyumbang kepada ORAssistant. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!