Marvin adalah toolkit AI yang ringan untuk membangun antarmuka bahasa alami yang dapat diandalkan, dapat diskalakan, dan mudah dipercaya.
Setiap alat Marvin sederhana dan mendokumentasikan diri, menggunakan AI untuk menyelesaikan tantangan umum tetapi kompleks seperti ekstraksi entitas, klasifikasi, dan menghasilkan data sintetis. Setiap alat independen dan dapat diadopsi secara bertahap, sehingga Anda dapat menggunakannya sendiri atau dalam kombinasi dengan perpustakaan lain. Marvin juga multi-modal, mendukung pembuatan gambar dan audio serta menggunakan gambar sebagai input untuk ekstraksi dan klasifikasi.
Marvin adalah untuk pengembang yang lebih peduli menggunakan AI daripada membangun AI, dan kami fokus pada menciptakan pengalaman pengembang yang luar biasa. Pengguna Marvin harus merasa diberdayakan untuk membawa "AI Magic" yang dilumamkan ketat ke dalam proyek perangkat lunak tradisional apa pun dengan hanya beberapa baris kode tambahan.
Marvin bertujuan untuk menggabungkan praktik terbaik untuk membangun perangkat lunak yang dapat diamati dan dapat diamati dengan praktik terbaik untuk membangun dengan AI generatif menjadi satu perpustakaan yang mudah digunakan. Ini alat yang serius, tapi kami harap Anda bersenang -senang dengannya.
Marvin adalah open-source, gratis untuk digunakan, dan dibuat dengan? oleh tim di Prefek.
Instal versi terbaru dengan pip
:
pip install marvin -U
Untuk memverifikasi instalasi Anda, jalankan marvin version
di terminal Anda.
Marvin terdiri dari berbagai alat yang berguna, semuanya dirancang untuk digunakan secara mandiri. Masing-masing mewakili kasus penggunaan LLM yang umum, dan paket yang menyalakan antarmuka yang sederhana dan terdokumentasi sendiri.
? Tulis Fungsi Bertenaga AI Kustom Tanpa Kode Sumber
? ️ Mengklasifikasikan teks ke dalam kategori
? Ekstrak entitas terstruktur dari teks
? Mengubah teks menjadi data terstruktur
Menghasilkan data sintetis dari skema
? ️ Buat gambar dari teks atau fungsi
Jelaskan gambar dengan bahasa alami
? ️ Mengklasifikasikan gambar ke dalam kategori
? Ekstrak entitas terstruktur dari gambar
? Mengubah gambar menjadi data terstruktur
Menghasilkan pidato dari teks atau fungsi
✍️ Transkripsi pidato dari audio yang direkam
? Rekam pengguna terus menerus atau sebagai frasa individual
? ️ Rekam video terus menerus
? Mengobrol dengan asisten dan menggunakan alat khusus
? Membangun aplikasi yang mengelola keadaan persisten
Berikut adalah tur angin puyuh dari beberapa fitur utama Marvin. Untuk informasi lebih lanjut, periksa dokumen!
Marvin dapat classify
teks menggunakan satu set label:
import marvin
marvin . classify (
"Marvin is so easy to use!" ,
labels = [ "positive" , "negative" ],
)
# "positive"
Pelajari lebih lanjut tentang klasifikasi di sini.
Marvin dapat extract
entitas terstruktur dari teks:
import pydantic
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . extract ( "I moved from NY to CHI" , target = Location )
# [
# Location(city="New York", state="New York"),
# Location(city="Chicago", state="Illinois")
# ]
Hampir semua fungsi Marvin dapat diberikan instructions
untuk kontrol lebih lanjut. Di sini kita hanya mengekstrak nilai moneter:
marvin . extract (
"I paid $10 for 3 tacos and got a dollar and 25 cents back." ,
target = float ,
instructions = "Only extract money"
)
# [10.0, 1.25]
Pelajari lebih lanjut tentang ekstraksi entitas di sini.
Marvin dapat generate
data sintetis untuk Anda, mengikuti instruksi dan skema opsional:
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . generate (
n = 4 ,
target = Location ,
instructions = "cities in the United States named after presidents"
)
# [
# Location(city='Washington', state='District of Columbia'),
# Location(city='Jackson', state='Mississippi'),
# Location(city='Cleveland', state='Ohio'),
# Location(city='Lincoln', state='Nebraska'),
# ]
Pelajari lebih lanjut tentang pembuatan data di sini.
Marvin dapat cast
teks sewenang -wenang ke tipe Python apa pun:
marvin . cast ( "one two three" , list [ int ])
# [1, 2, 3]
Ini berguna untuk menstandarisasi input teks atau mencocokkan bahasa alami dengan skema:
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . cast ( "The Big Apple" , Location )
# Location(city="New York", state="New York")
Untuk pendekatan berbasis kelas, dekorator @model
Marvin dapat diterapkan pada model Pydantic apa pun untuk membiarkannya dipakai dari teks:
@ marvin . model
class Location ( pydantic . BaseModel ):
city : str
state : str
Location ( "The Big Apple" )
# Location(city="New York", state="New York")
Pelajari lebih lanjut tentang casting ke tipe di sini.
Fungsi Marvin memungkinkan Anda menggabungkan input, instruksi, dan jenis output apa pun untuk membuat perilaku bertenaga AI khusus ... tanpa kode sumber. Fungsi -fungsi ini dapat melampaui kemampuan extract
atau classify
, dan sangat ideal untuk pemrosesan bahasa alami yang kompleks atau pemetaan kombinasi input ke output.
@ marvin . fn
def sentiment ( text : str ) -> float :
"""
Returns a sentiment score for `text`
between -1 (negative) and 1 (positive).
"""
sentiment ( "I love working with Marvin!" ) # 0.8
sentiment ( "These examples could use some work..." ) # -0.2
Fungsi Marvin terlihat persis seperti fungsi Python biasa, kecuali bahwa Anda tidak perlu menulis kode sumber apa pun. Ketika fungsi -fungsi ini dipanggil, AI menafsirkan deskripsi dan inputnya dan menghasilkan output.
Perhatikan bahwa Marvin tidak berfungsi dengan menghasilkan atau melaksanakan kode sumber, yang tidak aman untuk sebagian besar kasus penggunaan. Sebaliknya, ia menggunakan LLM itu sendiri sebagai "runtime" untuk memprediksi output fungsi. Itu sebenarnya sumber kekuatannya: Fungsi Marvin dapat menangani kasus penggunaan kompleks yang sulit atau tidak mungkin untuk diekspresikan sebagai kode.
Anda dapat mempelajari lebih lanjut tentang fungsi di sini.
Marvin dapat paint
gambar dari teks:
marvin . paint ( "a simple cup of coffee, still warm" )
Pelajari lebih lanjut tentang pembuatan gambar di sini.
Selain teks, Marvin memiliki dukungan untuk menulis, mengklasifikasikan, mengubah, dan mengekstraksi entitas dari gambar menggunakan model Visi GPT-4:
marvin . classify (
marvin . Image . from_path ( "docs/images/coffee.png" ),
labels = [ "drink" , "food" ],
)
# "drink"
Marvin dapat menuliskan pidato dan menghasilkan audio out-of-the-box, tetapi audio
tambahan opsional menyediakan utilitas untuk merekam dan bermain audio.
import marvin
import marvin . audio
# record the user
user_audio = marvin . audio . record_phrase ()
# transcribe the text
user_text = marvin . transcribe ( user_audio )
# cast the language to a more formal style
ai_text = marvin . cast ( user_text , instructions = 'Make the language ridiculously formal' )
# generate AI speech
ai_audio = marvin . speak ( ai_text )
# play the result
ai_audio . play ()
Ide fitur? Bagikan di saluran #development
di perselisihan kami.
? Menemukan bug? Jangan ragu untuk membuka masalah.
? Masukan? Marvin sedang dalam pengembangan aktif, dan kami ingin mendengarnya.