Mesin pencari AI open source dasar, dimodelkan setelah kebingungan.ai. Jika Anda tidak terbiasa dengan platform yang dianugasikan dengan pertanyaan AI, mereka menggunakan model bahasa besar seperti chatgpt untuk menjawab pertanyaan Anda, tetapi meningkatkan chatgpt karena menarik hasil pencarian yang akurat dan real-time untuk melengkapi jawabannya (jadi tidak ada "cutoff pengetahuan"). Dan mencantumkan kutipan dalam jawaban itu sendiri yang membangun kepercayaan diri itu tidak berhalusinasi dan memungkinkan Anda untuk meneliti topik lebih lanjut.
search.php (cari "[Isi saya]")Tantangan utama dengan LLM seperti chatgpt adalah bahwa mereka memiliki batas pengetahuan (dan kadang -kadang cenderung berhalusinasi). Itu karena mereka dilatih pada data hingga tanggal tertentu (mis. Sep 2021). Jadi, jika Anda ingin jawaban untuk pertanyaan terkini atau Anda hanya ingin meneliti topik secara rinci, Anda harus menambah jawabannya dengan sumber yang relevan. Teknik ini dikenal sebagai RAG (Retrieval Augmented Generation). Dan dalam kasus kami, kami dapat dengan mudah menyediakan informasi terkini LLM dari mesin pencari seperti Google atau Bing.
Untuk membangun ini sendiri, Anda akan ingin mendaftar pertama untuk kunci API dari Bing, Google (melalui Serper), Brave, atau lainnya. Bing, Brave, dan Serper semuanya menawarkan penggunaan gratis untuk memulai.
Di search.php , letakkan kunci API Anda jika perlu (cari "[Isi saya]"). Untuk contoh ini, saya memiliki kode untuk Brave dan Google melalui Serper.
Di sini, Anda harus mendaftar untuk kunci API dari penyedia LLM. Ada banyak penyedia untuk dipilih sekarang. Misalnya ada OpenAI, Anthropic, AnyScale, Groq, Cloudflare, Kebingungan, Lepton, atau pemain besar seperti AWS, Azure, atau Google Cloud. Saya telah menggunakan banyak dari ini dengan kesuksesan dan mereka menawarkan sebagian dari model tertutup dan open source saat ini dan populer. Dan setiap model memiliki kekuatan unik, biaya yang berbeda, dan kecepatan yang berbeda. Misalnya, GPT-4 sangat akurat tetapi mahal dan lambat. Jika ragu, saya merekomendasikan menggunakan chatgpt-3.5-turbo dari Openai. Cukup bagus, cukup murah, dan cukup cepat untuk menguji ini.
Untungnya, sebagian besar penyedia yang melayani LLM ini kompatibel dengan format API Openai, jadi beralih ke penyedia / model lain hanya pekerjaan minimal (atau hanya meminta chatbot untuk menulis kode!).
Di search.php , letakkan tombol API Anda jika perlu (cari "[Isi saya]"). Untuk contoh ini, saya menggunakan OpenAi (untuk chatgpt-3.5-turbo / gpt-4) dan GroQ (untuk mixtral-8b7b). Jadi untuk menjaga pekerjaan Anda minim, cukup dapatkan kunci untuk salah satu atau keduanya.
Ketika Anda ingin mengajukan pertanyaan kepada LLM, Anda dapat memberikan banyak konteks tambahan. Setiap model memiliki batas uniknya sendiri dan beberapa di antaranya sangat besar. Untuk GPT-4-Turbo, Anda bisa meneruskan keseluruhan buku Harry Potter ke-1 dengan pertanyaan Anda. Gemini 1.5 super kuat Google dapat mendukung ukuran konteks lebih dari satu juta token. Itu cukup untuk melewati keseluruhan seri 7-buku Harry Potter!
Untungnya, melewati cuplikan hasil pencarian 8-10 jauh lebih kecil, memungkinkan Anda untuk menggunakan banyak model yang lebih cepat (dan jauh lebih murah) seperti GPT-3.5-turbo atau Mistral-7B.
Dalam pengalaman saya, menyampaikan pertanyaan pengguna, pesan prompt khusus, dan cuplikan hasil pencarian biasanya di bawah 1K token. Ini bahkan di bawah batas model paling dasar sehingga ini seharusnya tidak menjadi masalah.
search.php memiliki prompt sampel yang telah saya mainkan dengan Anda. Hat-Tip untuk orang-orang di Lepton AI yang bersumber dari proyek serupa yang membantu saya memperbaiki prompt ini.
Salah satu fitur bagus dari kebingungan adalah bagaimana mereka menyarankan pertanyaan tindak lanjut. Untungnya, ini mudah ditiru.
Untuk melakukan ini, Anda dapat melakukan panggilan kedua ke LLM Anda (secara paralel) mengajukan pertanyaan terkait. Dan jangan lupa untuk menyampaikan kutipan -kutipan itu dalam konteks lagi.
Atau, Anda dapat mencoba membangun prompt sehingga LLM menjawab pertanyaan dan mengajukan pertanyaan terkait. Ini menyimpan panggilan API dan beberapa token, tetapi agak menantang membuat LLM ini selalu menjawab dalam format yang konsisten dan berulang.
Untuk menjadikan ini contoh lengkap, kita membutuhkan UI yang dapat digunakan. Saya menjaga UI sesederhana mungkin dan semuanya ada di index.html . Saya menggunakan bootstrap, jQuery, dan beberapa css / javascript dasar, markdown, dan stabilo sintaks JS untuk mewujudkannya.
Untuk meningkatkan pengalaman, UI melakukan hal berikut:
Untuk menjelajahi contoh yang berfungsi, lihat https://yaddleai.com. Sebagian besar kode yang sama meskipun saya menambahkan panggilan pencarian kedua secara paralel untuk mengambil gambar, saya menulis halaman terpisah untuk mengambil berita terbaru, dan beberapa perbaikan kecil lainnya.