LLM Flow adalah alat web yang dirancang untuk memfasilitasi proses pengembangan AI, mulai mendefinisikan kasus penggunaan AI yang terisolasi (fungsi AI), mengimplementasikan petunjuk, menilai dan meningkatkan kualitas cepat, dan menghasilkan API untuk mengintegrasikan fungsi AI ke dalam aplikasi Anda sendiri.
Jelajahi fitur »
(kembali ke atas)
(kembali ke atas)
Proyek ini dibagi menjadi tiga layanan yang semuanya harus diatur secara individual:
server : Backend FASTAPIpromptfoo-server : Express.js Backend yang menjalankan promptfooclient : Next.js Frontend(kembali ke atas)
Gunakan pengaturan Docker jika Anda hanya ingin menjalankan aplikasi tanpa banyak usaha. Untuk pengembangan lokal, lihat pengaturan lokal.
Prasyarat:
Cara Mengatur:
Untuk server dan client , buat file .env.docker di folder root masing -masing dengan menyalin dan mengganti nama file .env.docker.template . Untuk promptfoo-server buat file .env dari file .env.template . Ganti rahasia dari templat dengan milik Anda.
Di folder root jalankan dua perintah ini:
docker compose build
docker compose up -d
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(kembali ke atas)
Prasyarat:
Anda juga dapat menggunakan versi node yang berbeda. Namun, saya hanya menguji pengaturan menggunakan simpul 22.
Cara Mengatur:
Untuk ketiga layanan, buat file .env di folder root masing -masing dengan menyalin dan mengganti nama file .env.template . Ganti rahasia di templat dengan milik Anda.
Di folder root run:
docker compose up mongo -d
backend Untuk menjalankan backend , Anda dapat menggunakan debugger VS Code untuk memulainya atau menjalankan yang berikut di folder backend :
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server Di folder promptfoo-server menjalankan:
npm install
npm run start
client : Di folder client menjalankan:
npm install
npm run dev
client : http: // localhost: 3000/backend : http: // localhost: 4000/docs(kembali ke atas)
Jika Anda ingin mengembangkan proyek, pastikan untuk pertama kali berjalan melalui pengaturan lokal.
Prasyarat:
Berikut adalah beberapa perintah yang berguna untuk digunakan selama pengembangan:
pre-commit run --all-files
sh generate_client_bindings.sh
Di folder client menjalankan:
npm run lint
npm run pretty
(kembali ke atas)
Fungsi AI mewakili kontrak antara logika bisnis Anda sendiri dan penyedia LLM. Anda memberikan satu set parameter kepada mereka dan mereka mengembalikan output terstruktur.
Di antarmuka web Anda dapat mendefinisikan fungsi AI. Anda mendefinisikan namanya, memberikan deskripsi, tentukan parameter yang diterimanya dan pilih penyedia yang mungkin digunakan:
Anda juga mendefinisikan jika fungsi mengembalikan respons string sederhana yang tidak terstruktur atau respons JSON terstruktur. Untuk yang terakhir Anda dapat mendefinisikan objek JSON yang kompleks menggunakan editor skema JSON.
Demi mengevaluasi kualitas permintaan fungsi AI, Anda dapat mendefinisikan pernyataan dan kasus uji. Pernyataan digunakan untuk membandingkan dengan nilai atau kondisi yang diharapkan. Fitur ini menggunakan PromptFoo di bawah kap. Ada berbagai jenis pernyataan untuk dipilih, mulai dari perbandingan sederhana, hingga pola regex yang kompleks, dan bahkan yang menggunakan kode Python atau JavaScript yang didefinisikan sendiri, yang dapat menentukan logika pernyataan khusus dan berpotensi kompleks.
Kasus uji merujuk pada contoh data untuk parameter fungsi AI. Mereka memainkan peran integral dalam menegaskan kualitas yang cepat. Setelah mendefinisikan prompt, dievaluasi terhadap kasus uji dengan pernyataan yang ditentukan dalam fungsi AI. Anda juga dapat mendefinisikan pernyataan yang hanya diterapkan pada satu kasus uji. Bahkan ada fitur untuk AI menghasilkan kasus uji berdasarkan kasus uji yang ditentukan sebelumnya, serta nama dan deskripsi fungsi AI.
Sebagai permulaan, Anda cukup membuat fungsi AI dari salah satu contoh yang disediakan:
(kembali ke atas)
Dalam permintaan aliran LLM didefinisikan dalam konteks fungsi AI. Mereka harus memasukkan parameter fungsi AI masing -masing dalam tubuh mereka dan dievaluasi terhadap kasus dan pernyataan uji.
Prompt dievaluasi untuk setiap penyedia yang ditentukan berdasarkan fungsi AI. Ini memungkinkan untuk membandingkan kualitas prompt di berbagai penyedia. Tiga metrik dihitung selama evaluasi:
(kembali ke atas)
Proyek adalah cara untuk membuat API yang dapat Anda sebut berbagai fungsi AI. Di antarmuka web, dokumen Swagger khusus dihasilkan untuk setiap proyek yang dapat Anda gunakan untuk menguji API di klien itu sendiri. Anda juga dapat mengekspor spesifikasi OpenAPI untuk menghasilkan binding klien Anda sendiri menggunakan generator kode seperti OpenAPI generator.
Dokumen API secara otomatis dihuni dengan nama, deskripsi, dan parameter fungsi AI yang dipilih dan menyertakan salah satu kasus uji yang ditentukan sebagai contoh. Setiap fungsi AI dalam proyek diberi titik akhir sendiri.
Dengan cara ini Anda dapat mengintegrasikan fungsi AI yang ditentukan dalam aliran LLM dalam aplikasi Anda sendiri. Setelah proyek dibuat, Anda tidak perlu menjalankan klien untuk memanggil titik akhir. Berikut adalah demo tentang cara membuat dan menggunakan proyek:
(kembali ke atas)
Jika Anda memiliki saran yang akan membuat ini lebih baik, silakan garukan repo dan buat permintaan tarik. Anda juga bisa membuka masalah dengan tag "peningkatan". Jangan lupa memberi proyek bintang! Terima kasih lagi!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(kembali ke atas)
Didistribusikan di bawah lisensi MIT. Lihat LICENSE.txt untuk informasi lebih lanjut.
(kembali ke atas)
Amir Mohammad - [email protected]
Tautan Proyek: https://github.com/amir-mo1999/llmflow
(kembali ke atas)