Eingabeaufforderung Matrix ist ein kleines Python -Paket, das eine Zeichenfolge erweitert, die eine Eingabeaufforderung Matrix angibt. Zum Beispiel erweitert die Zeichenfolge "The <dog|cat> in the hat"
auf die Liste ["The dog in the hat", "The cat in the hat"]
.
Das motivierende Fall für dieses Paket besteht darin, die Auswirkungen verschiedener Eingabeaufforderungen in Text- und Bildgenerierungssystemen wie stabile Diffusion und GPT-3 zu vergleichen.
Eine Eingabeaufforderung kann mehrere Alternativen enthalten. Zum Beispiel "The <dog|cat> in the <cardigan|hat>"
erzeugt eine Liste der vier Saiten "The dog in the cardigan"
, "The dog in the hat"
, "The cat in the cardigan"
und "The cat in the hat"
.
Eine schnelle Zeichenfolge kann verschachtelte Wechsel enthalten. Zum Beispiel "The <<small|large> dog|cat>"
erzeugt die Saiten "The small dog"
, "The large do"
und "The cat"
.
Brackets []
Bleiben Sie optionale Elemente ein. Zum Beispiel entspricht "The [small] cat"
"The <small,> cat"
und beide produzieren die Saiten "The small cat"
und "The cat"
.
Die Sonderzeichen <>{}|
kann durch verschiedene Zeichenfolgen ersetzt oder deaktiviert werden, indem None
oder die leere Zeichenfolge angegeben werden.
Hinweis : Die Disjunktion wird gegebenenfalls durch die umschließenden Klammern begrenzt.
"The dog|cat in the cardigan|hat"
erzeugt die drei Saiten"The dog"
,"cat in the gardigan"
und"hat"
. Dies steht im Gegensatz zu einigen anderen Systemen, die eine Disjunktion des Textes, der durch die umgebende Whitespace ausgenommen ist, umzusetzen.
$ pip install prompt-matrix
Die Eingabeaufforderung Matrix bietet zwei Funktionen für die Erweiterung einer Eingabeaufforderung Matrix: expand
und iterexpand
. Beide nehmen eine Zeichenfolge, die eine Eingabeaufforderung Matrix angibt.
expand
Sie eine Reihe von Zeichenfolgen mit allen möglichen Kombinationen der schnellen Matrixelemente.
import prompt_matrix
prompt = "<hi|hello> <there|you>"
expansion = prompt_matrix . expand ( prompt )
print ( expansion ) # ["hi there", "hi you", "hello there", "hello you"]
iterexpand
gibt einen Generator zurück, der die Erweiterungen nacheinander ergibt.
import prompt_matrix
prompt = "<hi|hello> <there|you>"
for expansion in prompt_matrix . iterexpand ( prompt ):
print ( expansion ) # "hi there", "hi you", "hello there", "hello you"
Beispiel 1: Grundnutzung
import prompt_matrix
prompt_matrix . expand ( "The <dog|cat> in the hat" )
# ->
# ["The dog in the hat",
# "The cat in the hat"]
Beispiel 2: Verwenden mehrerer Alternativen
prompt_matrix . expand ( "The <dog|cat> in the <cardigan|hat>" )
# ->
# ["The dog in the cardigan",
# "The dog in the hat",
# "The cat in the cardigan",
# "The cat in the hat"]
Beispiel 3: Verwenden verschachtelter Klammern
prompt_matrix . expand ( "The <<small|large> <brown|black> dog|<red|blue> fish>" )
# ->
# ["The small brown dog",
# "The small black dog",
# "The large brown dog",
# "The large black dog",
# "The red fish",
# "The blue fish"]
Beispiel 4: Verwenden von benutzerdefinierten Klammern und Separator
prompt_matrix . expand ( "The {dog,cat} in the {cardigan,hat}" ,
brackets = [ '{' , '}' ], alt = ',' )
# ->
# ["The dog in the cardigan",
# "The dog in the hat",
# "The cat in the cardigan",
# "The cat in the hat"]
Die JavaScript-Version dieser Bibliothek finden Sie unter https://github.com/osteele/prompt-matrix.py.
MIT