Skip to main content

pyAliceKit framework for creating dialog bots on Yandex.Alice

Project description

pyAliceKit

Фреймворк Python для создания диалоговых ботов в Яндекс.Диалоги.

Версия: 0.1.0


🚀 Установка

Установка напрямую с GitHub:

pip install -i https://test.pypi.org/simple/ pyAliceKit

Python >= 3.10


📦 Структура пакета

  • pyAliceKit/ — основной пакет
    • py_alice/ — ядро диалогового движка
    • core/ — кнопки, ключевые слова, интенты, сессии
    • utils/ — вспомогательные функции (dialogs, validation, tools)
    • GUI/ — визуализация диалогов (Flask + HTML/JS)
  • testing/ — пример настроек и диалогов

⚡ Простой пример

from pyAliceKit.py_alice.py_alice import PyAlice
from testing import settings

# Пример события от пользователя
event = {"request": {"original_utterance": "привет"}}

# Инициализация бота
alice = PyAlice(params_alice=event, settings=settings)

# Получение ответа
response = alice.get_response_for_alice(type="dict")
print(response)

📖 Пример диалога (ветвящаяся история)

from pyAliceKit.utils.dialogs import include_nodes
from testing.settings import DIALOG_NODES

# Включение диалогов с дочерними узлами
start_story = DIALOG_NODES["start_story"]

# Навигация по левому пути
left_path = start_story["childs"]["left"]
print(left_path["message"])  # start_left_message

🎮 Пример игры без сохранения

DIALOG_NODES["guess_game"] = {
    "message": "Я загадал число от 1 до 10. Попробуй угадать!",
    "buttons": [],
    "events": ["start_guess_game"],
    "meta": {"desc": "Мини-игра угадай число"}
}

Событие start_guess_game генерирует случайное число и проверяет ввод пользователя.

@on_event("start_guess_game")
def test_event(event: dict[str, Any], *args: Any, **kwargs: Any) -> None:
    pass

🌐 Запуск Flask API для Алисы

from flask import Flask, request, jsonify
from pyAliceKit.py_alice.py_alice import PyAlice
from testing import settings

app = Flask(__name__)

@app.route("/", methods=["POST"])
def alice_handler():
    event = request.get_json()
    pyAlice = PyAlice(params_alice=event, settings=settings)
    response = pyAlice.get_response_for_alice(type="dict")
    return jsonify(response)

if __name__ == "__main__":
    app.run(port=5000)

🔧 Полезные функции

  • include_nodes(nodes_dict, recursive=True) — подключает дочерние узлы.

📄 Лицензия

MIT License. См. LICENSE.


📝 TODO (v0.1+)

  • Полная валидация DIALOG_NODES
  • Тесты pytest
  • Расширение GUI для редактирования узлов
  • Примеры API с запросами к внешним сервисам

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyalicekit-0.1.0.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyalicekit-0.1.0-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file pyalicekit-0.1.0.tar.gz.

File metadata

  • Download URL: pyalicekit-0.1.0.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyalicekit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 65ee23740bbd5fdd69bd9555e0249f75f93e226f66125bff38013546725a40d1
MD5 6fe89b4267b662e9de5bdafe7250eeb1
BLAKE2b-256 e07d2fe134f030257432ab548e54bf473691cf5c6c3c7cdc69f7c1b1d681b88f

See more details on using hashes here.

File details

Details for the file pyalicekit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyalicekit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for pyalicekit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a50dbb812c753edb2cb848d990ca87098fe51b5c59acd28aef5035e8f41846da
MD5 6a8d836f9d1742de102ee4b99560fce5
BLAKE2b-256 910b0d72bdaa0474dd7102fd9a82ecb87c52ca171141bd9dc082c4eb1a80e043

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page