Skip to content

paulll/tosterbot

Repository files navigation

FAQ

Что тут?

Что-то вроде умного дома с модульной структурой, чатботом, блекджеком и шлюхами

Что сейчас делается?

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

Чего особенного оно уже умеет?

Может быстро откликаться на ключевую фразу (не обращаясь к гуглу или кому-то еще), спасибо pocketsphinx. Может использовать буфер выделенного текста (*nix only).

Как это установить?

К первой релизной версии я подготовлю автоматический установщик. Работать оно будет под linux в полном объеме (с уклоном на Fedora), а поддержка остальных ОС не гарантируется.

Интеграция

[+]  TCP/IP Socket
[-]  DLNA
[-]  MPRIS2
[-]  libtorrent / libaria2
[-]  D-Bus
[+]  xsel / pbcopy
[=]  PushBullet
[-]  Google Календарь
[+]  Вконтакте
[-]  QIWI и кредитки
[-]  sms-reg и подобное
[-]  GPG / GnuPG
[-]  XMPP
[-]  Google Search | Yandex Search | Duck Duck Go
[-]  Prosto Pleer | Youtube
[-]  Gracenote | Shazam | SoundHound | acoustid
[-]  Weather.com | Forecast.io | Openweathermap | Narodmon
[+]  Base64, hex
[+]  Google Speech API | Yandex Speech API
[-]  UPNP (https://gist.github.com/acacio/1603181)

Фичи

[+] Локальная голосовая активация
[+] Распознавание речи
[+] Text-to-speech
[+] Преобразование строк
[*] Загрузчик
	[+] Тесты себя
	[+] Тесты модулей
	[+] Составление графа зависимостей модулей
		[+] Опциональные зависимости
	[+] Зависимость от файлов
	[+] Зависимость от npm-модулей
	[-] Зависимость от ОС
	[-] Кастомные проверки скриптом
[*] Шаблоны языков (lib.dict)
	[+] Проверка фразы
	[+] Выделение единиц фразы
	[+] Символ-джокер
	[+] Генерация фразы
	[-] Скрепление шаблонов
[*] "Понимание" человеческих языков
	[*] Разбор предложений (/esparser)
	[-] Генерация фраз
[*] Система уведомлений
	[+] Pushbullet
	[-] СМС
	[-] E-mail
[*] Система общения
	[+] TCP
	[+] vk.com
	[-] irc
	[-] xmpp
[-] Сенсоры
	[-] Погода
[-] Мониторы
	[-] Наличие людей в комнате
	[-] IDLE
[*] Read-only хранилище данных
	[+] Настройки 
	[-] Базы знаний
		[-] Wikidata
		[-] Cyc
		[-] Freebase
[-] Персональное хранилище данных
	[-] Кэш (RAM-хранилище)
	[-] Локальное RDF-хранилище
	[-] Привязки к облакам
		[-] Google Keep
		[-] Evernote
		[-] Dropbox
		[-] Mega.io
		[-] Pastebin
[-] Контроль доступа к персональной информации
[*] Вспомогательные API
	[*] lib.support
		[+] io 
		[+] action 
		[+] notify 
		[+] memory 
		[+] lang 
		[+] brain 
		[+] sense
		[*] etc
		[-] privateMemory 
	[+] core.io
	[+] core.action
	[+] core.namespace
	[+] core.notify
	[+] core.brain
	[+] core.memory 
	[-] core.privateMemory
[*] Базовые библиотеки
	[+] Шаблоны языков - lib.dict
	[*] Обработка языков на основе деревьев (/esparser)
	[-] Статистическая обработка языков (word2vec?)
[*] Документация по API

Типы модулей

  • IO - связь, позволяющая передавать логические утверждения (пример: голосовой интерфейс, чат) в обе стороны
  • Sense - источники информации (поиск, текст на экране aka xsel, погода, вики), у которых можно запросить текущее состояние
  • Notify - уведомления, позволяющие передавать произвольные данные, априори не требующие ответа (push уведомления, запись в буфер выделенного текста иксов aka xsel)
  • Action - действия, которые может совершить ии (управление медиа, светом, системой)
  • Memory - read-only хранилища информации (как и произвольной, так и логических утверждений и шаблонов)
  • PrivateMemory - хранилища персональной информации ИИ.
  • Security - политики доступа к информации
  • Parser - парсеры произвольных данных, то же что и Action, но действия выполняются над некоторыми данными
  • Lang - преобразует внутренний формат в человекопонятный и наоборот
  • Brain - реагирует на поступающую информацию
  • Core - функции ядра
  • Lib - вспомогательные фичи
  • Data - источники произвольных данных и медиа
  • Monitor - отслеживает события

Модули core.[brain|lang|action|...] загружаются после всех модулей выбраной категории, так что если нужно добавить в зависимости все модули, например, brain.*, то следует добавить один только core.brain.

HOWTO (инструкция)

Все действия выполняются в терминале:

  1. Установить пакеты nodejs, xsel при помощи встроенного пакетного менеджера. Если у вас Ubuntu, то это делается командой sudo apt-get install nodejs xsel, если Fedora, то sudo dnf install nodejs xsel. Для других дистрибутивов аналогично, и если у вас, например, Arch, то вы сами знаете, что делать.
  2. Скачать этот репозиторий командой git clone https://github.com/paulll/tosterbot
  3. Войти в папку с программой cd tosterbot
  4. Запустить программу командой node ./loader.js

Для управления светом так же нужна настройка arduino:

  1. Запустить Arduino IDE
  2. Подключить Arduino к компьютеру usb-проводом
  3. Записать сниппет из файла lightctl.ino в корне репозитория
  4. Подключить реле ко второму, третьему, GND и +5V пинам.

About

Home AI system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published