Nova Assistant - кастомизируемый и расширяемый ассистент с использованием OpenAI-compatible API.
Ассистент поддерживает из коробки чат-сети Matrix и Discord. Также он поддерживает разговоры через веб-панель и API.
Для настройки, скопируйте config.example.yml
в config.yml
.
Пройдитесь по всем полям, они расписаны комментариями.
После первого запуска, откройте data/users
. Если нет папки, то сделайте.
- Создайте файл с Вашим никнеймом (только латиница, цифры и подчёркивания. Ограничений в коде нет, но так, на всякий случай)
- Заполните его:
# Ваш никнейм
name: nickname
# Как произносится Ваш никнейм. Особого назначения нет, было сделано для будущей адаптации к TTS.
pronounce_name: officialdakari
# Ваш ID Discord. Можете оставить пустым, если отключено.
discord: "000000000000000000"
# Ваш matrix ID. Оставьте пустым, если отключено.
matrix: "@user:example.com"
# HTTP вебхук. Уведомления отправляются туда в формате text/plain, напоминания итп.
http: https://ntfy.sh/topic
# Из-за внутреннего калового кода, это должно быть таким же как name
api: nickname
# Предпочитаемый канал связи.
preferred_channel: matrix
# Куда отправлять уведомления, например напоминания.
notification_channels:
- http
- matrix
# Что ассистент знает о Вас?
about: Nova Assistant user
#ru.officialdakari.nova.eljur: {}
# Персонализация ассистента под каждого пользователя.
# Заметка: Пользователь может самостоятельно настраивать это из веб панели.
assistantName: Nova
assistantPronouns: she/her
assistantModel: gpt-4o
customInstructions: >-
you are a helpful assistant.
TODO: облегчить процесс регистрации
Если Вам нужно, чтобы ассистент умел вытягивать расписание, оценки, д/з из ЭлЖур, получите ключ разработчика и данные аккаунта.
Делайте запрос сюда: https://<school>.eljur.ru/api/auth?devkey=<devkey>&login=<login>&password=<password>&vendor=<school>
.
p.s.: возможно я накосячил, откройте issue если не получится
Берёте из ответа token
. Затем откройте папку в проекте data/users
(Должна появиться после первого использования). Найдите там свой аккаунт. Если не нашли, зарегистрируйте.
Найдите в файле поле ru.officialdakari.nova.eljur
. Если нету, сделайте. Оно должно выглядить так:
ru.officialdakari.nova.eljur:
vendor: school52
token: Averylongtoken__5239
Можете настроить системный запрос на своё усмотрение в ./prompt.txt
.
Есть режим инкогнито, для него смотрите ./incognito_prompt.txt
и ./incognito_warning.txt
.
Режим инкогнито отключает многие плагины и убирает из системного запроса многие данные.
Когда запустите, напишите боту !geo <долгота> <широта>
. Если Вы в matrix, отправьте Вашу геопозицию через клиент.
- Интеграция с ChatGPT. Я бы сказал, он им и является.
- Генерация картинок по запросу.
- Встроенный в веб морду музыкальный плеер. Скачивает с ютуба, особого применения нет.
- Напоминания.
- Прогноз погоды чере 5710 з OpenMeteo. При возможности прикрепит картинку с графиком.
- Поиск в Интернете через DuckDuckGo. Доступен режим "изучения", когда контент каждой страницы описывается другой ИИ (менять в
./plugins/Search/index.js
на строке 7) - Доступ к аккаунту Matrix. Доступ строго контроллируется через веб-панель.
Плагины есть двух видов: локальные и удалённые.
Локальные находятся в папке plugins
. Как пример, посмотрите существующие.
Удалённые подключаются через WebSocket.
TODO: сделать норм документацию по плагинам