Программирование на языке Пролог на Андроиде

Изменения а приложении с версией 4.03:
chat_SberSaluteSpeech/3 - Синтез речи нейросетью Сбера. Аргументы: 1-ый - текст для синтеза; 2-ий - голос, например: Pon_24000; 3-ой - ответ нейронной сети ввиде аудиозаписи.

Изменения в приложении с версией 4.04:

  1. chat_GigaChat/6 (замена старому chat_GigaChat/5)- генерирует текст нейросетью GigaChat. Аргументы: 1-ый - это атом представляющий из себя системный текст запроса; 2-ой - список атомов представляющих из себя пользовательский текст с ответами нейросети; 3-ий - список изображений использующиеся в текущем запросе к нейросети; 4-ый - тип нейросети: GigaChat Lite, GigaChat Pro и т. д. записывающиеся теперь по внутреннему наименованию: GigaChat, GigaChat-Pro, GigaChat-2-Max и т.д.; 5-ый - температура; 6-ой - это атом: ответ нейронной сети;
  2. chat_GigaChat_image/4 - генерирует изображение нейросетью Гигачатом (если быть точным - это Кандински в оболочке Гигачата; замена этому же предикату). Аргументы: 1-ый - атом представляющий из себя системный текст запроса; 2-ой - атом представляющий из себя обычный текст запроса; 3-ий - тип нейросети: GigaChat Lite, GigaChat Pro и т. д. записывающиеся теперь по внутреннему наименованию: GigaChat, GigaChat-Pro, GigaChat-2-Max и т.д.; 4-ый - ответ нейронной сети ввиде изображения;
  3. В окне, где выбирается нейросеть для помощника, теперь для GigaChat модель нейросети пишется вручную и таким образом: GigaChat, GigaChat-Pro, GigaChat-2-Max и т.д.;
    Модели нейросетей GigaChat можно посмотреть здесь.
  4. Исправлена работа помощника касательно запросов: “написать предикат” и “написать программу”.

Изменения в приложении с версией 4.051:

Предикат img_width/2 переименован на med_width/2.

Изменения в приложении с версией 4.055:

  1. chat_YandexGPT/5 - 3-ий - изменён, теперь сеть задаётся так как в документации, например: в документации написано gpt://<идентификатор_каталога>/yandexgpt-lite , тогда нужно писать в аргументе ‘yandexgpt-lite’. Это позволяет писать любую нейросеть, которая появляется в документации. Например, на сегодняшний день, можно использовать ещё сеть Llama;
  2. Появился предикат speech/2 (появляется окно принимающее голосовые команды) - 1-ый аргумент - заголовок окна; 2-ой аргумент - принимает значение атома, в котором записаны голосовые команды.

Изменения в приложении с версией 4.5:

  1. Атомарный терм, теперь, может быть и видеозаписью;
  2. Ускорено отображение текста в консоль;
  3. Изменён предикат chat_SberSaluteSpeech теперь у него 4 аргумента вместо трёх: 1-ый - текст для синтеза; 2-ой - голос, например: Pon_24000; 3-ий - скорость речи, оно может быть цифрой от 1 до 5 или принимать значение default, кроме того, можно ещё использовать значения ‘x-low’, low, medium, high и ‘x-high’; 4-ый - ответ нейронной сети ввиде аудиозаписи;
  4. Появились новые предикаты:
  • camera_sizeList/1 - выдаёт список возможных разрешений для фотографий всех камер телефона в списке по очереди;
  • camera_photo/4 - делает фотографию по указанной камере с заданным разрешением. Аргументы: 1-ый - идентификатор камеры (обычно 0 или 1); 2-ой - ширина фото в пикселях; 3-ий - высота фото в пикселях; 4-ый - сделанное фото;
  • med_repeat/1 - делает медиатерм (аргумент), если это аудио или видео, зацикленным;
  • med_speed/2 - устанавливает скорость воспроизведения видео или аудио. Аргументы: 1-ый - аудио или видео; 2-ой - скорость воспроизведения, по умолчанию - 1;
  • med_overwrite/2 - меняет медиа в консоли по индексу, на другое медиа. Аргументы: 1-ый - индекс медиа (все медиа отображаемые в консоли, индексируются по порядку, начиная с 0); 2-ой - медиа;
  • video/1 - истиннен, если аргумент является видеозаписью;
  • record_audio/1 - записывает звук с микрофона в прологовскую аудиозапись, которой становится аргумент;
  • speech_SberSaluteSpeech/3 - производит распознавание речи нейросетью Сбера. Аргументы: 1-ый - аудиозапись с речью; 2-ой - выходной текст состоящий из последовательного набора слов которые сказаны в аудиозаписи; 3-ий - выходной нормированный текст;
  • date_time/1 - выдаёт в терме текущую дату и время;
  • delete_row/1 - удаляет строку в консоли. Аргумент - индекс строки. Индексация начинается с 0;
  • clear_console/0 - удаляет в консоли весь текст и все медиа;
  • lchar/3 - выдаёт последний символ строки. Аргументы: 1-ый - последний символ строки (3-ий аргумент); 2-ой - строка-остаток без последнего символа; 3-ий - исходная строка. сочетания входных и выходных аргументов могут быть такими: (i,i,i)(i,o,i)(i,i,o)(o,i,i)(o,o,i);
  • activity_restore/0 - выводит на экран свёрнутое или закрытое окно приложения (для правильной работы, помимо того, что при запросе приложения нужно предоставить разрешение «Отображение всплывающих окон», ещё надо зайти в настройки приложения и в разделе «Другие разрешения» предоставить разрешения «Открывать новые окна, когда запущено в фоновом режиме» и «Экран блокировки»);
  • activity_close/0 - закрывает окно приложения;
  • med_clicked/1 - является истинным, если на медиа из консоли, по заданному индексу (аргумент), было нажато. При нажатии на медиа, эта информация будет в памяти до тех пор, пока не будет выполнен этот предикат. После выполнения предиката информация о нажатии стирается. Индексация начинается с 0;
  • med_no_selected/1 - устанавливает для медиа (аргумент), чтобы при отображении в консоли, нельзя было выделить нажатием на него;
  • med_delete/1 - удаляет медиа в консоли по указанному индексу. Индексация начинается с 0;
  • med_completed/1 - истиннен, если медиа (видео или аудио), в консоли, по индексу (аргумент), завершило проигрывание. Индексация начинается с 0;
  1. Внимание: при попадании медиа в коментарии или одинарных ковычках используемые для атома, медиа исчезает!

Примером использования данных предикатов является программа Аватар.

Изменения в приложении с версией 4.51:

Новые предикаты:

  • chat_KieAiSunoSong/8 - сочиняет 2 песни с помощью нейросеть Suno, которая представляется сайтом https://kie.ai/. 1-ый аргумент - это промпт; 2-ой аргумент - негативный промпт; 3-ий - модель; 4-ый - вокал; 5-ый - используется для управления интенсивностью стиля при генерации аудиозаписи. Чем больше значение параметра, тем сильнее проявляется выбранный стиль речи, будь то эмоциональная окраска голоса, акценты или особенности произношения. Значение в диапазоне от 0 до 1; 6-ий - используется для управления степенью необычности или оригинальности генерируемого аудиосигнала. Чем выше значение этого параметра, тем больше вероятность того, что результат будет необычным или даже странным. Этот параметр позволяет разработчикам контролировать баланс между стандартностью и креативностью создаваемого звука. Значение в диапазоне от 0 до 1; 7-ий - используется для управления весом аудиосигнала в синтезируемом звуке. Этот параметр позволяет регулировать баланс между качеством звука и скоростью обработки. Чем выше значение параметра, тем больше внимания уделяется качеству звука, что может привести к увеличению времени обработки. Значение в диапазоне от 0 до 1; 8-ий - список, состоящий из двух аудиофайлов с музыкой и вокалом;
  • console_rowSize/1 - получить количество строк в консоли;
  • med_no_going_back/1 - помечает видео, что при завершении проигрывания картинка останавливается на последнем кадре;
  • chat_KieAiSunoVocal/8 - сочиняет 2 песни с помощью нейросеть Suno, которая предоставляется сайтом https://kie.ai/. Результатом является вокал отделённый от одной из двух этих песен. 1-ый аргумент - это промпт; 2-ой аргумент - негативный промпт; 3-ий - модель; 4-ый - вокал; 5-ый - используется для управления интенсивностью стиля при генерации аудиозаписи. Чем больше значение параметра, тем сильнее проявляется выбранный стиль речи, будь то эмоциональная окраска голоса, акценты или особенности произношения. Значение в диапазоне от 0 до 1; 6-ий - используется для управления степенью необычности или оригинальности генерируемого аудиосигнала. Чем выше значение этого параметра, тем больше вероятность того, что результат будет необычным или даже странным. Этот параметр позволяет разработчикам контролировать баланс между стандартностью и креативностью создаваемого звука. Значение в диапазоне от 0 до 1; 7-ий - задаёт аудиозапись из которого будет извлекаться вокал. Значение 1 или 2; 8-ий - аудиозапись с вокалом.

Примеры использования этих предикатов:

Изменения в приложении с версией 4.551:

Изменения в предикатах:

  • med_completed/1 - теперь всегда истиннен, если медиа (видео или аудио), в консоли, под индексом аргумента, завершило проигрывание, и не началось проигрывание снова.

Изменения в приложении с версией 4.56:

Добавлен предикат:

  • speech_YandexSpeechKitv3/2 - производит распознавание речи нейросетью Яндекса. Аргументы: 1-ый - аудиозапись с речью; 2-ой - выходной текст состоящий из последовательного набора слов которые сказаны в аудиозаписи.
    (Для использования данного предиката нужно создать в Яндекс Cloud:
    1. Сервесный аккаунт с ролями: ai.speechkit-stt.user и ai.speechkit-tts.user;
    2. Api-ключ для сервисного аккаунта (во время создания укажите области действия: yc.ai.speechkit.Tts.execute и yc.ai.speechkit.Stt.execute), и использовать его в предикате connection первым аргументом, например: connection( ‘AQVNw…’, -).)

Предикат speech_SberSaluteSpeech временно не работает.

Изменения с версией 4.571:

Изменения в предикате chat_YandexGPT:

chat_YandexGPT/6 — Генерирует текст нейросетью YandexGPT. Аргументы: 1-ый — это атом представляющий из себя системный текст запроса; 2-ой — список атомов представляющих из себя пользовательский текст с ответами нейросети; 3-ий — тип нейросети: задаётся так как в документации, например: в документации написано gpt://<идентификатор_каталога>/yandexgpt-lite , тогда нужно писать в аргументе ‘yandexgpt-lite’ . Это позволяет писать любую нейросеть, которая появляется в документации. Например, на сегодняшний день, можно использовать ещё сеть Llama; 4-ый — температура; 5-ый - тип глубокого мышления: no_reasoning(без глубокого мышления); reasoning(low) (низкое мышление); reasoning(medium) (среднее мышление); reasoning(high) (высокое мышление); 6-ой — это атом: ответ нейронной сети.

Изменения с версией 5.0:

  1. Появилась возможность работы интерпретатора в полноэкранном режиме;

  2. Новые предикаты:

  • speech_GenApiSileroSTT - производит распознавание речи нейросетью Silero STT предоставленную сайтом Gen Api: https://gen-api.ru/. Аргументы: 1-ый - аудиозапись; 2-ой - текст транскрибации;
  • fullscreen_show/0 - открывает окно полноэкранного режима, причём консоль не закрывается, а остаётся под окном полноэкранного режима и в консоль по-прежнему можно выводить все виды терма, а медиа со звуком будут даже звучать;
  • fullscreen_hide/0 - закрывает окно полноэкранного режима переходя в консольный режим. Медиа вместе с текстом можно выводить и при закрытом окне полноэкранного режима, но станут они видны, только при полноэкранном режиме;
  • f_write/5 - выводит текст с заданным размером, цветом и с заданными координатами в окно полноэкранного режима. Аргументы: 1-ый - атомарный терм, но не медиа, который будем выводить на экран; 2-ой - координата X (по умолчанию берёт начало с левого края окна; может принять значения, например: 25; -5; right; center; right(50); center(-30)); 3-ий - координата Y (по умолчанию берёт начало с верху; может принять значения, например: 25; -5; bottom; center; bottom(50); center(-30)); 4-ый - размер текста, например: 14 (шрифт) или fullscreen_size; 5-ый - цвет текста вместе с указанием прозрачности (числа от 0 до 255), например: argb(255,255,0,0);
  • f_write/4 - выводит медиа по заданным координатам и с заданным значением прозрачности. Аргументы: 1-ый - медиа которое выводим; 2-ой - координата X (по умолчанию берёт начало с левого края окна; может принять значения, например: 25; -5; right; center; right(50); center(-30)); 3-ий - координата Y (по умолчанию берёт начало с верху; может принять значения, например: 25; -5; bottom; center; bottom(50); center(-30)); 4-ый - значение прозрачности (интервал от 0 до 255), например: alpha(255);
  • f_med_delete/1 - удаляет объект (медиа или текст) из окна полноэкранного режима по указанному индексу. Индексация начинается с 0;
  • f_med_clicked/1 - является истинным, если на объект (медиа или текст), в окне полноэкранного режима, по заданному индексу N, было нажато. После нажатия на объект, эта информация будет сохраняться в памяти до тех пор, пока не будет выполнен этот предикат. После выполнения предиката информация о нажатии стирается. Индексация начинается с 0;
  • fullscreen_color/1 - устанавливает цвет, которым будет закрашиваться фон окна полноэкранного режима, например: fullscreen_color( rgb( 200, 200, 200 ) );
  • fullscreen_clear/0 - удаляет в окне полноэкранного режима, все медиа и текст;
  • f_landscape_orientation/0 - во время полноэкранного режима, устанавливает экран в горизонтальное положение (его можно использовать и во время консольного режима, но тогда эта настройка сработает при следующем переходе в полноэкранный режим);
  • f_portrait_orientation/0 - во время полноэкранного режима, устанавливает экран в вертикальное положение(его можно использовать и во время консольного режима, но тогда эта настройка сработает при следующем переходе в полноэкранный режим);
  • f_record_audio/5 - записывает звук с микрофона в прологовскую аудиозапись, во время полноэкранного режима. Аргументы: 1-ый - X кооодината места отображения микрофона; 2-ой - Y кооодината места отображения микрофона; 3-ий - размер изображения микрофона: ширина или высота, например: width( 40 ); height (100 ); 4-ый - цвет микрофона, например rgb( 255,0,0 ) или default; 5-ый - аудиозапись, которую запишет предикат;
  • f_med_overwrite/5 - в окне полноэкранного режима, меняет объект (медиа или текст) по индексу, на другой объект. Аргументы: 1-ый - индекс объекта; 2-ой - объект на который мы меняем, это или медиа, или структура указанная в примере далее, пример текста: text( text_example, 80, rgb( 255, 0, 0 ) ), первый аргумент - сам текст, второй - размер (шрифт), третий - цвет; 3-ий - X кооодината места отображения нового объека; 4-ый - Y кооодината места отображения нового объека; 5-ый - прозрачность объекта, например: alpha( 120 );
  • f_med_completed/1 - предикат истиннен, если медиа (видео или аудио), в окне полноэкранного режима, по индексу N, завершило проигрывание. Индексация начинается с 0.;
  • f_med_fullscreen_size/1 - изменяет ширину и высоту медиа так, что при выводе этого медиа в окно полноэкранного режима, при нулевых X и Y, медиа оказывается такого размера, что отображается во весь экран, но при этом сохраняются пропорции ширины и высоты медиа.