Digital Persona
Платформа цифровых двойников
Регистрация
Вы получили приглашение в Digital Persona
Цифровые двойники
Создавайте цифровые копии людей и общайтесь с ними
Создать персону
Загрузите экспорт из Telegram, текстовые файлы или аудиозаписи
Мои персоны
Редактируйте, загружайте данные, запускайте синтез и проверку
Чат
Общайтесь с двойниками — они говорят, думают и молчат как настоящие
Инструкция
Как создать двойника шаг за шагом, какие данные грузить и как выгрузить чат из Telegram
Мои персоны
{{ personas.length }} {{ personas.length === 1 ? 'персона' : 'персон' }}
У вас ещё нет персон
Создание персоны
Введите имя человека, чей цифровой двойник вы хотите создать
{{ currentPersona.name }}
⚡ Быстрые действия
Главные операции с персоной.
📤 Загрузка данных
Чем больше данных, тем точнее двойник. Загружайте экспорты из Telegram, тексты, аудио.
Перетащите файлы или нажмите для выбора
Telegram JSON, TXT, MD, MP3, OGG, WAV, JPG, PNG
📂 Файлы персоны
{{ showFiles ? '▲' : '▼' }}⚙️ Настройки персоны
{{ showSettings ? '▲' : '▼' }}qmd на сервере и автоматической индексации после chunking. TF-IDF — fallback по умолчанию.📊 Грани личности
{{ layer.label }} {{ layer.completeness }}%
🔍 Ревизия данных
Поиск дубликатов, противоречий, мусорных записей и неправильно размещённых данных.
🎤 Интервью
Ответьте на вопросы ИИ-интервьюера, чтобы заполнить пробелы в данных персоны.
Разбивка исходных материалов персоны на смысловые чанки с автоматической атрибуцией (кто говорит) и оценкой содержательности. Основа для Этапа 3 архитектуры.
Извлечение контринтуитивных позиций, речевого стиля, anti-markers и эталонных вопросов. Тестирование двойника с LLM-вердиктами и автоматическими рекомендациями.
Примеры чанков ({{ t.representative_quotes.length }})
- {{ f }}
Регрессии ({{ regressionDiff.regressed_qas.length }})
- {{ p }}
- {{ r }}
- {{ s }}
Детали по вопросам ({{ analysisData.last_test.results.length }})
Граф знаний ещё не построен.
| Тип | Слой | Label | Когда | Связей |
|---|---|---|---|---|
| {{ nodeTypeLabel(n.type) }} | {{ n.layer || '—' }} | {{ n.label }} | {{ n.when_hint || '—' }} | {{ nodeDegree(n.nodeId) }} |
| Тип | От | К | Confidence | Обоснование | Источник | |
|---|---|---|---|---|---|---|
| {{ edgeTypeLabel(e.type) }} | {{ nodeLabelById(e.from_node) }} | {{ nodeLabelById(e.to_node) }} | {{ e.confidence.toFixed(2) }} | {{ e.reasoning || '—' }} | ✏️ LLM |
🧬 Синтез и проверка
Синтез создаёт цифрового двойника на основе собранных данных. После синтеза можно сразу прогнать тесты и посмотреть в чат.
📝 Системный промпт
Откройте предпросмотр vexpert.md чтобы посмотреть текст, которым «говорит» двойник. Или редактируйте вручную, чтобы добавить детали, стиль речи, особые инструкции.
Это ручной корректировочный слой поверх автоматического анализа. Задавай здесь то, что LLM не смог понять сам: синонимы проектов, явные запреты, темы для игнора, свободные заметки. Применяются при следующем синтезе персоны.
{{ currentChatData.chat.personaName }}
Выберите чат или создайте новый
Администрирование
| Логин | Имя | Роль | Создан | Последний вход | |
|---|---|---|---|---|---|
| {{ u.username }} | {{ u.displayName }} | {{ u.role }} | {{ u.createdAt ? new Date(u.createdAt * 1000).toLocaleDateString('ru') : '—' }} | {{ u.lastLogin ? new Date(u.lastLogin * 1000).toLocaleDateString('ru') : 'Никогда' }} |
| Заметка | Роль | Статус | Создан | Истекает | Использован | |
|---|---|---|---|---|---|---|
|
{{ inv.note }}
—
{{ inv.code.substring(0,10) }}…
|
{{ inv.role }} | Активен Использован Истёк | {{ inv.createdAt ? new Date(inv.createdAt * 1000).toLocaleDateString('ru') : '—' }} | {{ inv.expiresAt ? new Date(inv.expiresAt * 1000).toLocaleDateString('ru') : 'никогда' }} | {{ inv.usedByUsername }} — |
Инвайтов пока нет
| Персона | Владелец | Статус | Полнота | Создана | Действия | |
|---|---|---|---|---|---|---|
| {{ p.name }} | {{ p.ownerName }} | Удалена {{ statusLabel(p.status) }} | {{ p.completeness }}% | {{ p.createdAt ? new Date(p.createdAt * 1000).toLocaleDateString('ru') : '—' }} |
| Чат | Владелец | Персона | Сообщений | Статус | Обновлён |
|---|---|---|---|---|---|
| {{ c.title || '—' }} | {{ c.ownerName }} | {{ c.personaName }} | {{ c.messages }} | Удалён Активен | {{ c.updatedAt ? new Date(c.updatedAt * 1000).toLocaleDateString('ru') : '—' }} |
Нет чатов
Задачи
Активность
Хранилище
| Тип | Статус | Прогресс | Шаг | Что обрабатывалось | Модель | Персона | Владелец | Создано | |
|---|---|---|---|---|---|---|---|---|---|
{{ t.type }} |
{{ t.status }} | {{ t.progress }}% | {{ t.currentStep }} {{ t.error }} |
📄 {{ t.fileName }}
{{ t.fileName ? t.details.text.replace(t.fileName, '').trim() : t.details.text }}
—
|
{{ t.model || '—' }} | {{ t.personaId || '—' }} | {{ t.ownerName || t.userId.substring(0,8) + '…' }} | {{ t.createdAt ? new Date(t.createdAt * 1000).toLocaleString('ru') : '—' }} |
| Пользователь | Логин | Токен | Создана | Истекает | |
|---|---|---|---|---|---|
| {{ s.displayName }} | {{ s.username }} | {{ s.token_preview }} |
{{ s.createdAt ? new Date(s.createdAt * 1000).toLocaleString('ru') : '—' }} | {{ s.expiresAt ? new Date(s.expiresAt * 1000).toLocaleString('ru') : '—' }} |
| Персона | Владелец | Статус | Полнота | Диск | Чанки | Узлы | Связи |
|---|---|---|---|---|---|---|---|
| {{ s.name }} | {{ s.ownerName }} | Удалена {{ statusLabel(s.status) }} | {{ s.completeness }}% | {{ formatBytes(s.disk_bytes) }} | {{ s.chunks_count.toLocaleString('ru') }} | {{ s.nodes_count.toLocaleString('ru') }} | {{ s.edges_count.toLocaleString('ru') }} |
| Итого ({{ adminStorage.length }} персон) | {{ formatBytes(adminStorageTotals.disk) }} | {{ adminStorageTotals.chunks.toLocaleString('ru') }} | {{ adminStorageTotals.nodes.toLocaleString('ru') }} | {{ adminStorageTotals.edges.toLocaleString('ru') }} | |||
Сводка по периодам
По моделям (30 дней)
| Модель | Вызовов | Токенов | $ |
|---|---|---|---|
{{ m.model || 'unknown' }} |
{{ m.calls }} | {{ m.tokens.toLocaleString('ru') }} | ${{ m.cost.toFixed(4) }} |
По задачам (30 дней)
| Тип | Вызовов | $ |
|---|---|---|
{{ t.taskType || 'unknown' }} |
{{ t.calls }} | ${{ t.cost.toFixed(4) }} |
По пользователям (30 дней)
| Пользователь | Вызовов | $ |
|---|---|---|
| {{ u.name || u.userId.substring(0,8) + '…' }} | {{ u.calls }} | ${{ u.cost.toFixed(4) }} |
| Когда | Кто | IP | Действие | Объект | Детали |
|---|---|---|---|---|---|
| {{ e.at ? new Date(e.at * 1000).toLocaleString('ru') : '—' }} | {{ e.actorName || e.actorId.substring(0,8) + '…' }} [{{ e.actorRole }}] | {{ e.ip || '—' }} |
{{ e.action }} |
{{ e.target_type }}{{ e.target_id ? ': ' + e.target_id.substring(0,16) + '…' : '' }} |
{{ JSON.stringify(e.extra).substring(0,80) }}
|