BAZMAN: различия между версиями
imported>Cat Weird |
imported>Mikhail (Добавил категории) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 89: | Строка 89: | ||
<code>"description": "Моя реально охуенная база, попробуйте, не пожалеете!",</code> | <code>"description": "Моя реально охуенная база, попробуйте, не пожалеете!",</code> | ||
<code>"author": "Ментейнер Базмана < | <code>"author": "Ментейнер Базмана <[/cdn-cgi/l/email-protection <nowiki>[email protected]</nowiki>]>",</code> | ||
<code>"path": "bases/the_most_fucking_great_base"</code> | <code>"path": "bases/the_most_fucking_great_base"</code> | ||
Строка 96: | Строка 96: | ||
Далее необходимо всего лишь перезапустить сервер, например, в нашем случае это делается командой <code>systemctl restart bazman</code>. Если сервер включается слишком долго при обновлении/добавлении баз - это нормально. Длительность процесса зависит, как правило, от веса базы. | Далее необходимо всего лишь перезапустить сервер, например, в нашем случае это делается командой <code>systemctl restart bazman</code>. Если сервер включается слишком долго при обновлении/добавлении баз - это нормально. Длительность процесса зависит, как правило, от веса базы. | ||
[[Категория:Избранные статьи]] | |||
[[Категория:Продукты Catware]] | |||
[[Категория:Docs]] |
Текущая версия от 07:12, 10 ноября 2022
BAZMAN (котоебск. Base Manager, БАЗМАН, Базманификатор, Базовый мужик, Бееейсд!, это база) - менеджер баз для Python-модуля Markovify. Исходные коды можно найти на GitHub, но я думаю что от него вы и пришли сюда, чтобы взглянуть на нашу документацию по нему.
Деплоймент сервера Bazman
Первым делом, склонируйте последнюю версию:
git clone https://github.com/Catware-Foundation/BAZMAN.git
cd BAZMAN
Для прикола, можете развернуть VENV в этой директории, если вам вдруг приниципиально, но лично в данном примере будет демонстрироваться запуск на голом железе.
Поставьте необходимый хост и порт, обзовите сервер:
nano conf/main.json # Вместо nano можете использовать любимый редактор
Если вы хотите, чтобы к вашему серверу имели доступ вне локальной сети, установите 0.0.0.0 в значение сервера.
Предупреждение! Не давайте доступ к своему серверу, если в логах проскакивает WARNING: This is
, то советуем воспользоваться сервером uWSGI. В ином же случае, сервер будет фактически не готов к высоким нагрузкам, атакам и др. говну.
govno development server. Do not use it in a production deployment
Собственно, сервер настроили, теперь установим зависимости для него:
pip install markovify flask flask_cors
Когда зависимости установлены, можно спокойно запускать. Советуем создать сервис systemd для того, чтобы удобно управлять состоянием сервера.
Иерархия файлов
conf
- Папка с конфигурационными файлами формата JSON. Содержат данные о зарегистрированных базах, порт/адрес и имя сервера, и информацию о продукте: версию, название и номер релиза для сравнения свежести релизов.
bases
- Папка с базами в формате plain text, которая должна содержать ещё 2 папки: source
и serial
. В первой должны находиться файлы, общий вес должен желательно составлять более 10 МБ для корректных генераций. Особенно хорошо, когда в тексте поменьше пуктуальных ошибок. А во второй - файл с сериализованным обьектом Pickle для того, чтобы не генерировать базу каждый раз (а соответственно и ожидать). Настоятельно рекоммендуем удалить файл из папки, если качаете BazMan откуда-то кроме как с нашего GitHub. Можете удалить даже если качаете с нашего GitHub, но это в случае, если страдаете параноей.
log
- Папка, содержащая mainlog.txt. Если не имеете доступа к консоли, то сойдёт. Впрочем-то, никто не запрещает логировать в эту папку что-то ещё.
web
- Папка со статическими файлами, например туда можно поместить фронтенд для вашего проекта, как например здесь.
Rest API
/
- Web-сервер для удобного сервинга страниц HTML. Например, как уже сказано выше, может лежать фронтенд для вашего проекта.
/bases
- список баз в формате JSON. Примерный вид:
[
{"name": "Initial Base",
"description": "The initial base for checking the performance of your BazMan server. Taken from https://github.com/Catware-Foundation/Paste-Base",
"author": "Cat Weird <vk.com/catweird>",
"path": "bases/initial_base"
},
{
"name": "LibreSpeak Base",
"description": "Base LibreSpeak: once upon a time there was one conversation, and there were very, very many idiots and fools in it...",
"author": "Cat Weird <vk.com/catweird>",
"path": "bases/librespeak_base"}
] # ... не знаю, зачем здесь прилагается путь к базе из conf/bases.json, но я думаю будет полезно.
/gen?num=ИНДЕКС_В_ВЫШЕУКАЗАННОМ_СПИСКЕ
- сама генерация смешнявки. Например, если вызвать с индексом 0, то вызовет первую из примера базу (Initial Base).
Управление текстовыми базами
В папке bases лежат базы по следующей структуре:
bases
|
+------ initial_base
|
+------ source: file1.txt, file2.txt, file3.txt
|
+------ serial: base.pickle
Собственно, чтобы удалить/создать базу, необходимо пополнить эту папку на ещё одну базу, в ней создать папки source и serial, закинуть файлы в папку source, а далее зарегистрировать базу в файле conf/bases.json -- обьект базы в списке выглядит примерно так:
{
"name": "Моя охуенная база",
"description": "Моя реально охуенная база, попробуйте, не пожалеете!",
"author": "Ментейнер Базмана <[/cdn-cgi/l/email-protection [email protected]]>",
"path": "bases/the_most_fucking_great_base"
}
Далее необходимо всего лишь перезапустить сервер, например, в нашем случае это делается командой systemctl restart bazman
. Если сервер включается слишком долго при обновлении/добавлении баз - это нормально. Длительность процесса зависит, как правило, от веса базы.