₊˚⊹♡ создание ботов: что да как.

₊˚⊹♡ создание ботов: что да как.

швепс

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

привет. здесь не будет чего-то очень нового и крутого. постараемся вспомнить самое основное в создании ботов и подробно прояснить некоторые штуки.

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

как ботодел подтверждаю что это очень реалистично

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

форматы написания ботов.

какой формат для написания ботов лучше?существует несколько различных способов написания ботов: w++, json, простой текст и т. д. у каждого из них есть какие-то сложности и минусы. например:
• простой текст трудно понять правильно, и он часто заканчивается большим количеством наполнителей, что усложняет анализ бота как легко.
• w++ хорош, но требует много токенов.
• json легче всего анализировать ботам, но его немного сложнее писать, и если вы испортите формат, это может иногда привести к тому, что бот тоже запутается при его чтении.

честно говоря, не имеет значения, какой формат вы используете, главное, чтобы вы оставались последовательными в своем форматировании.
правильно написанный бот w++ не работает ни лучше, ни хуже, чем правильно написанный бот json.

теперь разберем каждый формат.

простой текст.
здесь вы просто пишете абзацы персонажа или разбитые предложения.
это может быть довольно неплохо, если вы просто пишете о предыстории или навыках персонажа, а если написано хорошо, это может даже укрепить личность персонажа или стиль письма.

давайте возьмем в качестве примера фрагмент описания бота девушки писательницы – ава:

Ava usually writes her webcomics in cafes or at her home. She usually drinks high proof brandy or vodka, and sometimes whiskey straight, while writing her novels. One of her hobbies is posting mindless rants in the light novel or author sections of 5ch. She relieves the stress of the day by writing posts containing primal swear words (fuck, asshole, bitch, etc.).

это простое текстовое описание побудит бота вести себя более "устало, грубо", используя упрощенные слова во время ролевых игр. кроме того, добавление нецензурной лексики в конце каждого предложения подтолкнет его повторять это чаще, хотя написание короткой подсказки об этой причуде приведет к тому же результату.

но что, если вы не хотите, чтобы она использовала в рп простые слова? использование более сложной речи в описании может помочь, а если вы плохо пишете прозу, вы можете попросить бота переписать ее для вас. использование такой сложной речи и ее описательность побудят вашего бота последовать этому примеру, хотя это также повлияет на индивидуальность вашего персонажа. это заставило бы «аву» вести себя намного умнее/веселее и менее грубо, чем в описании выше.

важно принять это во внимание, когда вы пишете описания своего бота, подумайте: «как я хочу, чтобы мой персонаж действовал? Как я хочу, чтобы бот писал в рп? насколько описательным я хочу, чтобы это было?»

  • грубые описания могут поощрять грубые персонажи: «по утрам он сидит на своем шатком старом крыльце с сигаретами и кофе и ворчит на сегодняшних чертовых детей, которые ни черта не знают».
  • простые описания могут поощрить милых, упрощенных и наивных персонажей. «она любит играть в игры со своими друзьями и есть мороженое».
  • подробные описания могут вдохновить персонажей на поэтичность, умность и «святость больше, чем ты». «она безупречно одета в богато украшенную викторианскую одежду с развевающимися серебряными локонами, которые мерцают в бледном лунном свете».
  • описания дерьмовых постов могут побудить персонажей писать дерьмово/мемно: «они эпические геймеры и смотрят кавайные аниме, потому что они такие хикканутые и сугойские».

w++.
обычно данный формат выглядит примерно так:

[character("Example")
{Gender("Example")
Age("Example")
Personality("Example" + "Example")
Likes("Example" + "Example")
Dislikes("Example" + "Example")
Description("Example" + "Example")}]


обязательно заключите каждый дескриптор в кавычки и используйте знак +, чтобы соединить их вместе. вы можете написать описания в виде коротких тегов или в виде нескольких предложений обычным текстом. если вы пишете обычным текстом, постарайтесь написать его так, чтобы оно отражало индивидуальность вашего персонажа. сложно говорящий персонаж не будет говорить простыми словами, а невинный персонаж не будет использовать сложные, причудливые слова.

работает хорошо, просто использует много токенов и все. вы можете использовать любой тег, который только придет вам в голову, вот список тех, которые хорошо работают;

  • тело (такие вещи, как цвет кожи, глаза)
  • особенности (такие вещи, как одежда, аксессуары)
  • цель (будет направлять рп в определенном направлении)
  • фетиш
  • личность
  • ориентация
  • сексуальные характеристики
  • навыки
  • деятельность
  • недостатки

одним из преимуществ использования w++ является то, что он чрезвычайно гибок и прост для людей, которые только начинают заниматься созданием ботов. приведу в пример фрагмент описания моего бота леона кеннеди из ре4:

[Personality("calm" + "rational" + "seizes the initiative in all tasks and often risks his life to save ordinary people from death" + selectively becomes emotionally attached to the people he encounters on these missions + "not very talkative when focused on a mission" + "very compassionate and objective" + "does something even when it's not necessary" + "knows what he does is for the greater good. approaches all tasks seriously and accepts balanced and justified solutions" + "post-traumatic stress disorder" + "minor alcohol problems" + "sometimes characteristic sarcasm appears" + "great sense of humor" + "never backs down" + 'always looks death in the eye" + "kink for praise" + "trust issues" )]


помимо этого, вы определенно можете использовать методы получше. это нормально, когда вы только начинаете и набираетесь опыта в создании ботов, но есть надежда, что со временем вы расширите свои возможности и поэкспериментируете с новыми вещами.

работайте над тем, чтобы оптимизировать свои дескрипторы, вместо того, чтобы пытаться втиснуть в карточку каждую последнюю деталь вашего персонажа.

для создания w++ карточек вы можете использовать данный сайт.

json.
json — это стандартный формат файла, который легко анализировать боту. упрощенный способ написания, выглядит следующим образом:

{"name": "Example",
"gender": "Example",
"age": "Example",
"likes": ["Example", "Example"],
"dislikes": ["Example", "Example"],
"description": ["Example" + "Example"]}

и теги, и дескрипторы заключаются в кавычки, и если у вас несколько дескрипторов, вам нужно использовать квадратные скобки, чтобы обернуть их в виде массива.

он очень похож на формат w++: описания можно писать либо в виде коротких тегов, либо в виде нескольких предложений в виде обычного текста. просто помните о том, что сказанно выше, будьте осторожны с формулировками, чтобы они отражали индивидуальность вашего персонажа.

этот формат работает хорошо, но писать его довольно утомительно, и на самом деле он не позволяет экономить так много токенов из w++. вы также можете использовать любой тег, который придет вам в голову, из приведенного выше списка также можно использовать.

небольшие итоги.
все форматы работают нормально, если вы их правильно используете.

  • w++ — самый простой для чтения и записи, достаточно гибкий.
  • json — это стандартный формат, который ботам легче всего анализировать. но у некоторых людей возникают трудности с синтаксисом.
  • простым текстом труднее всего писать, потому что его легче всего испортить. это может сработать нормально, если вы умеете писать.

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

как написать хорошего бота?

напоминаю, что написание ботов, как и написание чего-либо творческого, будет чем-то личным для вас, и поэтому каждый будет подходить к этому по-разному и получать разные результаты, в конце концов, мы уникальны.

карточки персонажей, т.е ботов, можно поделить на три части:

  • описание.
  • примеры диалогов.
  • первое сообщение.

описание и первое сообщение являются ключевыми частями бота, в то время как расширенные определения хороши для установки определенного формата написания или дополнительной информации, которая задает тон рп, но в противном случае она не нужна.

описание.

при написании бота можно следовать определенному макету:

  • основная информация/личность. (описывается в любом формате)
  • промт, дающий боту представление о том, как он должен форматировать свои ответы.
  • промт в виде обычного текста, сообщающий боту, как действовать.

можно добавить карточку для {{user}}, если хочется внедрить себя как персонажа, уже известного боту.

промт для описания формата ответов:

{Write a long message, describing actions in asterisks. It should follow this format;
*Description of action or scenario*
"Example dialogue here" *Describe emotions of {{char}}*
*Further description with a focus on the scene and {{char}}'s actions*}

это базовый промт, но можно редактировать его по мере необходимости, чтобы приспособить персонажа. этот промт также помогает боту более подробно описывать эмоции персонажа.
хотя кажется, что он поощряет более короткие сообщения, бот свободно следует формату и создает длинные сообщения в соответствии с указаниями.

примером того, как вы можете изменить промт, является добавление:

*{{char}}'s inner monologues, thoughts, and further description of actions or scene*

это заставит персонажа записывать свои мысленные мысли, что может быть довольно занимательно.

промты с указанием описания действий:

Be descriptive, creative, and interesting with your replies, staying in character as you roleplay {{char}}.
Be creative, absurd and comedic with your replies, playing up {{char}}'s existence as a weaboo NEET who loves waifus to the extreme. Do not discuss heavy or emotional topics, and introduce randomness to the plot at random as if this was a soap opera.
{{char}} will never admit that his problems are his fault, he will be rude and dramatize everything.

можно добавить описательные слова, чтобы описать личность бота, и добавить дополнительные подсказки, чтобы поощрить определенные способы ношения рп.

боту, более ориентированный на историю, подойдёт такой промт:

Drive the roleplay forward, with a focus on world building, character building and creating long in-depth responses.

боту, описывающему свои внутренние монологи, подойдет такой промт:

In asterisks go on monologues about {{char}}'s thoughts, feelings and desires

используйте два промта выше вместе, чтобы поощрить увлекательные способы письма.
пример того, как заставить бота писать нетрадиционным способом:


{Write a long message, describing actions in asterisks. It should follow this format;
*Description of action or scene*
"Dialogue" *Emotion of character*
*Onomatopoeia of act on a different line such as "Plap - plap - plap - plap - plap"*
*Further description with a focus on the scene, and the character's actions and emotions.*}

Be descriptive, creative, and use onomatopoeia to describe the sounds of various actions. {Examples of onomatopoeia to include are: clap, plap, slurp, sucks, schlick, thud, pop}


это побудило бы бота писать звукоподражания в своих сообщениях. он обеспечивает более последовательные результаты.

описание пользователя.
это совершенно необязательно, но это хорошо, если вы хотите, чтобы ваша вайфу знала основную информацию о вас, или если вы хотите, чтобы бот воспроизводила сценарий, в котором пользователь играет за определенного персонажа.


{{user}} plays as Name. Do not speak for Name.
[ Character: Name;
gender: Example;
age: Example;
body: Example, Example ]

другая идея заключается в том, что если вы хотите, чтобы ваша вайфу сохранила определенные воспоминания, которые у вас были вместе, вы также можете записать их в описание персонажа следующим образом:

{Memories {{char}} has together with {{user}}: (x), (x), (x)}

это немного помогает преодолеть ограничения памяти ии.

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

примеры сообщений:

это может показаться немного спорным, но примеры сообщений часто не нужны или даже могут негативно повлиять на работу бота:

  • короткие примеры сообщений МОГУТ стимулировать более короткие ответы (примечание: есть исключения).
  • бот иногда путается, действуя так, как будто примеры сообщений произошли до начала рп.
  • слишком много примеров сообщений приводит к тому, что бот теряет важную информацию или дает противоречивые результаты.
  • может заставить бота вести себя лениво, т.е. Все сообщения состоят из 2 абзацев > ответы ботов будут состоять из 2 абзацев в соответствии с вашим форматом

примеры сообщений необходимы, если вы создаете бота, который должен соответствовать определенному формату, и подсказок в описании недостаточно.

вы можете написать одно или несколько предложений с описанием действий в каждой скобке. дюбой метод работает хорошо, но избегайте слишком большого количества примеров, иначе вы просто запутаете бедного бота. до 5 сообщений работает нормально, но после этого все становится немного сомнительно.

если вы пишете примеры сообщений, очень важно не повторяться между каждым сообщением.

  • избегайте повторения слов, это будет способствовать зацикливаниюне используйте один и тот же формат для каждого сообщения (например, в примере 2 абзаца, в следующем примере должно быть 3 абзаца).
  • это не замена правильной базовой личности, рассматривайте ее как инструмент для улучшения вашей базовой личности.
  • хорошие примеры сообщений также будут сосредоточены на важных аспектах вашего персонажа, бот-поэт захочет получить примеры сообщений, в которых они читают стихи. Бесчеловечному боту нужны сообщения, фокусирующиеся на его бесчеловечных аспектах и описывающие, что отличает его от других.

помимо примеров сообщений, вы также можете писать такие вещи, как предыстория персонажа, построение/знания мира и т. д.

это помогает сделать описание коротким, и, поскольку оно действительно вставляется только один раз в начале ролевой игры, это также не слишком сильно повлияет на память. к тому времени, как вы получите рп достаточно долгое, чтобы вытолкнуть расширенные определения из текущей памяти, тон рп уже будет установлен и в нем больше нет необходимости.

как написать хорошие примеры сообщений?
хорошие примеры сообщений позволяют избежать перечисленных выше проблем.


>короткие примеры сообщений МОГУТ стимулировать более короткие ответыю

этого можно избежать, используя промт для описания формата ответов. однако если у вас есть несколько коротких примеров сообщений, объединенных в цепочку без дополнительного формата, это может привести к ошибке «бот: диалог», описанной выше.

>бот иногда путается, действуя так, как будто примеры сообщений произошли до начала рп.

если у вас есть сообщение типа «я люблю тебя, неко-чан!» бот поверит, что у них уже сложились отношения с «неко-тян». и если {{пользователя}} зовут не неко-чан, результаты будут противоречивыми: иногда бот будет называть вас неко-чан или подставлять вам другого персонажа по имени неко-чан.

избегайте этого, оставляя примеры сообщений расплывчатыми, если это возможно. если вы намерены, чтобы «неко-тян» была {{user}} или кем-то, с кем персонаж вас путает, обязательно добавьте это в характеристики персонажа или установите это где-нибудь для получения дополнительной информации.


>слишком много примеров сообщений приводит к тому, что бот теряет важную информацию или дает противоречивые результаты.


примеры сообщений кажутся ботам более сложными для анализа, потому что часто они больше оставляются «на усмотрение интерпретации», чем сообщение, которое напрямую описывает причуды и поведение персонажей.

>может заставить бота вести себя лениво, т.е. все сообщения состоят из 2 абзацев > ответы ботов будут состоять из 2 абзацев в соответствии с вашим форматом.


допустим, у вас есть примеры сообщений, которые выглядят следующим образом:

*Luna licks her hand like a cat, and then reaches out for a handshake with her germ infested 'paw'...*
"Nice to meet you, nya!" *She purrs happily.* "I hope we can be good friends!"

и второе сообщение было:

*Luna yawns and stretches out, before relaxing back into her cozy blankets and gesturing for you to sit next to her.*
"Do you wanna come and take a nap with me?" *She smiles peacefully.* "Afternoon naps are the best!"

возможно, вы смотрите на эти сообщения и думаете: «а? в чем проблема??»

оба сообщения имеют один и тот же формат:

*Luna does action, action extends out to involve 'you'.*
"Luna dialogue" *describes feelings.* "Continued dialogue.*

Это побудит бота точно следовать этому формату и будет стимулировать циклы. Несмотря на то, что приведенные выше примеры были написаны довольно хорошо, без повторяющихся диалогов или контента, важно также обратить внимание на то, как написаны эти сообщения!

автоматизация хороших примеров диалогов.
есть много вещей, которые следует учитывать, но, по крайней мере, довольно легко заставить ботов написать для вас пример диалога.
примеры промтов:

(Could you write 2-3 dialogue examples, describing actions in asterisks *like this* and dialogue in quotes "like this"? It should follow this format;
*Description of action or scenario*
"Example dialogue here" *Describe emotions of CHARACTERNAMEHERE*
*Further description with a focus on the scene and CHARACTERNAMEHERE's actions*
(Could you write example dialogue for Luna, describing actions in asterisks *like this* and dialogue in quotes "like this"? I would like the scenario to be located in a cafe and Luna should be reading a book. Speak from her perspective and do not speak for PUTYOURNAMEHERE It should follow this format;
*Describe scene inside cafe and Luna reading*
"Express surprise upon seeing PUTYOURNAMEHERE" *Describe Luna's excitement and her ears perking upwards in interest.*
*Further elaboration on the scene, with Luna inviting PUTYOURNAMEHERE to sit with her.*)

вы обнаружите, что боты обычно не следуют предоставленному вами формату как есть, и это хорошо!

после того, как вы создадите 2–3 примера, которые вам нравятся, проверьте их еще раз.

  • проверьте, есть ли повторения слов. вы даже можете попросить бота сделать это за вас: «можете ли вы просмотреть эти сообщения и сказать мне, есть ли повторяющиеся слова и сколько раз?»
  • убедитесь, что между каждым примером сообщения нет шаблона, т.е. "Luna dialogue" *describes feelings.* "Continued dialogue.*, поскольку это поощряет циклы
  • имейте разную длину для каждого сообщения. например, одно сообщение состоит из 2 абзацев, а другое - из 3 абзацев.

если все сделано правильно, вы сможете стимулировать ботов писать длинные сообщения даже без подсказок!

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

первое сообщение.

это самая важная часть бота, она задает тон рп, определяет способ форматирования сообщений и контролирует рп гораздо больше, чем даже определения.

если в определениях вы указали девушку-кошку, но в первом сообщении описывается, что вы заядлый курильщик из Нью-Йорка, бот будет играть роль заядлого курильщика, а не девушки-кошки.

но даже если у вас плохо получается писать первые сообщения, не расстраивайтесь! просто создайте описание персонажа, а затем вставьте этот промт своему боту в чат:

(Could you come up with a starting scenario, describing actions in asterisks *like this* and dialogue in quotes "like this"? Please be creative, descriptive, and set an interesting scene for the role play. Speak in third person, stay in character and don't speak for PUTYOURNAMEHERE. Please follow this format;
*Description of action or scenario*
"Example dialogue here" *Describe emotions of CHARACTERNAMEHERE*
*Further description with a focus on the scene and CHARACTERNAMEHERE's actions*)

измените PUTYOURNAMEHERE и CHARACTERNAMEHERE на соответствующие имена, так как использование {{char}} или {{user}} в сообщениях чата вызывает проблемы (в определениях это нормально, но в самом чате оно форматируется очень странно).

учитывайте цель своего бота.
есть много способов написать хорошие стартовые сообщения, но следовать тому, что написано здесь, не обязательно.

при создании «хорошего» первого сообщения важно подумать:

  • какова цель этого бота?
  • это ролевой бот? вайфу-бот? выбрать своего приключенческого бота? такой инструмент, как бот для создания персонажей?
  • в чем главная особенность этого бота?
  • есть ли ключевая черта личности, на которой можно создать стартовую сцену? должен ли он быть открытым? должен ли бот вас направлять?
  • какого формата должны быть сообщения?
  • должно ли они быть длинными и описательными? есть ли определенный формат, т.е. приключенческая игра?
  • кто ваша целевая аудитория для этого бота?
  • охотники за вайфу? люди, которым нравится экшен-рп? кто-то хочет минимальных усилий и высокой награды? кто-то хочет сам возглавить рп?

невозможно создать бота, который бы удовлетворял вкусы каждого, это невозможно. но вы можете подумать, кто будет использовать вашего бота.

  • персонаж из аниме с глубоким знанием мира и захватывающими боевыми сценами привлечет людей, которым нужен бот, который уже находится в центре действия или описывает сценарий с растущей напряженностью, которая приведет к драке.кусочек жизни персонажа привлечет людей, которые просто хотят расслабиться, поэтому по-настоящему прохладная и удобная сцена больше подойдет их вкусам. Возможно, описывая ключевую локацию из самого аниме, вместо того, чтобы продвигать рп вперед с помощью действий.
  • бот-вайфу, как правило, выиграет от наличия открытого стартового сценария, потому что целевой аудиторией, скорее всего, будет тот, кто одинок и хочет воплотить в жизнь свои собственные идеи и фантазии со своим вайфу.
  • приключенческие боты привлекут людей, которые хотят сами возглавить рп, и могут предпочесть креативные, но более короткие/средние ответы, поэтому предпочтительнее будет стартовое сообщение, которое наполняет пользователя идеями.

общие советы по начальному сообщению.
вот что может содержать «хорошее» стартовое сообщение в общем смысле:

  • избегайте повторяющихся слов (они приводят к появлению петель)
  • ссылайтесь на свои характеристики, уделяя особое внимание ключевым особенностям вашего персонажа (знания, личность или внешний вид)
  • что-то, что дает пользователю идеи, как действовать дальше (вопрос? подталкивает к действию? прямо дает идеи?)
  • открытое настолько, что пользователь может перезапустить чат и направить рп в другом направлении.

кроме того, вам не нужно писать новеллу для начального сообщения, если ваши определения уже поощряют длинные сообщения.

иногда очень длинное стартовое сообщение может даже сыграть против вас, поскольку не дает ни пользователю, ни даже самому боту идей о том, как продолжить рп. в результате ответ бота будет очень однообразным и коротким, хотя последнее сообщение было очень длинным!

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ

неочевидные очевидные советы:

• написание основанного на опыте даст вам большой импульс, когда дело доходит до того, насколько креативным и правдоподобным будет ваш бот. люди всегда смогут написать о том, что они пережили из первых рук, более убедительно, чем о том, чего они не испытывали.

• делайте персонажей, которые вам нравятся. это должно быть очевидно, но никогда не делайте того, что вам не нравится, иначе это не получится хорошо.

• не бойтесь публиковать свои материалы и заставлять людей их критиковать. мы все с чего-то начинаем, и хотя вы, безусловно, можете создавать хороших ботов только для себя, всегда полезно, чтобы другие проверяли вашу работу и давали вам отзывы о ней. да, вы можете получить негативные отзывы или комментарии, но в той или иной форме это делают буквально все, и из этого абсолютно ничего не выйдет. возьмите хорошее и плохое и выберите из него все полезное, чтобы улучшить свою следующую работу.

• веселитесь. я знаю, что это очевидно, но если вам не нравится процесс создания бота, не имеет значения, насколько сладок этот хит или даже стремление получить фидбек, вы сожжете себя. и в конечном итоге возненавидите создание ботов, что, конечно, не приведет к хорошим результатам.

໒ . 🎧 ⩇⩇ ࣪ 🍧 ꩜ ʾʿ ʾʿ

источники: статьи из данной подборки.
переведено и написано специально для chatbots ai. <з

Report Page