Marvin ist ein leichtes KI -Toolkit zum Aufbau natürlicher Sprachschnittstellen, die zuverlässig, skalierbar und leicht zu vertrauen sind.
Jedes der Tools von Marvin ist einfach und selbstdokumentiert und verwendet AI, um gemeinsame, aber komplexe Herausforderungen wie Entitätsextraktion, Klassifizierung und Generierung von synthetischen Daten zu lösen. Jedes Tool ist unabhängig und inkrementell adoptierbar, sodass Sie sie selbst oder in Kombination mit einer anderen Bibliothek verwenden können. Marvin ist auch multimodal und unterstützt sowohl die Bild- als auch die Audiogenerierung sowie Bilder als Eingaben für die Extraktion und Klassifizierung.
Marvin ist für Entwickler, die sich mehr darum kümmern, KI als den Aufbau von KI zu verwenden , und wir konzentrieren uns darauf, eine außergewöhnliche Entwicklererfahrung zu schaffen. Marvin-Benutzer sollten sich befugt fühlen, "AI Magic" in ein traditionelles Softwareprojekt mit nur wenigen zusätzlichen Code-Zeilen in ein traditionelles Softwareprojekt zu bringen.
Marvin zielt darauf ab, die besten Praktiken für den Aufbau zuverlässiger, beobachtbarer Software mit den besten Verfahren zum Aufbau von generativer KI in eine einzelne, benutzerfreundliche Bibliothek zu verschmelzen. Es ist ein ernstes Werkzeug, aber wir hoffen, dass Sie Spaß daran haben.
Marvin ist Open-Source, kostenlos und hergestellt? vom Team bei Präfekt.
Installieren Sie die neueste Version mit pip
:
pip install marvin -U
Um Ihre Installation zu überprüfen, führen Sie marvin version
in Ihrem Terminal aus.
Marvin besteht aus einer Vielzahl nützlicher Tools, die alle unabhängig verwendet werden. Jedes repräsentiert ein gemeinsames LLM-Anwendungsfall und Pakete, die in eine einfache Selbstdokumentationsschnittstelle führen.
? Schreiben Sie benutzerdefinierte AI-betriebene Funktionen ohne Quellcode
? ️ Text in Kategorien einklassifizieren
? Strukturierte Einheiten aus dem Text extrahieren
? Text in strukturierte Daten verwandeln
Generieren Sie synthetische Daten aus einem Schema
? ️ Bilder aus Text oder Funktionen erstellen
Beschreiben Sie Bilder mit natürlicher Sprache
? ️ Bilder in Kategorien einklassifizieren
? Strukturierte Einheiten aus Bildern extrahieren
? Bilder in strukturierte Daten umwandeln
Generieren Sie Sprache aus Text oder Funktionen
✍️ Transkribieren Sie die Rede aus aufgezeichneten Audio
"Nutzern Sie Benutzer kontinuierlich oder als einzelne Phrasen auf
"Video" kontinuierlich aufnehmen
? Chatten Sie mit Assistenten und verwenden Sie benutzerdefinierte Tools
? Bauen Sie Anwendungen auf, die den anhaltenden Staat verwalten
Hier ist eine Whirlwind -Tour durch einige der Hauptmerkmale von Marvin. Weitere Informationen finden Sie in den Dokumenten!
Marvin kann Text mit einer Reihe von Beschriftungen classify
:
import marvin
marvin . classify (
"Marvin is so easy to use!" ,
labels = [ "positive" , "negative" ],
)
# "positive"
Erfahren Sie hier mehr über die Klassifizierung.
Marvin kann strukturierte Einheiten aus dem Text 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")
# ]
Fast alle Marvin -Funktionen können instructions
für mehr Kontrolle erhalten. Hier extrahieren wir nur Geldwerte:
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]
Erfahren Sie hier mehr über die Entitätsextraktion.
Marvin kann synthetische Daten für Sie, die folgenden Anweisungen und ein optionales Schema 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'),
# ]
Erfahren Sie hier mehr über die Datenerzeugung.
Marvin kann jedem Python -Typ willkürlicher Text cast
:
marvin . cast ( "one two three" , list [ int ])
# [1, 2, 3]
Dies ist nützlich, um Texteingänge zu standardisieren oder die natürliche Sprache mit einem Schema anzupassen:
class Location ( pydantic . BaseModel ):
city : str
state : str
marvin . cast ( "The Big Apple" , Location )
# Location(city="New York", state="New York")
Für einen klassenbasierten Ansatz kann Marvins @model
Decorator auf jedes pydantische Modell angewendet werden, um es aus dem Text instanziiert zu lassen:
@ marvin . model
class Location ( pydantic . BaseModel ):
city : str
state : str
Location ( "The Big Apple" )
# Location(city="New York", state="New York")
Erfahren Sie hier mehr über Casting zu Typen.
Mit Marvin-Funktionen können Sie alle Eingänge, Anweisungen und Ausgabetypen kombinieren, um benutzerdefinierte Verhaltensweisen mit KI-betriebenen Verhaltensweisen zu erstellen ... ohne Quellcode. Diese Funktionen können weit über die Funktionen von extract
oder classify
hinausgehen und sind ideal für komplexe Verarbeitung oder Kartierung von Eingängen von natürlichen Sprachen oder Kartierung von Eingängen zu Ausgängen.
@ 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 -Funktionen sehen genauso aus wie reguläre Python -Funktionen, außer dass Sie keinen Quellcode schreiben müssen. Wenn diese Funktionen aufgerufen werden, interpretiert eine KI ihre Beschreibung und Eingaben und generiert die Ausgabe.
Beachten Sie, dass Marvin nicht funktioniert, indem er Quellcode generiert oder ausführt, was für die meisten Anwendungsfälle unsicher wäre. Stattdessen verwendet es das LLM selbst als "Laufzeit", um Funktionen auszudehnen. Das ist eigentlich die Quelle seiner Leistung: Marvin -Funktionen können komplexe Anwendungsfälle verarbeiten, die schwierig oder unmöglich als Code ausdrücken wären.
Hier erfahren Sie mehr über Funktionen.
Marvin kann Bilder aus dem Text paint
:
marvin . paint ( "a simple cup of coffee, still warm" )
Erfahren Sie hier mehr über die Bildgenerierung.
Zusätzlich zu Text unterstützt Marvin die Bildunterschriften, Klassifizierung, Transformation und Extraktion von Bildern unter Verwendung des GPT-4-Vision-Modells:
marvin . classify (
marvin . Image . from_path ( "docs/images/coffee.png" ),
labels = [ "drink" , "food" ],
)
# "drink"
Marvin kann die Sprache transkribieren und Audio außerhalb des Boxs generieren, aber das optionale audio
Extra bietet Dienstleistungen für das Aufnehmen und Abspielen von 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 ()
Feature -Idee? Teilen Sie es im #development
-Kanal in unserer Zwietracht.
? Einen Fehler gefunden? Fühlen Sie sich frei, ein Problem zu eröffnen.
? Rückmeldung? Marvin ist unter aktiver Entwicklung und wir würden es gerne hören.