David adalah spesialis rekaman vinil. Anda dapat meminta rekomendasi atau informasi tambahan darinya tentang rekaman mana pun dalam koleksi Discogs Anda. David akan dengan senang hati membantu Anda.
Aplikasi LLM ini adalah contoh sederhana agen percakapan yang menggunakan Discogs API untuk memberikan informasi tentang piringan hitam. Ini terdiri dari 4 blok bangunan utama:
Saat ini menggunakan LangChain4j sebagai kerangka kerja dengan GPT-4o sebagai mesin asisten AI, tetapi dapat dengan mudah diadaptasi untuk menggunakan mesin lain.
Arsitektur aplikasi dari diagram di bawah ini diterapkan oleh kerangka ArchUnit melalui pengujian di kelas ArchitectureTest.
UI untuk proyek ini dikembangkan menggunakan perintah berikut:
I need the code for an HTML 5 page that contains an input field for a Discogs username
and a text area for inserting prompts for the application to send to AI agents.
Above the text area there should be the space in which the AI responses are displayed, in the ChatGPT style
Kode HTML5 yang dihasilkan dari GitHub Copilot memberikan visual awal untuk UI yang kemudian saya modifikasi untuk menambahkan koneksi websocket dan logika untuk mengirim dan menerima pesan dari asisten AI. Saya menemukan ini sebagai pendekatan yang sangat cepat untuk pembuatan prototipe. Kemudian, saya beralih ke komponen yang lebih kuat dari ant-design, termasuk pro-chat.
Saya awalnya ingin menggunakan llama3. Model llama3 saat ini tidak memiliki dukungan alat (Juni 2024). Artinya, asisten AI tidak dapat mengumpulkan nama pengguna Discogs dan mengambil koleksi rekamannya sendiri. Kami pindah ke GPT-4o sehingga David dapat meminta informasi Discogs dan menghilangkan kebutuhan akan formulir apa pun.
Beberapa LLM tidak secerdas yang lain. Meskipun model Mistral 7b mendukung alat, saya tidak bisa mendapatkan jawaban yang bagus darinya. Itu bahkan tidak lulus tes integrasi saya. Dengan itu, saya tidak dapat menjalankan LLM dengan alat secara gratis.
Halusinasi memang menyebalkan. Saya memulai perjalanan saya ke RAG sebagai cara untuk meminimalkannya. Sejak David beroperasi di bidang musik, Wikipedia adalah basis pengetahuan pertama yang terlintas dalam pikiran RAG. Mungkin saya bisa memanfaatkan API MediaWiki untuk mencari halaman musik yang relevan dengan percakapan. Untuk saat ini, saya hanya menggunakan Google Penelusuran dan terkadang hal ini membantu, namun tentu saja tidak cukup untuk biaya yang ditimbulkan dari token.
Menguji aplikasi LLM adalah sebuah tantangan. Saya melakukan lebih banyak tes integrasi dari biasanya. Hal ini menyebabkan siklus pengembangan lebih lambat. Selain itu, sifat probabilistik dari asisten AI menyulitkan pengujian aplikasi secara deterministik.
Di dunia LLM, pengujian unit melibatkan pemicuan model AI, bukan hanya memanggil unit kode. Saat menggunakan model berbasis cloud, menjalankan pengujian unit memerlukan biaya. Saya juga bereksperimen dengan menggunakan agen AI kedua untuk membantu saya menyatakan hasil dari AI utama. Ini adalah pendekatan yang menjanjikan karena kita dapat melakukan pernyataan semantik, dan bukan hanya pemrosesan string. Pengorbanannya di sini adalah bahwa hal ini juga menimbulkan biaya, dan menumpuk risiko kesalahan probabilitas yang ditimbulkan oleh LLM.
Anda harus memiliki kunci API OpenAI yang valid untuk menjalankan aplikasi ini.
./gradlew bootRun
untuk memulai aplikasi.http://localhost:8080
di browser Anda untuk berinteraksi dengan asisten AI.