Skip to content

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Nektome

Анонимный чат с AI-собеседниками. Глубокая генерация персонажей + реалистичный чат-интерфейс. Веб-версия и Telegram-бот.

Описание

Nektome — веб-приложение и Telegram-бот для анонимного общения с AI-собеседниками. Каждый персонаж генерируется с уникальной внешностью, биографией, типом личности, стилем общения, травмой и манерой письма. AI использует Function Calling (11 инструментов), динамическую память о собеседнике и учитывает часовой пояс города персонажа.

Установка

Требования

  • Python 3.10+
  • pip

Установка зависимостей

git clone https://github.com/StandarterDF/Nektome
cd Nektome
python -m venv venv
# Windows
.\venv\Scripts\activate
# Linux/macOS
source venv/bin/activate
pip install -r requirements.txt

Настройка

Скопируйте .env.example в .env и укажите свои параметры.

Минимальная конфигурация (один провайдер):

OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-your-api-key-here
OPENAI_MODEL=deepseek-v4-flash

Запуск (веб-версия)

python app.py

Сервер на http://127.0.0.1:5000.

Запуск (Telegram-бот)

# Укажите BOT_TOKEN в .env
python bot.py

Использование (Web UI)

  1. Откройте http://127.0.0.1:5000
  2. Настройте фильтры (пол, возраст, режим чата)
  3. Нажмите «Начать поиск»
  4. Общайтесь

Провайдеры AI

Поддерживается несколько OpenAI-совместимых провайдеров с выбором при старте.

Один провайдер — простые переменные:

OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_API_KEY=sk-...
OPENAI_MODEL=deepseek-v4-flash
PROVIDER_TYPE=openai

Несколько провайдеров — перечисление с индексом:

PROVIDER_COUNT=2
PROVIDER1_NAME=Deepseek
PROVIDER1_TYPE=deepseek
PROVIDER1_BASE_URL=https://api.deepseek.com/v1
PROVIDER1_API_KEY=sk-...
PROVIDER1_MODEL=deepseek-v4-flash
PROVIDER2_NAME=OpenRouter
PROVIDER2_TYPE=openai
PROVIDER2_BASE_URL=https://openrouter.ai/api/v1
PROVIDER2_API_KEY=sk-...
PROVIDER2_MODEL=openai/gpt-4o

При PROVIDER_COUNT > 1 будет предложено выбрать провайдера в консоли при запуске.

Function Calling (инструменты AI)

AI может вызывать 11 инструментов (до 5 раундов за один ответ):

Инструмент Описание Параметры
get_current_time Текущее время (с учётом города) city (опц.)
get_date Текущая дата city (опц.)
get_weekday День недели city (опц.)
get_season Время года city, hemisphere (опц.)
get_moon_phase Фаза луны —
days_until Дней до даты day, month
zodiac_info Информация о знаке зодиака sign
roll_dice Бросок кубика sides (опц., по умолч. 6)
coin_flip Орёл или решка —
remember Запомнить факт о пользователе fact, importance
forget Забыть факт fact_id

Если город известен (указан в профиле персонажа), AI передаёт его в инструменты — время/дата/сезон рассчитываются для часового пояса этого города.

Память AI

AI может запоминать факты о собеседнике через remember и забывать через forget. Факты сортируются по важности, до 15 самых важных вставляются в системный промпт. При переполнении (50+) вытесняются самые старые и низкоприоритетные.

Web UI

Светлая тема Тёмная тема
Светлая Тёмная

Telegram Bot

Полный аналог веб-версии с дополнительными возможностями.

Команды

Команда Описание
/start Главное меню с настройками
/next Новый персонаж
/card Анкета текущего персонажа
/settings Настройки поиска
/stats Статистика (сообщения, AI-запросы, встречено персонажей)
/admin Админ-панель (только для ALLOWED_IDS)

Админ-команды (только для ALLOWED_IDS)

Команда Описание
/admin Админ-панель (баланс Deepseek, настройка инструментов AI)
/grant <id> <duration> Выдать временный доступ (напр. 100m, 1h, 2d)
/revoke <id> Отозвать доступ
/access Список всех временных доступов
/card_debug Отладка карточки персонажа (сырые данные)

Настройки пользователя

  • Пол собеседника: male / female / any
  • Возраст: до 17 / 18-21 / 22-25 / 26-35 / 36+ / Любой
  • Режим: chat / flirt / rp

TUI (Terminal UI)

Терминальный интерфейс для Telegram-бота на базе Textual.

pip install textual
python tui_bot.py
TUI Web TUI Telegram Bot
TUI Web TUI TG

Возможности

  • Просмотр логов бота в реальном времени с цветовой разметкой (ошибки красным, предупреждения жёлтым, успех зелёным)
  • Статистика: провайдер, модель, количество AI-запросов, ошибок, токенов
  • Нижняя статус-строка с состоянием бота и uptime
  • Фильтрация debug-логов Telegram для компактности

Горячие клавиши

Клавиша Действие
F5 Очистить лог
F6 Копировать весь лог в буфер обмена
F7 Копировать последние 50 строк лога
Ctrl+C Выход

API Routes (веб-версия)

Метод Путь Описание
GET / Web UI
POST /api/generate Создать персонажа
POST /api/chat Отправить сообщение
GET /api/online Симулированное количество онлайн (100-20000)

Генерация персонажа

7-уровневая архитектура:

  1. Архетип + темперамент — структура личности (Юнг + Гиппократ), совместимость archetype→MBTI
  2. Внешность — рост, телосложение (5 уровней), красота (4 уровня), глаза, волосы, стиль одежды
  3. Биография — травма (14 типов с последствиями), ключевые события
  4. Spice-блоки — 3-5 случайных деталей из 17 пулов (жильё, питомец, привычки, враг, сон, и т.д.)
  5. Профиль — профессия, хобби, доход (6 уровней), предпочтения
  6. Стиль общения — манера письма, откровенность (1-10), ложь (5 уровней), юмор
  7. Контекст — настроение, скрытый мотив, стартовое сообщение

Конфигурация (.env)

Переменная По умолчанию Описание
OPENAI_BASE_URL https://api.deepseek.com/v1 OpenAI-совместимый эндпоинт
OPENAI_API_KEY — API-ключ
OPENAI_MODEL deepseek-v4-flash Модель
PROVIDER_TYPE openai Тип провайдера (openai / deepseek)
PROVIDER_COUNT — Количество провайдеров (если >1, выбор при старте)
PROVIDER1_NAME — Имя провайдера #1
PROVIDER1_TYPE — Тип провайдера #1
PROVIDER1_BASE_URL — URL API провайдера #1
PROVIDER1_API_KEY — Ключ API провайдера #1
PROVIDER1_MODEL — Модель провайдера #1
BOT_TOKEN — Токен Telegram-бота
ALLOWED_IDS — Telegram ID пользователей (через запятую), которым разрешён доступ к боту
CHAT_SAVE_IDS — Telegram ID пользователей, чьи логи чатов сохраняются в chats/
ENABLE_OLD_ENCOUNTERS true Включить случайные встречи с сохранёнными персонажами (шанс 3-5%)
BOT_USE_PROXY false Использовать прокси для Telegram API
BOT_PROXY_URL — URL прокси (SOCKS5/HTTP)

Зависимости

flask
python-telegram-bot

Последние изменения

  • 2026-07-28: TUI: добавлена кнопка F7 «Коп. 50 логов» — копирование последних 50 строк лога в буфер обмена. Debug-логи telegram.ext.ExtBot понижены до INFO, telegram.ext/telegram до WARNING. README: добавлена секция TUI с описанием, установкой, горячими клавишами.

Лицензия

MIT

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages