Матрица приглашения - это небольшой пакет Python, который расширяет строку, которая указывает матрицу приглашения. Например, строка "The <dog|cat> in the hat"
расширяется в список ["The dog in the hat", "The cat in the hat"]
.
Мотивирующий случай для этого пакета заключается в сравнении эффектов различных подсказок в системах текста и генерации изображений, таких как стабильная диффузия и GPT-3.
Строка приглашения может содержать несколько чередований. Например, "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"
.
Приглашенная строка может содержать вложенные чередования. Например, "The <<small|large> dog|cat>"
производит струны "The small dog"
, "The large do"
и "The cat"
.
Кроншеты []
Прилагают дополнительные элементы. Например, "The [small] cat"
эквивалентна "The <small,> cat"
и оба создают струны "The small cat"
и "The cat"
.
Специальные символы <>{}|
можно заменить различными строками или отключить, указав None
или пустую строку.
Примечание . Дизъюнкция ограничена вмешательными скобками, если таковые имеются.
"The dog|cat in the cardigan|hat"
генерирует три струны"The dog"
,"cat in the gardigan"
и"hat"
. Это в отличие от некоторых других систем, которые охватывают разброс по тексту, разграниченному окружающим пробелом.
$ pip install prompt-matrix
Matrix Matrix предоставляет две функции для расширения матрицы приглашения: expand
и iterexpand
. Оба принимают строку, которая указывает матрицу быстрого.
expand
возвращает массив струн со всеми возможными комбинациями элементов матрицы быстрого матрицы.
import prompt_matrix
prompt = "<hi|hello> <there|you>"
expansion = prompt_matrix . expand ( prompt )
print ( expansion ) # ["hi there", "hi you", "hello there", "hello you"]
iterexpand
возвращает генератор, который дает расширения один за другим.
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"
Пример 1: Основное использование
import prompt_matrix
prompt_matrix . expand ( "The <dog|cat> in the hat" )
# ->
# ["The dog in the hat",
# "The cat in the hat"]
Пример 2: Использование нескольких чередований
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"]
Пример 3: Использование вложенных кронштейнов
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"]
Пример 4: Использование пользовательских кронштейнов и сепаратора
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"]
Версия JavaScript этой библиотеки находится по адресу https://github.com/osteele/prompt-matrix.py.
Грань