Marvin هي مجموعة أدوات AI خفيفة الوزن لبناء واجهات اللغة الطبيعية التي يمكن الاعتماد عليها وقابلة للتطوير وسهلة الثقة.
كل من أدوات Marvin بسيطة وتوثيق ذاتيًا ، وذلك باستخدام منظمة العفو الدولية لحل التحديات الشائعة ولكن المعقدة مثل استخراج الكيان ، وتصنيفها ، وتوليد البيانات الاصطناعية. كل أداة مستقلة وتبني بشكل متزايد ، بحيث يمكنك استخدامها بمفردها أو بالاشتراك مع أي مكتبة أخرى. Marvin هو أيضًا متعدد الوسائط ، ويدعم كل من توليد الصور والصوت وكذلك استخدام الصور كمدخلات للاستخراج والتصنيف.
مارفن للمطورين الذين يهتمون أكثر باستخدام الذكاء الاصطناعي أكثر من بناء الذكاء الاصطناعي ، ونحن نركز على إنشاء تجربة مطور استثنائية. يجب أن يشعر مستخدمو Marvin بالتمكين من إحضار "AI Magic" بإحكام إلى أي مشروع برمجي تقليدي مع عدد قليل من الخطوط الإضافية من التعليمات البرمجية.
يهدف Marvin إلى دمج أفضل الممارسات لبناء البرامج التي يمكن الاعتماد عليها والتي يمكن ملاحظتها مع أفضل الممارسات للبناء مع الذكاء الاصطناعي التوليدي في مكتبة واحدة سهلة الاستخدام. إنها أداة خطيرة ، لكننا نأمل أن تستمتع بها.
مارفن مفتوح المصدر ، مجاني للاستخدام ، ويصنع معه؟ من قبل الفريق في المحافظ.
قم بتثبيت أحدث إصدار مع pip
:
pip install marvin -U
للتحقق من التثبيت الخاص بك ، قم بتشغيل marvin version
في المحطة الخاصة بك.
يتكون Marvin من مجموعة متنوعة من الأدوات المفيدة ، وكلها مصممة لاستخدامها بشكل مستقل. يمثل كل واحد حالة استخدام LLM مشتركة ، وحزم التي تعمل في واجهة بسيطة توثيق ذاتيا.
؟ اكتب وظائف مخصصة تعمل بمنظمة العفو الدولية بدون رمز المصدر
️ تصنيف النص إلى فئات
؟ استخراج الكيانات منظمة من النص
؟ تحويل النص إلى بيانات منظمة
توليد بيانات اصطناعية من مخطط
️ قم بإنشاء صور من النص أو الوظائف
صف الصور باللغة الطبيعية
️ تصنيف الصور في فئات
؟ استخراج الكيانات منظمة من الصور
؟ تحويل الصور إلى بيانات منظمة
توليد الكلام من النص أو الوظائف
✍ نسخ الكلام من الصوت المسجل
️ سجل المستخدمين بشكل مستمر أو كعبارات فردية
؟ ️ سجل الفيديو بشكل مستمر
؟ الدردشة مع المساعدين واستخدم أدوات مخصصة
؟ بناء التطبيقات التي تدير الحالة المستمرة
إليكم جولة زوبعة في عدد قليل من ميزات مارفن الرئيسية. لمزيد من المعلومات ، تحقق من المستندات!
يمكن لمارفين classify
النص باستخدام مجموعة من الملصقات:
import marvin
marvin . classify (
"Marvin is so easy to use!" ,
labels = [ "positive" , "negative" ],
)
# "positive"
تعرف على المزيد حول التصنيف هنا.
يمكن لمارفين extract
الكيانات المهيكلة من النص:
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")
# ]
يمكن إعطاء جميع وظائف Marvin تقريبًا instructions
لمزيد من التحكم. هنا نستخرج القيم النقدية فقط:
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]
تعرف على المزيد حول استخراج الكيان هنا.
يمكن لمارفين generate
بيانات تركيبية لك ، وبعد الإرشادات والمخطط الاختياري:
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'),
# ]
تعرف على المزيد حول توليد البيانات هنا.
يمكن أن cast
مارفن نصًا تعسفيًا على أي نوع من نوع Python:
marvin . cast ( "one two three" , list [ int ])
# [1, 2, 3]
هذا مفيد لتوحيد مدخلات النص أو مطابقة اللغة الطبيعية مع المخطط:
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . cast ( "The Big Apple" , Location )
# Location(city="New York", state="New York")
للحصول على نهج قائم على الفصل ، يمكن تطبيق Marvin's @model
على أي نموذج Pydantic للسماح له بالتثبيت من النص:
@ marvin . model
class Location ( pydantic . BaseModel ):
city : str
state : str
Location ( "The Big Apple" )
# Location(city="New York", state="New York")
تعرف على المزيد حول الصب إلى الأنواع هنا.
تتيح لك وظائف Marvin الجمع بين أي مدخلات ، وتعليمات ، وأنواع الإخراج لإنشاء سلوكيات مخصصة تعمل بالنيابة ... بدون رمز المصدر. يمكن أن تتجاوز هذه الوظائف قدرات extract
أو classify
، وهي مثالية لمعالجة اللغة الطبيعية المعقدة أو تعيين مجموعات من المدخلات إلى المخرجات.
@ 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
تبدو وظائف Marvin تمامًا مثل وظائف Python العادية ، باستثناء أنه لا يتعين عليك كتابة أي رمز مصدر. عندما يتم استدعاء هذه الوظائف ، يفسر الذكاء الاصطناعى وصفها ومدخلاتها وينشئ الإخراج.
لاحظ أن Marvin لا يعمل عن طريق إنشاء أو تنفيذ رمز المصدر ، والذي سيكون غير آمن لمعظم حالات الاستخدام. بدلاً من ذلك ، يستخدم LLM نفسه كـ "وقت تشغيل" للتنبؤ بمخرجات الوظائف. هذا هو في الواقع مصدر قوتها: يمكن لوظائف Marvin التعامل مع حالات الاستخدام المعقدة التي سيكون من الصعب أو المستحيل التعبير عنها كرمز.
يمكنك معرفة المزيد عن الوظائف هنا.
يمكن لمارفين paint
الصور من النص:
marvin . paint ( "a simple cup of coffee, still warm" )
تعرف على المزيد حول توليد الصور هنا.
بالإضافة إلى النص ، لدى Marvin دعمًا لتسمية التعليق وتصنيف وتحويل واستخراج الكيانات من الصور باستخدام نموذج رؤية GPT-4:
marvin . classify (
marvin . Image . from_path ( "docs/images/coffee.png" ),
labels = [ "drink" , "food" ],
)
# "drink"
يمكن لـ Marvin نسخ الكلام وإنشاء الصوت خارج الصندوق ، ولكن 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 ()
ميزة فكرة؟ شاركها في قناة #development
في خلافنا.
؟ وجدت خطأ؟ لا تتردد في فتح مشكلة.
؟ تعليق؟ مارفن تحت التطوير النشط ، ونود أن نسمعه.