ваше сообщение коммита
This commit is contained in:
1213
docs/FAQ.md
1213
docs/FAQ.md
File diff suppressed because it is too large
Load Diff
@@ -1,661 +0,0 @@
|
||||
# Мультичейн-управление переводом токенов DLE
|
||||
|
||||
## Обзор системы
|
||||
|
||||
Система мультичейн-управления DLE позволяет холдерам токенов создавать предложения по переводу токенов со своего кошелька на другой адрес (или в казну) через процесс голосования во всех сетях, где развернут контракт DLE. Каждая сеть имеет независимый кворум, но предложения координируются и отображаются как единое целое.
|
||||
|
||||
## Архитектура
|
||||
|
||||
### Мультичейн-контракты DLE
|
||||
- Один DLE может быть развернут в нескольких блокчейн-сетях (например, Sepolia, Arbitrum Sepolia, Base Sepolia)
|
||||
- Каждый контракт DLE в каждой сети работает независимо
|
||||
- Предложения создаются, голосуются и выполняются в каждой сети отдельно
|
||||
- ID предложений уникальны для каждой сети (предложение с ID=1 в Sepolia и предложение с ID=1 в Arbitrum Sepolia - это разные предложения)
|
||||
|
||||
### Группировка предложений
|
||||
- Предложения с одинаковым описанием и инициатором группируются в одну карточку
|
||||
- Карточка отображает статус предложения во всех сетях DLE
|
||||
- Каждая сеть в карточке имеет свой собственный ID предложения, состояние и результаты голосования
|
||||
|
||||
## Процесс перевода токенов
|
||||
|
||||
### Этап 1: Создание предложения
|
||||
|
||||
#### Описание процесса
|
||||
1. Пользователь заполняет форму перевода токенов:
|
||||
- **Описание предложения** - текстовое описание цели перевода
|
||||
- **Адрес получателя** - адрес кошелька или казны, на который будут переведены токены
|
||||
- **Количество токенов** - количество DLE токенов для перевода
|
||||
- **Длительность голосования** - период времени, в течение которого можно голосовать
|
||||
- **Ваш подключенный кошелек** - автоматически заполняется адресом подключенного кошелька (токены будут отправлены с этого адреса)
|
||||
|
||||
2. Система определяет все сети, где развернут контракт DLE
|
||||
|
||||
3. **Последовательное создание предложений в каждой сети:**
|
||||
- Для каждой сети DLE:
|
||||
- Переключение MetaMask на соответствующую сеть
|
||||
- Задержка 1 секунда после переключения
|
||||
- Создание предложения в контракте DLE этой сети
|
||||
- Получение уникального ID предложения для этой сети
|
||||
- Задержка 3 секунды после подтверждения транзакции (5 секунд для Base Sepolia)
|
||||
- При ошибках RPC выполняется автоматический retry с экспоненциальной задержкой (до 3 попыток)
|
||||
|
||||
4. **Подписи в MetaMask:**
|
||||
- Пользователь должен подписать транзакцию создания предложения в каждой сети DLE
|
||||
- Количество подписей = количество сетей DLE
|
||||
- Каждая подпись создает отдельное предложение в соответствующей сети
|
||||
|
||||
#### Технические детали
|
||||
- **Функция контракта:** `createProposal(description, duration, operation, targetChains, timelockDelay)`
|
||||
- **Порядок параметров:** `description`, `duration`, `operation`, `targetChains` (массив), `timelockDelay`
|
||||
- **targetChains:** Массив ID сетей, где будет выполнена операция (обычно `[chainId]` для текущей сети)
|
||||
- **Операция:** `_transferTokens(sender, recipient, amount)` - где `sender` = адрес инициатора предложения
|
||||
- **Сигнатура:** `_transferTokens(address,address,uint256)` - **все три параметра обязательны!**
|
||||
- `sender` получается автоматически из `signer.getAddress()` при создании предложения
|
||||
- **ID предложения:** Генерируется автоматически контрактом в каждой сети (начинается с 0, инкрементируется)
|
||||
- **Группировка:** Предложения с одинаковым `description` и `initiator` группируются в одну карточку
|
||||
|
||||
#### Кодирование операции
|
||||
|
||||
Операция для выполнения должна быть закодирована в формате ABI (Application Binary Interface) перед передачей в `createProposal`.
|
||||
|
||||
**Для операции перевода токенов `_transferTokens(address,address,uint256)`:**
|
||||
1. **Сигнатура функции:** `_transferTokens(address,address,uint256)`
|
||||
2. **Селектор функции:** Первые 4 байта от `keccak256(signature)`
|
||||
3. **Параметры:**
|
||||
- `sender` - адрес отправителя (инициатора предложения)
|
||||
- `recipient` - адрес получателя токенов
|
||||
- `amount` - количество токенов (в wei, т.е. количество * 10^18)
|
||||
|
||||
**Пример кодирования (JavaScript/ethers.js):**
|
||||
```javascript
|
||||
// Способ 1: Использование Interface (рекомендуется)
|
||||
const functionSignature = '_transferTokens(address,address,uint256)';
|
||||
const iface = new ethers.Interface([`function ${functionSignature}`]);
|
||||
const encodedOperation = iface.encodeFunctionData('_transferTokens', [
|
||||
senderAddress, // адрес инициатора
|
||||
recipientAddress, // адрес получателя
|
||||
ethers.parseUnits(amount.toString(), 18) // количество в wei
|
||||
]);
|
||||
|
||||
// Способ 2: Ручное кодирование
|
||||
const functionSignature = '_transferTokens(address,address,uint256)';
|
||||
const selectorBytes = ethers.keccak256(ethers.toUtf8Bytes(functionSignature));
|
||||
const selector = '0x' + selectorBytes.slice(2, 10); // первые 4 байта
|
||||
|
||||
const abiCoder = ethers.AbiCoder.defaultAbiCoder();
|
||||
const encodedParams = abiCoder.encode(
|
||||
['address', 'address', 'uint256'],
|
||||
[senderAddress, recipientAddress, ethers.parseUnits(amount.toString(), 18)]
|
||||
);
|
||||
|
||||
const encodedOperation = ethers.concat([selector, encodedParams]);
|
||||
```
|
||||
|
||||
**Важные моменты:**
|
||||
- `sender` должен совпадать с адресом инициатора предложения (проверяется в контракте при выполнении)
|
||||
- `amount` **ОБЯЗАТЕЛЬНО** передается в wei (1 токен = 10^18 wei) - используйте `ethers.parseUnits(amount.toString(), 18)`
|
||||
- **КРИТИЧЕСКИ ВАЖНО:** `sender` должен определяться из `signer.getAddress()` при создании предложения в каждой сети отдельно, а не один раз до цикла
|
||||
- Операция кодируется для каждой сети отдельно с актуальным адресом signer для этой сети
|
||||
- Контракт декодирует операцию при выполнении и проверяет соответствие `sender` и `initiator`
|
||||
|
||||
**КРИТИЧЕСКИ ВАЖНО - Правильная реализация:**
|
||||
```javascript
|
||||
// ✅ ПРАВИЛЬНО: Кодирование внутри цикла с актуальным адресом signer для каждой сети
|
||||
async function createProposalsInAllChains(allChains, formData) {
|
||||
const results = [];
|
||||
|
||||
for (let index = 0; index < allChains.length; index++) {
|
||||
const chainId = allChains[index];
|
||||
|
||||
// 1. Переключаемся на нужную сеть
|
||||
await switchToVotingNetwork(chainId.toString());
|
||||
await new Promise(resolve => setTimeout(resolve, 1000)); // Задержка после переключения
|
||||
|
||||
// 2. КРИТИЧЕСКИ ВАЖНО: Получаем адрес signer для текущей сети
|
||||
const provider = new ethers.BrowserProvider(window.ethereum);
|
||||
const signer = await provider.getSigner();
|
||||
const senderAddress = await signer.getAddress(); // Адрес инициатора из signer!
|
||||
|
||||
// 3. Кодируем операцию с актуальным адресом signer для этой сети
|
||||
const transferCallData = encodeTransferTokensCall(
|
||||
senderAddress, // адрес инициатора из signer (обязательно!)
|
||||
formData.recipient, // адрес получателя
|
||||
formData.amount // количество (будет сконвертировано в wei)
|
||||
);
|
||||
|
||||
// 4. Создаем предложение
|
||||
const proposalData = {
|
||||
description: formData.description,
|
||||
duration: formData.duration,
|
||||
operation: transferCallData,
|
||||
targetChains: [chainId],
|
||||
timelockDelay: 0
|
||||
};
|
||||
|
||||
await createProposal(contractAddress, proposalData);
|
||||
}
|
||||
}
|
||||
|
||||
function encodeTransferTokensCall(sender, recipient, amount) {
|
||||
const functionSignature = '_transferTokens(address,address,uint256)';
|
||||
const iface = new ethers.Interface([`function ${functionSignature}`]);
|
||||
|
||||
// КРИТИЧЕСКИ ВАЖНО: конвертируем amount в wei
|
||||
const amountInWei = ethers.parseUnits(amount.toString(), 18);
|
||||
|
||||
const encodedCall = iface.encodeFunctionData('_transferTokens', [
|
||||
sender, // адрес инициатора (обязательно! должен быть из signer.getAddress())
|
||||
recipient, // адрес получателя
|
||||
amountInWei // количество в wei (обязательно!)
|
||||
]);
|
||||
|
||||
return encodedCall;
|
||||
}
|
||||
|
||||
// ❌ НЕПРАВИЛЬНО: Кодирование один раз до цикла
|
||||
// const transferCallData = encodeTransferTokensCall(formData.sender, ...); // НЕПРАВИЛЬНО!
|
||||
// for (const chainId of allChains) {
|
||||
// await createProposal(contractAddress, { operation: transferCallData, ... }); // sender может не совпасть!
|
||||
// }
|
||||
|
||||
// ❌ НЕПРАВИЛЬНО: Отсутствует sender или amount не в wei
|
||||
// const transferFunctionSelector = ethers.id("_transferTokens(address,uint256)"); // НЕПРАВИЛЬНО!
|
||||
// const amount = transferData.amount; // НЕПРАВИЛЬНО! Нужна конвертация в wei
|
||||
```
|
||||
|
||||
**Другие поддерживаемые операции:**
|
||||
- `_addModule(bytes32,address)` - добавление модуля
|
||||
- `_removeModule(bytes32)` - удаление модуля
|
||||
- `_addSupportedChain(uint256)` - добавление поддерживаемой сети
|
||||
- `_removeSupportedChain(uint256)` - удаление поддерживаемой сети
|
||||
- `_updateVotingDurations(uint256,uint256)` - обновление времени голосования
|
||||
- `_updateQuorumPercentage(uint256)` - обновление процента кворума
|
||||
- `_updateDLEInfo(...)` - обновление информации DLE
|
||||
- `_setLogoURI(string)` - обновление URI логотипа
|
||||
|
||||
#### Результат
|
||||
- Создано N предложений (по одному в каждой сети DLE)
|
||||
- Каждое предложение имеет уникальный ID в своей сети
|
||||
- Все предложения отображаются как одна карточка в интерфейсе
|
||||
- Карточка показывает статус предложения в каждой сети
|
||||
|
||||
---
|
||||
|
||||
### Этап 2: Голосование
|
||||
|
||||
#### Описание процесса
|
||||
1. Пользователь видит карточку предложения с информацией о всех сетях DLE
|
||||
|
||||
2. Пользователь выбирает голос "За" или "Против"
|
||||
|
||||
3. **Последовательное голосование во всех активных сетях:**
|
||||
- Система определяет все активные цепочки (state === 0 или 'active', не выполнены, не отменены)
|
||||
- Для каждой активной сети:
|
||||
- Переключение MetaMask на соответствующую сеть
|
||||
- Задержка 1 секунда после переключения
|
||||
- **Проверка баланса токенов в этой сети** (балансы могут отличаться в разных сетях)
|
||||
- Если баланс отсутствует, сеть пропускается с предупреждением
|
||||
- Голосование продолжается в других сетях
|
||||
- Голосование с использованием **уникального ID предложения для этой сети**
|
||||
- Задержка 3 секунды после подтверждения транзакции (5 секунд для Base Sepolia)
|
||||
|
||||
4. **Подписи в MetaMask:**
|
||||
- Пользователь должен подписать транзакцию голосования в каждой активной сети DLE
|
||||
- Количество подписей = количество активных сетей DLE
|
||||
- Каждая подпись регистрирует голос в соответствующей сети
|
||||
|
||||
#### Технические детали
|
||||
- **Функция контракта:** `vote(proposalId, support)` - где `proposalId` уникален для каждой сети
|
||||
- **Проверка ID:** Система использует `chain.id` (ID предложения из конкретной сети), а не общий ID группы
|
||||
- **Проверка баланса:** Баланс токенов проверяется **в каждой сети отдельно** перед голосованием
|
||||
- В мультичейн-системе балансы могут отличаться в разных сетях
|
||||
- Если в сети нет токенов, голосование в этой сети пропускается
|
||||
- Контракт также проверяет баланс через `getPastVotes()` и вернет ошибку, если токенов нет
|
||||
- **Вес голоса:** Зависит от баланса токенов голосующего в соответствующей сети
|
||||
- **Независимые кворумы:** Каждая сеть имеет свой собственный кворум
|
||||
|
||||
#### Результат
|
||||
- Голос зарегистрирован во всех активных сетях DLE
|
||||
- Каждая сеть обновляет свои счетчики голосов (forVotes, againstVotes)
|
||||
- Карточка предложения обновляется с новыми данными голосования
|
||||
|
||||
---
|
||||
|
||||
### Этап 3: Выполнение предложения
|
||||
|
||||
#### Условия выполнения
|
||||
**КРИТИЧЕСКИ ВАЖНО:** Предложение может быть выполнено только при условии, что кворум достигнут **во всех сетях DLE**, где предложение активно.
|
||||
|
||||
Условия для каждой сети:
|
||||
- Состояние предложения: `ReadyForExecution` (state === 5)
|
||||
- Кворум достигнут: `forVotes >= quorumRequired`
|
||||
- Большинство голосов "За": `forVotes > againstVotes`
|
||||
- Предложение не выполнено: `executed === false`
|
||||
- Предложение не отменено: `canceled === false`
|
||||
- Истек период голосования (если применимо)
|
||||
- Истек период timelock (если применимо)
|
||||
|
||||
#### Описание процесса
|
||||
1. Система проверяет, что предложение готово к выполнению во всех активных сетях DLE
|
||||
|
||||
2. **Последовательное выполнение во всех готовых сетях:**
|
||||
- Для каждой сети, где предложение готово к выполнению:
|
||||
- Переключение MetaMask на соответствующую сеть
|
||||
- Задержка 1 секунда после переключения
|
||||
- Выполнение предложения с использованием **уникального ID предложения для этой сети**
|
||||
- Задержка 3 секунды после подтверждения транзакции (5 секунд для Base Sepolia)
|
||||
|
||||
3. **Подписи в MetaMask:**
|
||||
- Пользователь должен подписать транзакцию выполнения в каждой готовой сети DLE
|
||||
- Количество подписей = количество готовых сетей DLE
|
||||
- Каждая подпись выполняет перевод токенов в соответствующей сети
|
||||
|
||||
#### Технические детали
|
||||
- **Функция контракта:** `executeProposal(proposalId)` - где `proposalId` уникален для каждой сети
|
||||
- **Операция перевода:** `_transferTokens(sender, recipient, amount)`
|
||||
- `sender` = адрес инициатора предложения (проверяется в контракте)
|
||||
- `recipient` = адрес получателя из предложения
|
||||
- `amount` = количество токенов из предложения
|
||||
- **Проверка безопасности:** Контракт проверяет, что `sender` совпадает с `initiator` предложения
|
||||
- **Перевод токенов:** Токены переводятся с кошелька инициатора, а не с баланса контракта
|
||||
|
||||
#### Результат
|
||||
- Перевод токенов выполнен во всех готовых сетях DLE
|
||||
- Каждая сеть независимо выполняет перевод с кошелька инициатора
|
||||
- Карточка предложения обновляется, показывая статус "Выполнено" во всех сетях
|
||||
|
||||
---
|
||||
|
||||
## Отмена предложения
|
||||
|
||||
### Условия отмены
|
||||
- Только инициатор предложения может отменить его
|
||||
- Предложение должно быть активным (не выполнено, не отменено)
|
||||
- Отмена возможна в любой момент до выполнения
|
||||
|
||||
### Процесс отмены
|
||||
1. **Последовательная отмена во всех активных сетях:**
|
||||
- Для каждой активной сети:
|
||||
- Переключение MetaMask на соответствующую сеть
|
||||
- Задержка 1 секунда после переключения
|
||||
- Отмена предложения с использованием **уникального ID предложения для этой сети**
|
||||
- Задержка 3 секунды после подтверждения транзакции
|
||||
|
||||
2. **Подписи в MetaMask:**
|
||||
- Пользователь должен подписать транзакцию отмены в каждой активной сети DLE
|
||||
- Количество подписей = количество активных сетей DLE
|
||||
|
||||
### Технические детали
|
||||
- **Функция контракта:** `cancelProposal(proposalId, reason)`
|
||||
- **Проверка прав:** Контракт проверяет, что вызывающий является инициатором предложения
|
||||
|
||||
---
|
||||
|
||||
## Важные особенности системы
|
||||
|
||||
### 1. Уникальность ID предложений
|
||||
- **Каждая сеть имеет свой собственный счетчик предложений**
|
||||
- Предложение с ID=1 в Sepolia и предложение с ID=1 в Arbitrum Sepolia - это **разные предложения**
|
||||
- При группировке система сохраняет ID из каждой сети отдельно
|
||||
- При голосовании/выполнении/отмене используется правильный ID для каждой сети
|
||||
|
||||
### 2. Группировка предложений
|
||||
- Предложения группируются по ключу: `${description}_${initiator}`
|
||||
- Одна карточка = одно логическое предложение во всех сетях
|
||||
- Карточка отображает:
|
||||
- Общее описание
|
||||
- Инициатора
|
||||
- Список сетей с их статусами
|
||||
- Результаты голосования по каждой сети
|
||||
- Общий статус (активно/выполнено/отменено)
|
||||
|
||||
### 3. Независимые кворумы
|
||||
- **Каждая сеть имеет свой собственный кворум**
|
||||
- Кворум рассчитывается на основе общего предложения токенов в соответствующей сети
|
||||
- Голосование в одной сети не влияет на кворум в другой сети
|
||||
- Для выполнения предложения кворум должен быть достигнут **во всех сетях**
|
||||
|
||||
### 4. Последовательное выполнение операций
|
||||
- Все операции (создание, голосование, выполнение, отмена) выполняются **последовательно**, а не параллельно
|
||||
- Это необходимо, так как MetaMask может работать только с одной сетью одновременно
|
||||
- Между операциями есть задержки для стабилизации MetaMask
|
||||
- **КРИТИЧЕСКИ ВАЖНО:** Использование `Promise.all` для параллельного выполнения недопустимо и приведет к ошибкам
|
||||
|
||||
### 5. Обработка ошибок
|
||||
- **Retry для временных ошибок RPC:**
|
||||
- Автоматический retry до 3 попыток
|
||||
- Экспоненциальная задержка (2s, 4s, 8s)
|
||||
- Только для retryable ошибок (Internal JSON-RPC error, rate limiting)
|
||||
- **Ошибки в отдельных сетях:**
|
||||
- Если операция не удалась в одной сети, процесс продолжается для других сетей
|
||||
- Пользователь получает сводку успешных и неудачных операций
|
||||
- **Обработка отсутствия баланса:**
|
||||
- Перед голосованием в каждой сети проверяется баланс токенов
|
||||
- Если в сети нет токенов, голосование в этой сети пропускается с предупреждением
|
||||
- Голосование продолжается в других сетях, где баланс есть
|
||||
- Контракт также проверяет баланс и вернет ошибку `ErrNoPower`, если токенов нет
|
||||
|
||||
### 6. Безопасность
|
||||
- **Проверка инициатора:** При выполнении контракт проверяет, что `sender` совпадает с `initiator`
|
||||
- **Проверка баланса:** Перед голосованием проверяется наличие токенов **в каждой сети отдельно**
|
||||
- Балансы могут отличаться в разных сетях
|
||||
- Если в сети нет токенов, голосование в этой сети пропускается
|
||||
- Контракт также проверяет баланс через `getPastVotes()` и вернет ошибку `ErrNoPower`, если токенов нет
|
||||
- **Проверка состояния:** Перед каждой операцией проверяется актуальное состояние предложения
|
||||
- **Валидация данных:** Все данные предложения валидируются перед отправкой в контракт
|
||||
|
||||
### 7. Перевод токенов
|
||||
- **Источник токенов:** Токены переводятся с кошелька инициатора предложения, а не с баланса контракта
|
||||
- **Получатель:** Может быть любой адрес (кошелек или казна)
|
||||
- **Количество:** Указывается инициатором при создании предложения
|
||||
- **Проверка баланса:** Контракт проверяет достаточность баланса инициатора перед выполнением
|
||||
|
||||
---
|
||||
|
||||
## Пользовательский интерфейс
|
||||
|
||||
### Карточка предложения
|
||||
- **Заголовок:** Описание предложения
|
||||
- **Инициатор:** Адрес создателя предложения
|
||||
- **Список сетей:**
|
||||
- Название сети
|
||||
- Статус (Активно/Выполнено/Отменено/Истекло)
|
||||
- ID предложения в этой сети
|
||||
- Результаты голосования (За/Против)
|
||||
- Кворум (достигнут/не достигнут)
|
||||
- **Действия:**
|
||||
- Голосовать "За" / "Против" (если активно)
|
||||
- Выполнить (если готово к выполнению)
|
||||
- Отменить (если инициатор)
|
||||
|
||||
### Индикаторы статуса
|
||||
- **Активно:** Предложение открыто для голосования
|
||||
- **Готово к выполнению:** Кворум достигнут во всех сетях
|
||||
- **Выполнено:** Перевод токенов выполнен во всех сетях
|
||||
- **Отменено:** Предложение отменено инициатором
|
||||
- **Истекло:** Истек период голосования
|
||||
|
||||
---
|
||||
|
||||
## Технические детали реализации
|
||||
|
||||
### Кодирование операций
|
||||
|
||||
Подробное описание процесса кодирования операций для создания предложений см. в разделе [Кодирование операции](#кодирование-операции) (Этап 1: Создание предложения).
|
||||
|
||||
### Структура данных предложения
|
||||
```javascript
|
||||
{
|
||||
id: number, // ID группы (из первой сети)
|
||||
description: string, // Описание предложения
|
||||
initiator: address, // Адрес инициатора
|
||||
deadline: number, // Дедлайн голосования
|
||||
chains: [ // Массив данных по каждой сети
|
||||
{
|
||||
id: number, // УНИКАЛЬНЫЙ ID для этой сети
|
||||
chainId: number, // ID сети (11155111, 421614, 84532)
|
||||
networkName: string, // Название сети
|
||||
contractAddress: address, // Адрес контракта DLE в этой сети
|
||||
state: number, // Состояние (0=Active, 3=Executed, 4=Canceled, 5=ReadyForExecution)
|
||||
forVotes: bigint, // Голоса "За"
|
||||
againstVotes: bigint, // Голоса "Против"
|
||||
quorumRequired: bigint, // Требуемый кворум
|
||||
executed: boolean, // Выполнено
|
||||
canceled: boolean, // Отменено
|
||||
transactionHash: string // Хеш транзакции создания
|
||||
}
|
||||
],
|
||||
createdAt: number, // Время создания
|
||||
uniqueId: string // Уникальный ключ группировки
|
||||
}
|
||||
```
|
||||
|
||||
### Функции контракта DLE
|
||||
|
||||
#### createProposal
|
||||
```solidity
|
||||
function createProposal(
|
||||
string memory _description,
|
||||
uint256 _duration,
|
||||
bytes memory _operation,
|
||||
uint256[] memory _targetChains,
|
||||
uint256 _timelockDelay
|
||||
) public returns (uint256 proposalId)
|
||||
```
|
||||
|
||||
#### vote
|
||||
```solidity
|
||||
function vote(uint256 _proposalId, bool _support) public
|
||||
```
|
||||
|
||||
#### executeProposal
|
||||
```solidity
|
||||
function executeProposal(uint256 _proposalId) public
|
||||
```
|
||||
|
||||
#### cancelProposal
|
||||
```solidity
|
||||
function cancelProposal(uint256 _proposalId, string memory _reason) public
|
||||
```
|
||||
|
||||
#### _transferTokens (internal)
|
||||
```solidity
|
||||
function _transferTokens(
|
||||
address _sender,
|
||||
address _recipient,
|
||||
uint256 _amount
|
||||
) internal
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Примеры использования
|
||||
|
||||
### Пример 0: Кодирование операции перевода токенов
|
||||
|
||||
Перед созданием предложения необходимо закодировать операцию. **КРИТИЧЕСКИ ВАЖНО:** Используйте правильную сигнатуру и конвертируйте amount в wei.
|
||||
|
||||
```javascript
|
||||
import { ethers } from 'ethers';
|
||||
|
||||
// Получаем адрес инициатора из signer
|
||||
const signer = await provider.getSigner();
|
||||
const sender = await signer.getAddress(); // Адрес инициатора (обязательно!)
|
||||
|
||||
// Параметры перевода
|
||||
const recipient = '0x1234567890123456789012345678901234567890'; // Получатель
|
||||
const amount = 100; // 100 токенов (в обычных единицах, не в wei)
|
||||
|
||||
// Кодирование операции
|
||||
const functionSignature = '_transferTokens(address,address,uint256)';
|
||||
const iface = new ethers.Interface([`function ${functionSignature}`]);
|
||||
|
||||
// КРИТИЧЕСКИ ВАЖНО: конвертируем amount в wei
|
||||
const amountInWei = ethers.parseUnits(amount.toString(), 18); // 100 * 10^18 wei
|
||||
|
||||
const encodedOperation = iface.encodeFunctionData('_transferTokens', [
|
||||
sender, // адрес инициатора (обязательно!)
|
||||
recipient, // адрес получателя
|
||||
amountInWei // количество в wei (обязательно!)
|
||||
]);
|
||||
|
||||
// encodedOperation теперь можно использовать в createProposal
|
||||
// Результат: 0x... (селектор функции + закодированные параметры)
|
||||
|
||||
// Создание предложения с правильным порядком параметров
|
||||
const tx = await dle.createProposal(
|
||||
"Перевод 100 токенов в казну", // description
|
||||
86400, // duration (1 день в секундах)
|
||||
encodedOperation, // operation
|
||||
[chainId], // targetChains (массив!)
|
||||
0 // timelockDelay
|
||||
);
|
||||
```
|
||||
|
||||
**Результат:** Закодированная операция в формате bytes, готовая для передачи в `createProposal`.
|
||||
|
||||
**Частые ошибки:**
|
||||
- ❌ Использование `_transferTokens(address,uint256)` - неправильная сигнатура
|
||||
- ❌ Отсутствие параметра `sender` - контракт не сможет проверить инициатора
|
||||
- ❌ Передача `amount` без конвертации в wei - неправильное количество токенов
|
||||
- ❌ Неправильный порядок параметров в `createProposal` - ошибка вызова контракта
|
||||
|
||||
### Пример 1: Создание предложения в 3 сетях
|
||||
1. Пользователь создает предложение "Перевод 100 токенов в казну"
|
||||
2. Система определяет 3 сети: Sepolia, Arbitrum Sepolia, Base Sepolia
|
||||
3. Создаются 3 предложения:
|
||||
- Sepolia: ID=5
|
||||
- Arbitrum Sepolia: ID=3
|
||||
- Base Sepolia: ID=7
|
||||
4. Все 3 предложения отображаются как одна карточка
|
||||
|
||||
### Пример 2: Голосование
|
||||
1. Пользователь голосует "За" за предложение
|
||||
2. Система голосует в 3 сетях:
|
||||
- Sepolia: vote(5, true)
|
||||
- Arbitrum Sepolia: vote(3, true)
|
||||
- Base Sepolia: vote(7, true)
|
||||
3. Каждое голосование требует отдельной подписи в MetaMask
|
||||
|
||||
### Пример 3: Выполнение
|
||||
1. Кворум достигнут во всех 3 сетях
|
||||
2. Система выполняет предложение в 3 сетях:
|
||||
- Sepolia: executeProposal(5)
|
||||
- Arbitrum Sepolia: executeProposal(3)
|
||||
- Base Sepolia: executeProposal(7)
|
||||
3. В каждой сети токены переводятся с кошелька инициатора на адрес получателя
|
||||
|
||||
---
|
||||
|
||||
## Ограничения и особенности
|
||||
|
||||
### Ограничения
|
||||
- MetaMask может работать только с одной сетью одновременно
|
||||
- Операции выполняются последовательно, что может занять время при большом количестве сетей
|
||||
- Ошибки RPC могут потребовать ручного retry
|
||||
|
||||
### Особенности
|
||||
- Если предложение не создано в одной из сетей (из-за ошибки), оно все равно может быть создано в других сетях
|
||||
- Голосование возможно только в тех сетях, где предложение активно
|
||||
- Выполнение возможно только если кворум достигнут во всех активных сетях
|
||||
|
||||
---
|
||||
|
||||
## Безопасность
|
||||
|
||||
### Защита от атак
|
||||
- Проверка инициатора при выполнении
|
||||
- Проверка баланса перед переводом
|
||||
- Независимые кворумы в каждой сети
|
||||
- Валидация всех входных данных
|
||||
|
||||
### Рекомендации
|
||||
- Всегда проверяйте адрес получателя перед созданием предложения
|
||||
- Убедитесь, что у вас достаточно токенов для перевода
|
||||
- Проверяйте статус предложения перед голосованием/выполнением
|
||||
- Следите за транзакциями в каждой сети
|
||||
|
||||
---
|
||||
|
||||
## Известные проблемы и исправления
|
||||
|
||||
### Исправленные критические ошибки
|
||||
|
||||
#### 1. Отсутствие конвертации amount в wei
|
||||
**Проблема:** Параметр `amount` передавался без конвертации в wei, что приводило к неправильному количеству токенов при выполнении.
|
||||
|
||||
**Исправление:** Добавлена обязательная конвертация через `ethers.parseUnits(amount.toString(), 18)` перед кодированием операции.
|
||||
|
||||
**Файл:** `frontend/src/views/smartcontracts/TransferTokensFormView.vue`
|
||||
|
||||
**Статус:** ✅ Исправлено
|
||||
|
||||
#### 2. Неправильная сигнатура функции _transferTokens
|
||||
**Проблема:** Использовалась неправильная сигнатура `_transferTokens(address,uint256)` вместо `_transferTokens(address,address,uint256)`, что приводило к ошибкам декодирования в контракте.
|
||||
|
||||
**Исправление:** Исправлена сигнатура функции и добавлен обязательный параметр `sender` (адрес инициатора).
|
||||
|
||||
**Файл:** `frontend/src/utils/dle-contract.js` (функция `createTransferTokensProposal`)
|
||||
|
||||
**Статус:** ✅ Исправлено
|
||||
|
||||
#### 3. Неправильный порядок параметров в createProposal
|
||||
**Проблема:** В функцию `createProposal` передавался `governanceChainId` вместо `targetChains` в 4-м параметре, что нарушало сигнатуру контракта.
|
||||
|
||||
**Исправление:** Исправлен порядок параметров согласно сигнатуре контракта: `description`, `duration`, `operation`, `targetChains`, `timelockDelay`.
|
||||
|
||||
**Файл:** `frontend/src/utils/dle-contract.js` (функция `createTransferTokensProposal`)
|
||||
|
||||
**Статус:** ✅ Исправлено
|
||||
|
||||
#### 4. Неправильное кодирование операции при создании предложений (КРИТИЧЕСКАЯ)
|
||||
**Проблема:** Операция перевода токенов кодировалась один раз до цикла по сетям, используя адрес из `formData.value.sender`. По документации, `sender` должен определяться из `signer.getAddress()` при создании предложения в каждой сети, что гарантирует совпадение с инициатором предложения.
|
||||
|
||||
**Исправление:**
|
||||
- Кодирование операции перемещено внутрь цикла по сетям
|
||||
- Добавлено получение адреса signer для каждой сети через `await signer.getAddress()`
|
||||
- Добавлена проверка соответствия адреса signer адресу из формы
|
||||
- Операция теперь кодируется с актуальным адресом signer для каждой сети отдельно
|
||||
|
||||
**Файл:** `frontend/src/views/smartcontracts/TransferTokensFormView.vue` (функция `submitForm`)
|
||||
|
||||
**Статус:** ✅ Исправлено (2025-01-XX)
|
||||
|
||||
#### 5. Параллельное выполнение в executeMultichainProposal (КРИТИЧЕСКАЯ)
|
||||
**Проблема:** Функция `executeMultichainProposal` использовала `Promise.all` для параллельного выполнения операций во всех сетях одновременно. Это не работает с MetaMask, который может работать только с одной сетью одновременно.
|
||||
|
||||
**Исправление:**
|
||||
- Заменен `Promise.all` на последовательный цикл `for`
|
||||
- Добавлено переключение сетей через `switchToVotingNetwork` для каждой сети
|
||||
- Добавлены задержки после переключения сетей (1 секунда) и после подтверждения транзакций (3 секунды, 5 секунд для Base Sepolia)
|
||||
- Добавлена фильтрация только готовых к выполнению цепочек
|
||||
|
||||
**Файл:** `frontend/src/composables/useProposals.js` (функция `executeMultichainProposal`)
|
||||
|
||||
**Статус:** ✅ Исправлено (2025-01-XX)
|
||||
|
||||
#### 6. Отсутствие переключения сетей в voteOnMultichainProposal
|
||||
**Проблема:** Функция `voteOnMultichainProposal` не использовала переключение сетей и проверку баланса токенов, что требовалось по документации для корректной работы в мультичейн-среде.
|
||||
|
||||
**Исправление:**
|
||||
- Добавлено переключение сетей через `switchToVotingNetwork` для каждой сети
|
||||
- Добавлена проверка баланса токенов перед голосованием в каждой сети через `checkTokenBalance`
|
||||
- Добавлены задержки после переключения сетей (1 секунда) и после подтверждения транзакций (3 секунды, 5 секунд для Base Sepolia)
|
||||
- Добавлена фильтрация только активных цепочек
|
||||
- Добавлена обработка ошибок с пропуском сетей при отсутствии баланса
|
||||
|
||||
**Файл:** `frontend/src/composables/useProposals.js` (функция `voteOnMultichainProposal`)
|
||||
|
||||
**Статус:** ✅ Исправлено (2025-01-XX)
|
||||
|
||||
### Текущая корректная реализация
|
||||
|
||||
Все функции кодирования операций и мультичейн-операции теперь используют:
|
||||
- ✅ Правильную сигнатуру: `_transferTokens(address,address,uint256)`
|
||||
- ✅ Все три параметра: `sender`, `recipient`, `amount`
|
||||
- ✅ Конвертацию amount в wei: `ethers.parseUnits(amount.toString(), 18)`
|
||||
- ✅ Правильный порядок параметров в `createProposal`
|
||||
- ✅ Определение `sender` из `signer.getAddress()` при создании предложения в каждой сети
|
||||
- ✅ Последовательное выполнение операций во всех мультичейн-функциях (не параллельное)
|
||||
- ✅ Переключение сетей перед каждой операцией в мультичейн-функциях
|
||||
- ✅ Проверку баланса токенов перед голосованием в каждой сети
|
||||
|
||||
### Проверка корректности
|
||||
|
||||
Перед развертыванием убедитесь, что:
|
||||
1. Функция `_transferTokens` кодируется с **тремя** параметрами (sender, recipient, amount)
|
||||
2. `amount` всегда конвертируется в wei перед кодированием
|
||||
3. `sender` получается из `signer.getAddress()` при создании предложения в каждой сети и совпадает с инициатором предложения
|
||||
4. Порядок параметров в `createProposal` соответствует сигнатуре контракта
|
||||
5. Все мультичейн-операции (создание, голосование, выполнение) используют последовательное выполнение с переключением сетей
|
||||
6. При голосовании проверяется баланс токенов в каждой сети отдельно
|
||||
|
||||
---
|
||||
|
||||
## Заключение
|
||||
|
||||
Система мультичейн-управления DLE обеспечивает децентрализованное управление переводом токенов через независимые кворумы в каждой сети, при этом предоставляя единый интерфейс для управления предложениями во всех сетях одновременно.
|
||||
|
||||
**Важно:** Все критические ошибки в кодировании операций исправлены. Код соответствует документации и контракту.
|
||||
|
||||
@@ -4,13 +4,12 @@
|
||||
|
||||
## 📖 Определение продукта
|
||||
|
||||
**Digital Legal Entity (DLE)** — микросервисная IT-инфраструктура с веб-приложением для локального развёртывания на серверах компании.
|
||||
**Digital Legal Entity (DLE)** — микросервисная платформа с веб-приложением для локальной установки на серверах компании.
|
||||
|
||||
**Включает:**
|
||||
- Инструменты настройки ИИ-агентов
|
||||
- Систему смарт-контрактов с поддержкой:
|
||||
- Реквизитов юридических лиц
|
||||
- Идентификаторов для финансовых операций, установленных регулятором
|
||||
- Налоговых, бухгалтерских, банковских и иных идентификаторов, установленных регулятором
|
||||
|
||||
**Преимущества:**
|
||||
- Управление и автоматизация бизнес-процессов
|
||||
@@ -26,17 +25,21 @@
|
||||
| Файл | Краткое описание |
|
||||
| --- | --- |
|
||||
| [application-description.md](./application-description.md) | Обзор назначения платформы, ключевых преимуществ и экономического эффекта. |
|
||||
| [ai-assistant.md](./ai-assistant.md) | Подробное описание возможностей AI-ассистента и cases для бизнеса. |
|
||||
| [setup-ai-assistant.md](./setup-ai-assistant.md) | Пошаговая настройка локального AI-ассистента с векторным поиском. |
|
||||
| [setup-instruction.md](./setup-instruction.md) | Основная инструкция по установке и первичной конфигурации приложения. |
|
||||
| [ai-assistant.md](./ai-assistant.md) | ИИ-агенты: архитектура, создание агентов под бизнес-процессы, примеры и экономический эффект. |
|
||||
| [blockchain-for-business.md](./blockchain-for-business.md) | Бизнес-обоснование и кейсы использования блокчейна в DLE. |
|
||||
| [blockchain-integration-technical.md](./blockchain-integration-technical.md) | Техническая архитектура блокчейн-интеграции и смарт-контрактов. |
|
||||
| [security.md](./security.md) | Модель безопасности, контроль доступа и защитные механизмы. |
|
||||
| [service-terms.md](./service-terms.md) | Подробные условия приобретения и обслуживания лицензии. |
|
||||
| [FAQ.md](./FAQ.md) | Ответы на частые вопросы по лицензированию, установке и функциям. |
|
||||
| [system-messages-management.md](./system-messages-management.md) | Техническое задание по управлению системными сообщениями. |
|
||||
| [tables-system.md](./tables-system.md) | Описание системы электронных таблиц, архитектуры и интеграций. |
|
||||
| [commercial-proposal-entrepreneurs.md](./commercial-proposal-entrepreneurs.md) | Готовое коммерческое предложение для предпринимателей из СНГ. |
|
||||
|
||||
### 📂 Техническая документация (back-docs/)
|
||||
|
||||
| Файл | Краткое описание |
|
||||
| --- | --- |
|
||||
| [setup-instruction.md](./back-docs/setup-instruction.md) | Основная инструкция по установке и первичной конфигурации приложения. |
|
||||
| [setup-ai-assistant.md](./back-docs/setup-ai-assistant.md) | Пошаговая настройка локального AI-ассистента с векторным поиском. |
|
||||
| [blockchain-integration-technical.md](./back-docs/blockchain-integration-technical.md) | Техническая архитектура блокчейн-интеграции и смарт-контрактов. |
|
||||
| [tables-system.md](./back-docs/tables-system.md) | Описание системы электронных таблиц, архитектуры и интеграций. |
|
||||
| [multi-agent-architecture.md](./back-docs/multi-agent-architecture.md) | Архитектура множественных ИИ-агентов. |
|
||||
| [system-messages-management.md](./back-docs/system-messages-management.md) | Техническое задание по управлению системными сообщениями. |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1,217 +0,0 @@
|
||||
# Задание: Реализация мульти-чейн governance системы для DLE
|
||||
|
||||
## Статус выполнения
|
||||
- ✅ Форма создания предложения работает
|
||||
- ✅ Предложение создается во всех цепочках DLE
|
||||
- ✅ Голосование происходит отдельно в каждой цепочке
|
||||
- ✅ Кворум считается отдельно для каждой цепочки
|
||||
- ✅ Личный перевод токенов от инициатора предложения
|
||||
- ✅ Группировка предложений по description + initiator
|
||||
- ✅ Серверная координация с криптографическими доказательствами
|
||||
- ✅ Убрана хардкод цепочек - используются deployedNetworks из API
|
||||
|
||||
## Контекст
|
||||
DLE (Digital Legal Entity) - децентрализованная юридическая сущность с контрактами в нескольких блокчейн-сетях. Необходимо реализовать систему управления токенами через мульти-чейн governance, где холдеры токенов могут переводить токены через голосование с кворумом.
|
||||
|
||||
## Архитектура системы
|
||||
|
||||
### Мульти-чейн компоненты
|
||||
- **Frontend**: Vue.js приложение с Web3 интеграцией
|
||||
- **Backend**: Node.js сервер для координации и API
|
||||
- **Smart Contracts**: DLE контракты в каждой поддерживаемой сети
|
||||
- **Database**: PostgreSQL для хранения метаданных
|
||||
- **WebSocket**: Real-time синхронизация между сетями
|
||||
|
||||
### Поддерживаемые сети
|
||||
- Ethereum Sepolia (chainId: 11155111)
|
||||
- Arbitrum Sepolia (chainId: 421614)
|
||||
- Base Sepolia (chainId: 84532)
|
||||
|
||||
## Требования к функционалу
|
||||
|
||||
### 1. Форма создания предложения о переводе токенов
|
||||
**URL:** `/management/transfer-tokens?address=<DLE_ADDRESS>`
|
||||
|
||||
**Поля формы:**
|
||||
- Адрес получателя (обязательное, address)
|
||||
- Сумма перевода (обязательное, number в токенах)
|
||||
- Описание предложения (опциональное, string)
|
||||
- Время голосования (обязательное, number в днях)
|
||||
|
||||
### 2. Логика создания предложений
|
||||
1. **Определение сетей:** Получение списка `deployedNetworks` через API `/dle-v2`
|
||||
2. **Параллельное создание:** Предложения создаются одновременно во ВСЕХ сетях DLE
|
||||
3. **Кодирование операции:** `_transferTokens(address,uint256)` для перевода токенов от инициатора
|
||||
|
||||
### 3. Логика голосования
|
||||
1. **Независимое голосование:** Каждая сеть голосует отдельно
|
||||
2. **Локальный кворум:** Кворум считается по формуле `(forVotes / totalSupply) >= quorumPercentage`
|
||||
3. **Голосование токенами:** Вес голоса = баланс токенов избирателя
|
||||
|
||||
### 4. Логика исполнения
|
||||
1. **Локальное исполнение:** Каждый контракт проверяет свой локальный кворум
|
||||
2. **Серверная координация:** Backend собирает результаты кворумов из всех сетей
|
||||
3. **Криптографические доказательства:** Сервер подписывает глобальный статус кворума
|
||||
4. **Глобальное исполнение:** Контракт проверяет подпись и выполняет операцию
|
||||
|
||||
## Техническая спецификация
|
||||
|
||||
### Smart Contract (DLE.sol)
|
||||
|
||||
#### Структура Proposal
|
||||
```solidity
|
||||
struct Proposal {
|
||||
uint256 id;
|
||||
string description;
|
||||
uint256 forVotes;
|
||||
uint256 againstVotes;
|
||||
bool executed;
|
||||
bool canceled;
|
||||
uint256 deadline;
|
||||
address initiator; // Создатель предложения
|
||||
bytes operation; // Закодированная операция
|
||||
uint256[] targetChains; // Целевые сети для исполнения
|
||||
uint256 snapshotTimepoint; // Точка снимка для голосования
|
||||
mapping(address => bool) hasVoted;
|
||||
}
|
||||
```
|
||||
|
||||
#### Функция _transferTokens
|
||||
```solidity
|
||||
function _transferTokens(address _sender, address _recipient, uint256 _amount) internal {
|
||||
require(balanceOf(_sender) >= _amount, "Insufficient balance");
|
||||
_transfer(_sender, _recipient, _amount);
|
||||
emit TokensTransferredByGovernance(_recipient, _amount);
|
||||
}
|
||||
```
|
||||
|
||||
#### События
|
||||
```solidity
|
||||
event ProposalCreated(uint256 proposalId, address initiator, string description);
|
||||
event QuorumReached(uint256 proposalId, uint256 chainId);
|
||||
event ProposalExecuted(uint256 proposalId, bytes operation);
|
||||
```
|
||||
|
||||
### Backend (Node.js)
|
||||
|
||||
#### Сервис координации кворумов
|
||||
```javascript
|
||||
class QuorumCoordinator {
|
||||
// Сбор результатов голосования из всех сетей
|
||||
async collectQuorumResults(proposalId) {
|
||||
// Слушать события QuorumReached из всех сетей
|
||||
// Сохранять в базу данных
|
||||
}
|
||||
|
||||
// Генерация криптографических доказательств
|
||||
async generateGlobalQuorumProof(proposalId) {
|
||||
// Подписать глобальный статус кворума
|
||||
// Вернуть подпись для контрактов
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### API Endpoints
|
||||
- `GET /dle-v2` - получение информации о DLE и сетях
|
||||
- `POST /api/dle-proposals/get-proposals` - получение списка предложений
|
||||
- `POST /api/dle-proposals/create-proposal` - создание предложения
|
||||
- `POST /api/dle-proposals/vote-proposal` - голосование
|
||||
- `POST /api/dle-proposals/execute-proposal` - исполнение
|
||||
|
||||
### Frontend (Vue.js)
|
||||
|
||||
#### Компонент TransferTokensFormView
|
||||
- Валидация формы
|
||||
- Кодирование операции перевода
|
||||
- Параллельное создание предложений во всех сетях
|
||||
- Обработка ошибок и отображение результатов
|
||||
|
||||
#### Компонент DleProposalsView
|
||||
- Группировка предложений по `description + initiator`
|
||||
- Отображение статуса по каждой сети
|
||||
- Кнопки голосования для каждой активной сети
|
||||
- Кнопка исполнения при глобальном кворуме
|
||||
|
||||
## Алгоритм работы
|
||||
|
||||
### Сценарий использования
|
||||
|
||||
1. **Пользователь открывает форму** `/management/transfer-tokens?address=0xdD27...9386`
|
||||
2. **Вводит данные:**
|
||||
- Получатель: `0x123...abc`
|
||||
- Сумма: `1000` токенов
|
||||
- Описание: `"Перевод средств подрядчику"`
|
||||
- Время: `7` дней
|
||||
3. **Нажимает "Создать"**
|
||||
4. **Система:**
|
||||
- Определяет сети: Sepolia, Arbitrum Sepolia, Base Sepolia
|
||||
- Создает предложения в каждой сети параллельно
|
||||
- Кодирует `_transferTokens(инициатор, получатель, сумма)`
|
||||
|
||||
5. **На странице предложений** появляется одна карточка с статусом по сетям
|
||||
6. **Пользователи голосуют** в каждой сети отдельно
|
||||
7. **При локальном кворуме** контракт эмитирует `QuorumReached`
|
||||
8. **Backend собирает** результаты из всех сетей
|
||||
9. **При глобальном кворуме** сервер подписывает доказательство
|
||||
10. **Пользователь вызывает** `executeWithGlobalQuorum()` с подписью
|
||||
11. **Контракт проверяет** подпись и выполняет перевод
|
||||
|
||||
## Безопасность
|
||||
|
||||
### Уровни защиты
|
||||
1. **On-chain проверки:** Баланс токенов, сроки голосования, кворум
|
||||
2. **Криптографические доказательства:** Подпись сервера для глобального кворума
|
||||
3. **Многоуровневая валидация:** Локальный + глобальный кворум
|
||||
4. **Отказоустойчивость:** Graceful degradation при недоступности сетей
|
||||
|
||||
### Риски и mitigation
|
||||
- **Сервер скомпрометирован:** Проверка подписи предотвращает подделку
|
||||
- **Сеть недоступна:** Локальное голосование работает независимо
|
||||
- **Replay attacks:** Проверка ID предложения и chainId
|
||||
- **Front-running:** Использование commit-reveal схемы при необходимости
|
||||
|
||||
## Тестирование
|
||||
|
||||
### Критерии приемки
|
||||
- [x] Форма создания предложения работает
|
||||
- [x] Предложение создается во всех цепочках DLE
|
||||
- [x] Голосование происходит отдельно в каждой цепочке
|
||||
- [x] Кворум считается отдельно для каждой цепочки
|
||||
- [x] Перевод токенов происходит от инициатора предложения
|
||||
- [x] Серверная координация с криптографическими доказательствами
|
||||
- [x] Группировка предложений в интерфейсе
|
||||
- [x] Обработка ошибок и edge cases
|
||||
|
||||
### Test cases
|
||||
1. Создание предложения в мульти-чейн среде
|
||||
2. Голосование в одной сети при недоступности других
|
||||
3. Исполнение при глобальном кворуме
|
||||
4. Исполнение при частичном кворуме (должен fail)
|
||||
5. Перевод токенов от инициатора с достаточным балансом
|
||||
6. Попытка перевода с недостаточным балансом (должен fail)
|
||||
|
||||
## Развертывание
|
||||
|
||||
### Требования к инфраструктуре
|
||||
- **Backend сервер** с доступом к RPC всех сетей
|
||||
- **Database** для хранения метаданных предложений
|
||||
- **SSL сертификаты** для безопасной коммуникации
|
||||
- **Monitoring** для отслеживания состояния сетей
|
||||
|
||||
### Переменные окружения
|
||||
```bash
|
||||
# RPC URLs
|
||||
SEPOLIA_RPC_URL=https://1rpc.io/sepolia
|
||||
ARBITRUM_SEPOLIA_RPC_URL=https://sepolia-rollup.arbitrum.io/rpc
|
||||
BASE_SEPOLIA_RPC_URL=https://sepolia.base.org
|
||||
|
||||
# Database
|
||||
DATABASE_URL=postgresql://user:pass@localhost:5432/dle
|
||||
|
||||
# Server keys for signing
|
||||
SERVER_PRIVATE_KEY=0x...
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Реализована полнофункциональная мульти-чейн governance система для управления токенами DLE. Система обеспечивает децентрализованное принятие решений с координацией через trusted server с криптографическими доказательствами, обеспечивая баланс между удобством использования и безопасностью.
|
||||
@@ -1,386 +1,370 @@
|
||||
# AI Ассистент DLE - Полные возможности для бизнеса
|
||||
# ИИ-агенты DLE — система создания специализированных агентов для бизнеса
|
||||
|
||||
> **Философия**: AI не заменяет людей, а становится их вторым пилотом, высвобождая 85% времени для стратегии и креатива.
|
||||
> **Концепция**: одна локальная модель — множество специализированных агентов. Каждый агент заточен под конкретный бизнес-процесс: свой промпт, свои правила, своя база знаний, свой интерфейс.
|
||||
|
||||
## 📋 Содержание
|
||||
## Содержание
|
||||
|
||||
1. [Введение](#введение)
|
||||
2. [Технология и архитектура](#технология-и-архитектура)
|
||||
3. [Полные возможности AI ассистента](#полные-возможности-ai-ассистента)
|
||||
4. [Экономический эффект](#экономический-эффект)
|
||||
5. [Настройка и интеграция](#настройка-и-интеграция)
|
||||
1. [Что это и зачем](#что-это-и-зачем)
|
||||
2. [Архитектура](#архитектура)
|
||||
3. [Как создать агента](#как-создать-агента)
|
||||
4. [Примеры агентов](#примеры-агентов)
|
||||
5. [Технологический стек](#технологический-стек)
|
||||
6. [Преимущества перед облачными решениями](#преимущества-перед-облачными-решениями)
|
||||
7. [Экономический эффект](#экономический-эффект)
|
||||
|
||||
---
|
||||
|
||||
## Введение
|
||||
## Что это и зачем
|
||||
|
||||
### Что такое AI Ассистент в DLE?
|
||||
DLE предоставляет **инструменты для создания ИИ-агентов** — специализированных помощников, каждый из которых отвечает за отдельный бизнес-процесс.
|
||||
|
||||
**AI Ассистент** - это встроенный интеллектуальный помощник, который использует:
|
||||
- 🧠 **Ollama** - локальные open-source модели AI (qwen2.5:7b)
|
||||
- 🔍 **Векторный поиск** - FAISS для семантического поиска
|
||||
- 📚 **RAG** (Retrieval-Augmented Generation) - поиск по базе знаний
|
||||
- 💾 **Кэширование** - мгновенные ответы на частые вопросы
|
||||
Это не один универсальный чат-бот. Это **конструктор**, в котором вы:
|
||||
|
||||
### Ключевые преимущества
|
||||
- Создаёте агента под конкретную задачу (поддержка клиентов, контент, закупки, аналитика)
|
||||
- Задаёте ему роль через системный промпт
|
||||
- Подключаете базу знаний (RAG-таблицы) с релевантными данными
|
||||
- Настраиваете правила поведения (строгий режим, креативный, гибридный)
|
||||
- Привязываете к каналам (веб-чат, Telegram, Email)
|
||||
- Получаете изолированного специалиста, который работает 24/7
|
||||
|
||||
1. **🏠 100% локальный** - все данные на вашем сервере
|
||||
2. **🔒 Полная конфиденциальность** - ничего не уходит в облако
|
||||
3. **⚡ Молниеносные ответы** - кэширование и векторный поиск
|
||||
4. **💰 Нулевые затраты на API** - нет оплаты за токены
|
||||
5. **📈 Обучается на ваших данных** - персонализированные ответы
|
||||
6. **🌍 Многоязычный** - поддержка русского, английского и др.
|
||||
7. **🔄 24/7 доступность** - работает круглосуточно
|
||||
Все агенты используют **одну локальную модель Ollama** на вашем сервере. Различие между ними — в системных промптах, правилах и подключённых данных. Данные не покидают ваш сервер.
|
||||
|
||||
---
|
||||
|
||||
## Технология и архитектура
|
||||
## Архитектура
|
||||
|
||||
### Как это работает?
|
||||
### Принцип: одна модель — множество агентов
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Архитектура AI Ассистента │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 1. Пользователь задает вопрос │
|
||||
│ "Как вернуть товар?" │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 2. Векторизация вопроса │
|
||||
│ Ollama mxbai-embed-large:latest │
|
||||
│ Текст → Вектор [768 чисел] │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 3. Векторный поиск (FAISS) │
|
||||
│ Поиск похожих вопросов в базе │
|
||||
│ Top-3 результата по семантике │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 4. Контекстный поиск (RAG) │
|
||||
│ Извлечение ответов из базы знаний │
|
||||
│ Фильтрация по тегам/продуктам │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 5. Генерация ответа (LLM) │
|
||||
│ Ollama qwen2.5:7b │
|
||||
│ Контекст + Вопрос → Ответ │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 6. Кэширование │
|
||||
│ Сохранение в кэш на 1 час │
|
||||
│ Следующий такой же вопрос < 50ms │
|
||||
└────────────────┬────────────────────────┘
|
||||
↓
|
||||
┌─────────────────────────────────────────┐
|
||||
│ 7. Ответ пользователю │
|
||||
│ "Товар можно вернуть в течение..." │
|
||||
└─────────────────────────────────────────┘
|
||||
┌──────────────────────────────────────────────────────┐
|
||||
│ Локальная модель Ollama (qwen2.5:7b) │
|
||||
│ Единая для всех агентов │
|
||||
└───────────┬──────────────┬───────────────┬───────────┘
|
||||
│ │ │
|
||||
↓ ↓ ↓
|
||||
┌───────────────┐ ┌────────────────┐ ┌──────────────┐
|
||||
│ Агент │ │ Агент │ │ Агент │
|
||||
│ поддержки │ │ контент- │ │ закупок │
|
||||
│ │ │ редактор │ │ │
|
||||
│ Промпт: │ │ Промпт: │ │ Промпт: │
|
||||
│ "Вы — │ │ "Вы — │ │ "Вы — │
|
||||
│ ассистент │ │ контент- │ │ специалист │
|
||||
│ поддержки" │ │ маркетолог" │ │ по закупкам"│
|
||||
│ │ │ │ │ │
|
||||
│ RAG: FAQ, │ │ RAG: стиль, │ │ RAG: база │
|
||||
│ документация │ │ инструкции, │ │ поставщиков, │
|
||||
│ │ │ примеры │ │ условия │
|
||||
│ │ │ │ │ │
|
||||
│ Правила: │ │ Правила: │ │ Правила: │
|
||||
│ строгий │ │ креативный │ │ гибридный │
|
||||
│ (t=0.3) │ │ (t=0.7) │ │ (t=0.5) │
|
||||
│ │ │ │ │ │
|
||||
│ Каналы: │ │ Каналы: │ │ Каналы: │
|
||||
│ чат, TG, │ │ веб-интерфейс │ │ веб-интерфейс│
|
||||
│ email │ │ /content-editor│ │ │
|
||||
└───────────────┘ └────────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
### Технологический стек
|
||||
### Изоляция агентов
|
||||
|
||||
Каждый агент полностью изолирован:
|
||||
|
||||
| Параметр | Изоляция |
|
||||
|----------|----------|
|
||||
| Системный промпт | Свой для каждого агента |
|
||||
| Правила (Rules) | Свой набор: temperature, maxTokens, режим RAG |
|
||||
| RAG-таблицы | Агент видит только свои подключённые таблицы |
|
||||
| Каналы | Отдельная привязка к веб-чату, Telegram, Email |
|
||||
| Интерфейс | Свой маршрут и UI |
|
||||
| Права доступа | Раздельные permissions |
|
||||
|
||||
Агенты не влияют друг на друга: можно создавать, менять и удалять их независимо.
|
||||
|
||||
### Обработка запроса
|
||||
|
||||
```
|
||||
Запрос пользователя
|
||||
↓
|
||||
Определение агента (по каналу / маршруту)
|
||||
↓
|
||||
Загрузка настроек агента (промпт, правила, RAG-таблицы)
|
||||
↓
|
||||
Векторизация запроса (Ollama mxbai-embed-large → вектор [768])
|
||||
↓
|
||||
RAG-поиск по подключённым таблицам (FAISS)
|
||||
↓
|
||||
Генерация ответа (LLM с контекстом из RAG + системный промпт + история)
|
||||
↓
|
||||
Кэширование ответа (TTL 1 час, повторный запрос < 50ms)
|
||||
↓
|
||||
Ответ пользователю
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Как создать агента
|
||||
|
||||
### Шаг 1. Базовая информация
|
||||
|
||||
- **Название** — «Агент поддержки», «Контент-редактор», «AI-закупщик»
|
||||
- **Роль** — support, content_editor, analyst, purchaser и т.д.
|
||||
- **Описание** — для чего агент создан
|
||||
|
||||
### Шаг 2. Системный промпт
|
||||
|
||||
Определяет личность и поведение агента. Примеры:
|
||||
|
||||
**Для агента поддержки:**
|
||||
```
|
||||
Вы — профессиональный ассистент службы поддержки компании "Название".
|
||||
|
||||
Правила:
|
||||
1. Отвечайте ТОЛЬКО на основе базы знаний
|
||||
2. Если ответа нет — предложите связаться с оператором
|
||||
3. Не придумывайте информацию о ценах, сроках, условиях
|
||||
4. Обращайтесь к клиенту на "Вы"
|
||||
5. Заканчивайте: "Чем ещё могу помочь?"
|
||||
```
|
||||
|
||||
**Для контент-редактора:**
|
||||
```
|
||||
Вы — профессиональный контент-маркетолог и редактор компании "Название".
|
||||
|
||||
Правила:
|
||||
1. Используйте стиль компании из базы знаний
|
||||
2. Следуйте инструкциям конкретной платформы (ВК, Telegram, и т.д.)
|
||||
3. Используйте ключевые слова и хэштеги из базы
|
||||
4. Добавляйте CTA-блоки из базы
|
||||
```
|
||||
|
||||
### Шаг 3. Правила (Rules)
|
||||
|
||||
JSON-конфигурация поведения агента:
|
||||
|
||||
```json
|
||||
{
|
||||
"searchRagFirst": true,
|
||||
"generateIfNoRag": false,
|
||||
"checkUserTags": true,
|
||||
"temperature": 0.3,
|
||||
"maxTokens": 500
|
||||
}
|
||||
```
|
||||
|
||||
| Параметр | Что делает | Поддержка | Контент | Аналитика |
|
||||
|----------|-----------|-----------|---------|-----------|
|
||||
| `temperature` | Степень креативности (0.0–1.0) | 0.3 | 0.7 | 0.2 |
|
||||
| `searchRagFirst` | Сначала искать в базе знаний | true | true | true |
|
||||
| `generateIfNoRag` | Генерировать, если не нашёл в базе | false | true | false |
|
||||
| `maxTokens` | Максимальная длина ответа | 500 | 2000 | 1000 |
|
||||
| `checkUserTags` | Учитывать теги пользователя | true | false | true |
|
||||
|
||||
### Шаг 4. База знаний (RAG-таблицы)
|
||||
|
||||
Подключите электронные таблицы, по которым агент будет искать информацию:
|
||||
|
||||
- **Агент поддержки** → таблицы «FAQ», «Документация продукта»
|
||||
- **Контент-редактор** → таблицы «Инструкции платформ», «Стиль компании», «Примеры контента», «Ключевые слова»
|
||||
- **AI-закупщик** → таблицы «База поставщиков», «Условия и прайсы»
|
||||
|
||||
Каждая таблица должна иметь столбцы с назначениями «Вопрос для AI» и «Ответ AI» — они автоматически индексируются для векторного поиска.
|
||||
|
||||
### Шаг 5. Каналы и интерфейс
|
||||
|
||||
| Параметр | Описание |
|
||||
|----------|----------|
|
||||
| Каналы | веб-чат, Telegram, Email, SMS |
|
||||
| Маршрут | URL интерфейса агента (например, `/content-editor`) |
|
||||
| Права доступа | Какие роли пользователей имеют доступ |
|
||||
|
||||
### Шаг 6. Активация
|
||||
|
||||
Включите агента — он начнёт обрабатывать запросы по подключённым каналам.
|
||||
|
||||
---
|
||||
|
||||
## Примеры агентов
|
||||
|
||||
### 1. Агент поддержки клиентов
|
||||
|
||||
**Задача**: отвечать на вопросы клиентов 24/7 на основе базы знаний.
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Режим | Строгий — только из базы знаний |
|
||||
| temperature | 0.3 |
|
||||
| RAG-таблицы | FAQ, Документация, База знаний для клиентов |
|
||||
| Каналы | Веб-чат, Telegram, Email |
|
||||
| Поведение при отсутствии ответа | Предлагает связаться с оператором |
|
||||
|
||||
**Пример работы:**
|
||||
```
|
||||
Клиент: "Как оплатить заказ?"
|
||||
Агент: [Ищет в таблице FAQ → находит ответ с Score < 300]
|
||||
"Мы принимаем оплату банковской картой, через PayPal
|
||||
или банковским переводом. Чем ещё могу помочь?"
|
||||
```
|
||||
|
||||
### 2. Контент-редактор
|
||||
|
||||
**Задача**: создавать контент для соцсетей, блога, рассылок по стилю компании.
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Режим | Креативный — генерирует на основе инструкций и примеров |
|
||||
| temperature | 0.7 |
|
||||
| RAG-таблицы | Инструкции платформ, Стиль компании, Примеры контента, Ключевые слова, CTA-блоки |
|
||||
| Каналы | Веб-интерфейс `/content-editor` |
|
||||
| Доступ | Пользователи с ролью Editor |
|
||||
|
||||
**Интерфейс:**
|
||||
- Поле ввода задачи
|
||||
- Выбор типа контента (пост ВК, статья блога, email-рассылка)
|
||||
- Выбор платформы
|
||||
- Генерация → редактирование → сохранение/экспорт
|
||||
- История созданного контента
|
||||
|
||||
### 3. AI-закупщик
|
||||
|
||||
**Задача**: помогать с выбором поставщиков и анализом условий.
|
||||
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Режим | Гибридный |
|
||||
| temperature | 0.5 |
|
||||
| RAG-таблицы | База поставщиков, Условия и прайсы |
|
||||
| Каналы | Веб-интерфейс |
|
||||
| Доступ | Менеджеры по закупкам |
|
||||
|
||||
**Пример работы:**
|
||||
```
|
||||
Менеджер: "Кто поставляет электронику с доставкой до 3 дней?"
|
||||
Агент: [Ищет в таблице поставщиков, фильтрует по категории и срокам]
|
||||
"ТОП-3 поставщика электроники с доставкой до 3 дней:
|
||||
1. ООО «Техноснаб» — рейтинг 9/10, доставка 2 дня
|
||||
2. ..."
|
||||
```
|
||||
|
||||
### 4. Другие возможные агенты
|
||||
|
||||
| Агент | Задача | RAG-таблицы |
|
||||
|-------|--------|-------------|
|
||||
| **Аналитик** | Анализ данных, создание отчётов, выявление трендов | Метрики, KPI, Отчёты |
|
||||
| **HR-ассистент** | Скрининг резюме, ответы сотрудникам, планирование обучения | База знаний для сотрудников, HR-политики |
|
||||
| **Переводчик** | Перевод документов, локализация контента | Глоссарии, Стиль для разных языков |
|
||||
| **Юрист-помощник** | Анализ договоров, ответы на правовые вопросы | Шаблоны договоров, Нормативные акты |
|
||||
|
||||
Количество агентов не ограничено. Каждый новый агент — это новая комбинация промпта, правил и подключённых таблиц.
|
||||
|
||||
---
|
||||
|
||||
## Технологический стек
|
||||
|
||||
| Компонент | Технология | Назначение |
|
||||
|-----------|------------|------------|
|
||||
| **LLM модель** | Ollama qwen2.5:7b | Генерация текста, диалог |
|
||||
| **Embedding модель** | mxbai-embed-large | Векторизация текста |
|
||||
| **Векторная БД** | FAISS | Быстрый семантический поиск |
|
||||
| **Основная БД** | PostgreSQL | Хранение базы знаний |
|
||||
| **Кэш** | Node.js Map + TTL | Ускорение повторных запросов |
|
||||
| **Очередь** | AI Queue | Обработка задач по приоритету |
|
||||
| LLM | Ollama (qwen2.5:7b или любая другая) | Генерация ответов, диалог |
|
||||
| Embedding | mxbai-embed-large | Векторизация текста для поиска |
|
||||
| Векторная БД | FAISS | Быстрый семантический поиск |
|
||||
| Основная БД | PostgreSQL | Хранение настроек агентов, баз знаний, истории |
|
||||
| Кэш | Node.js Map + TTL | Ускорение повторных запросов (< 50ms) |
|
||||
| Очередь | AI Queue | Обработка задач по приоритету |
|
||||
| Шифрование | AES-256 | Все промпты и настройки зашифрованы |
|
||||
|
||||
### Методы поиска (RAG)
|
||||
|
||||
| Метод | Описание | Когда использовать |
|
||||
|-------|----------|-------------------|
|
||||
| Семантический | Поиск по смыслу через FAISS | Когда важна точность понимания |
|
||||
| По ключевым словам | Быстрый текстовый поиск | Когда важна скорость |
|
||||
| Гибридный | 70% семантика + 30% ключевые слова | Рекомендуется по умолчанию |
|
||||
|
||||
Дополнительно: нечёткий поиск (опечатки), стемминг (разные формы слов), извлечение ключевых слов.
|
||||
|
||||
---
|
||||
|
||||
## Полные возможности AI ассистента
|
||||
## Преимущества перед облачными решениями
|
||||
|
||||
### 1. 📞 Клиентский сервис и поддержка
|
||||
|
||||
**Автоматические ответы на типовые вопросы:**
|
||||
- Мгновенные ответы 24/7 через Telegram, Email, Web чат
|
||||
- Автоматическая диагностика проблем по номеру заказа
|
||||
- Создание тикетов в CRM с приоритизацией
|
||||
- База знаний с векторным поиском
|
||||
- Многоязычная поддержка клиентов из разных стран
|
||||
- Анализ настроения клиентов в реальном времени
|
||||
- Эскалация сложных вопросов к живым операторам
|
||||
- Персонализированные рекомендации на основе истории покупок
|
||||
|
||||
**Интеграция с мессенджерами:**
|
||||
- Telegram бот с AI-ассистентом
|
||||
- Email поддержка с автоматическим анализом
|
||||
- Web чат на сайте с умным виджетом
|
||||
- SMS рассылки и уведомления
|
||||
- Веб-формы обратной связи
|
||||
|
||||
### 2. 📊 Аналитика и бизнес-интеллект
|
||||
|
||||
**Автоматический анализ данных:**
|
||||
- Анализ больших данных и выявление трендов
|
||||
- Прогнозирование продаж и спроса на товары/услуги
|
||||
- Сегментация клиентов по поведению и предпочтениям
|
||||
- Анализ эффективности маркетинговых кампаний
|
||||
- Выявление аномалий в финансовых показателях
|
||||
- Создание интерактивных дашбордов с ключевыми метриками
|
||||
- Сравнительный анализ с конкурентами
|
||||
- Бенчмаркинг и отраслевые сравнения
|
||||
|
||||
### 3. 💰 Финансовое планирование и учет
|
||||
|
||||
**Автоматизация финансовых процессов:**
|
||||
- Автоматическое ведение бухгалтерии и формирование отчетов
|
||||
- Прогнозирование денежных потоков и планирование бюджета
|
||||
- Анализ рентабельности продуктов и услуг
|
||||
- Выявление финансовых рисков и рекомендации по их снижению
|
||||
- Автоматическое создание инвойсов и отслеживание платежей
|
||||
- Оптимизация налогового планирования
|
||||
- Мониторинг KPI и финансовых показателей
|
||||
- Консолидированная отчетность по всем подразделениям
|
||||
|
||||
### 4. 🎯 Маркетинг и продажи
|
||||
|
||||
**Контент-маркетинг:**
|
||||
- Генерация контента для социальных сетей, блогов, email-рассылок
|
||||
- Персонализация маркетинговых сообщений для каждого клиента
|
||||
- A/B тестирование различных вариантов рекламы
|
||||
- Анализ эффективности каналов привлечения клиентов
|
||||
- Автоматическое создание email-кампаний
|
||||
- SEO-оптимизация контента и мета-тегов
|
||||
- Управление репутацией в интернете
|
||||
|
||||
**Продажи:**
|
||||
- Автоматическое создание коммерческих предложений
|
||||
- Анализ клиентской базы и выявление возможностей
|
||||
- Персонализированные рекомендации по продуктам
|
||||
- Автоматическое отслеживание воронки продаж
|
||||
- Генерация скриптов для холодных звонков
|
||||
|
||||
### 5. 👥 HR и управление персоналом
|
||||
|
||||
**Подбор и управление персоналом:**
|
||||
- Автоматический скрининг резюме и первичный отбор кандидатов
|
||||
- Проведение собеседований с помощью чат-бота
|
||||
- Анализ производительности сотрудников
|
||||
- Планирование обучения и развития персонала
|
||||
- Автоматическое создание должностных инструкций
|
||||
- Анализ удовлетворенности сотрудников
|
||||
- Планирование отпусков и смен
|
||||
- Мониторинг настроения команды
|
||||
|
||||
**Обучение персонала:**
|
||||
- Персонализированные программы обучения для сотрудников
|
||||
- Создание интерактивных курсов и материалов
|
||||
- Адаптивное обучение под индивидуальные потребности
|
||||
- Оценка знаний и навыков персонала
|
||||
- Рекомендации по развитию карьеры
|
||||
- Создание базы знаний и FAQ
|
||||
|
||||
### 6. 📋 Управление проектами и задачами
|
||||
|
||||
**Автоматизация проектной работы:**
|
||||
- Автоматическое планирование проектов и распределение ресурсов
|
||||
- Отслеживание прогресса и выявление задержек
|
||||
- Оптимизация рабочих процессов и устранение узких мест
|
||||
- Автоматическое создание отчетов по проектам
|
||||
- Управление рисками и планирование резервов
|
||||
- Координация работы распределенных команд
|
||||
- Анализ эффективности методологий управления
|
||||
|
||||
### 7. 🔍 Исследования и разработка
|
||||
|
||||
**Аналитика и исследования:**
|
||||
- Анализ рынка и конкурентной среды
|
||||
- Исследование новых технологий и трендов
|
||||
- Генерация идей для новых продуктов/услуг
|
||||
- Анализ патентов и интеллектуальной собственности
|
||||
- Техническая документация и спецификации
|
||||
- Анализ обратной связи клиентов для улучшения продуктов
|
||||
|
||||
### 8. 🛡️ Безопасность и комплаенс
|
||||
|
||||
**Мониторинг безопасности:**
|
||||
- Мониторинг безопасности IT-систем
|
||||
- Выявление подозрительной активности и угроз
|
||||
- Автоматическое обновление политик безопасности
|
||||
- Анализ соответствия регулятивным требованиям
|
||||
- Управление доступом и правами пользователей
|
||||
- Аудит логов и расследование инцидентов
|
||||
|
||||
### 9. 📈 Операционная эффективность
|
||||
|
||||
**Оптимизация процессов:**
|
||||
- Оптимизация цепочек поставок и логистики
|
||||
- Планирование производства и управление запасами
|
||||
- Автоматизация рутинных процессов
|
||||
- Анализ качества продукции и услуг
|
||||
- Управление активами и техническое обслуживание
|
||||
- Оптимизация энергопотребления и ресурсов
|
||||
|
||||
### 10. 🎓 Обучение и развитие
|
||||
|
||||
**Корпоративное обучение:**
|
||||
- Персонализированные программы обучения для сотрудников
|
||||
- Создание интерактивных курсов и материалов
|
||||
- Адаптивное обучение под индивидуальные потребности
|
||||
- Оценка знаний и навыков персонала
|
||||
- Рекомендации по развитию карьеры
|
||||
- Создание базы знаний и FAQ
|
||||
|
||||
### 11. 🌐 Международная деятельность
|
||||
|
||||
**Глобальные возможности:**
|
||||
- Автоматический перевод документов и коммуникаций
|
||||
- Анализ культурных особенностей целевых рынков
|
||||
- Адаптация контента под локальные требования
|
||||
- Мониторинг изменений в международном законодательстве
|
||||
- Управление валютными рисками
|
||||
- Координация работы с зарубежными партнерами
|
||||
|
||||
### 12. 🔮 Стратегическое планирование
|
||||
|
||||
**Долгосрочное планирование:**
|
||||
- Анализ макроэкономических трендов и их влияния на бизнес
|
||||
- Сценарное планирование для различных ситуаций
|
||||
- Анализ возможностей для слияний и поглощений
|
||||
- Оценка инвестиционных проектов
|
||||
- Планирование выхода на новые рынки
|
||||
- Разработка долгосрочных стратегий развития
|
||||
|
||||
### 13. 📱 Мобильные и цифровые решения
|
||||
|
||||
**Цифровая трансформация:**
|
||||
- Разработка мобильных приложений с ИИ-функциями
|
||||
- Создание чат-ботов для различных платформ
|
||||
- Голосовые ассистенты для бизнес-процессов
|
||||
- Интеграция с IoT устройствами
|
||||
- Автоматизация социальных сетей
|
||||
- Создание виртуальных ассистентов
|
||||
|
||||
### 14. 🏭 Отраслевые решения
|
||||
|
||||
**Специализированные решения:**
|
||||
- **Здравоохранение**: диагностика, планирование лечения, управление пациентами
|
||||
- **Финансы**: кредитный скоринг, управление рисками, торговые алгоритмы
|
||||
- **Ритейл**: персонализация, управление запасами, ценообразование
|
||||
- **Производство**: контроль качества, предиктивное обслуживание, оптимизация
|
||||
- **Недвижимость**: оценка, анализ рынка, управление объектами
|
||||
- **Образование**: адаптивное обучение, оценка знаний, планирование
|
||||
|
||||
### 15. 🔄 Интеграция и автоматизация
|
||||
|
||||
**Системная интеграция:**
|
||||
- API-интеграции с внешними системами
|
||||
- Автоматизация рабочих процессов (RPA)
|
||||
- Синхронизация данных между различными платформами
|
||||
- Создание единой экосистемы для всех бизнес-процессов
|
||||
- Миграция данных и систем
|
||||
- Мониторинг производительности интегрированных решений
|
||||
| Характеристика | DLE (локальный) | ChatGPT API | Claude API |
|
||||
|----------------|----------------|-------------|------------|
|
||||
| **Стоимость** | $0 | ~$0.02/запрос | ~$0.03/запрос |
|
||||
| **Конфиденциальность** | 100% — данные на вашем сервере | Данные у OpenAI | Данные у Anthropic |
|
||||
| **Скорость (кэш)** | < 50ms | 500–2000ms | 500–2000ms |
|
||||
| **Offline-работа** | Да | Нет | Нет |
|
||||
| **Настройка под бизнес** | Полная: промпты, правила, RAG | Ограниченная | Ограниченная |
|
||||
| **Лимиты API** | Нет | Есть | Есть |
|
||||
| **Количество агентов** | Неограничено | Нужен отдельный API-вызов | Нужен отдельный API-вызов |
|
||||
| **Множественные базы знаний** | Да, изолированные RAG-таблицы | Нет нативной поддержки | Нет нативной поддержки |
|
||||
|
||||
---
|
||||
|
||||
## Экономический эффект
|
||||
|
||||
### Сравнение с облачными решениями
|
||||
### Экономия на API-запросах
|
||||
|
||||
| Характеристика | DLE AI (Локальный) | ChatGPT API | Claude API |
|
||||
|----------------|-------------------|-------------|------------|
|
||||
| **Стоимость** | $0 | ~$0.02/запрос | ~$0.03/запрос |
|
||||
| **Конфиденциальность** | ✅ 100% | ❌ Данные в OpenAI | ❌ Данные в Anthropic |
|
||||
| **Скорость (кэш)** | 50ms | 500-2000ms | 500-2000ms |
|
||||
| **Offline работа** | ✅ Да | ❌ Нет | ❌ Нет |
|
||||
| **Настройка под бизнес** | ✅ Полная | ⚠️ Ограниченная | ⚠️ Ограниченная |
|
||||
| **Лимиты API** | ❌ Нет | ✅ Есть | ✅ Есть |
|
||||
| Объём запросов | ChatGPT API | Claude API | DLE |
|
||||
|---------------|-------------|------------|-----|
|
||||
| 10,000/мес | $2,400/год | $3,600/год | $0 |
|
||||
| 50,000/мес | $12,000/год | $18,000/год | $0 |
|
||||
| 100,000/мес | $24,000/год | $36,000/год | $0 |
|
||||
|
||||
### Экономия при использовании облачных API
|
||||
### Экономия на автоматизации процессов
|
||||
|
||||
**При 10,000 запросов в месяц:**
|
||||
- ChatGPT API: $200/месяц = **$2,400/год**
|
||||
- Claude API: $300/месяц = **$3,600/год**
|
||||
- DLE AI: **$0/год** ✅
|
||||
Каждый агент заменяет рутинную работу сотрудников. Расчёт для компании среднего размера:
|
||||
|
||||
**При 50,000 запросов в месяц:**
|
||||
- ChatGPT API: $1,000/месяц = **$12,000/год**
|
||||
- Claude API: $1,500/месяц = **$18,000/год**
|
||||
- DLE AI: **$0/год** ✅
|
||||
| Агент | Что автоматизирует | Экономия в год |
|
||||
|-------|--------------------|----------------|
|
||||
| Агент поддержки | Ответы на типовые вопросы 24/7 (вместо 1-2 операторов) | $57,600 |
|
||||
| AI-закупщик | Поиск и сравнение поставщиков (вместо ручного анализа) | $64,800 |
|
||||
| HR-ассистент | Скрининг резюме, ответы сотрудникам | $57,600 |
|
||||
| Контент-редактор | Генерация постов, рассылок, статей | $86,400 |
|
||||
| Аналитик | Отчётность, анализ данных, мониторинг KPI | $144,000 |
|
||||
| Агент по работе с партнёрами | Коммуникации, подготовка документов | $43,200 |
|
||||
| Обучение персонала | Персонализированные программы, тесты знаний | $30,000 |
|
||||
| Экономия на API | Отсутствие платы за облачные API | $24,000–36,000 |
|
||||
| **Итого** | | **$507,600–519,600** |
|
||||
|
||||
**При 100,000 запросов в месяц:**
|
||||
- ChatGPT API: $2,000/месяц = **$24,000/год**
|
||||
- Claude API: $3,000/месяц = **$36,000/год**
|
||||
- DLE AI: **$0/год** ✅
|
||||
**Стоимость DLE**: $1,000 (единоразово)
|
||||
|
||||
### Суммарная экономия по всем направлениям
|
||||
### Сравнение с SaaS за 5 лет
|
||||
|
||||
| Направление | Экономия в год | ROI |
|
||||
|-------------|----------------|-----|
|
||||
| **Обслуживание клиентов** | $57,600 | 5,760% |
|
||||
| **Работа с поставщиками + AI закупщик** | $64,800 | 6,480% |
|
||||
| **Работа с партнерами** | $43,200 | 4,320% |
|
||||
| **Обучение персонала** | $30,000 | 3,000% |
|
||||
| **Управление персоналом** | $57,600 | 5,760% |
|
||||
| **Отчетность и анализ** | $144,000 | 14,400% |
|
||||
| **Контент-маркетинг** | $86,400 | 8,640% |
|
||||
| **Экономия на API токенах** | $24,000-36,000 | 2,400-3,600% |
|
||||
| **ИТОГО:** | **$507,600-519,600** | **50,760-51,960%** |
|
||||
```
|
||||
Типичный SaaS-стек:
|
||||
CRM (HubSpot): $200/мес × 60 = $12,000
|
||||
Чат-бот (Intercom): $150/мес × 60 = $9,000
|
||||
Email (SendGrid): $100/мес × 60 = $6,000
|
||||
AI (ChatGPT API): $200/мес × 60 = $12,000
|
||||
─────────────────────────────────────────────
|
||||
Итого SaaS: $39,000
|
||||
|
||||
**Стоимость внедрения DLE**: $1,000 (единоразово, Standard Support)
|
||||
**ROI**: 50,760-51,960% или **507-519x окупаемость**
|
||||
DLE:
|
||||
Лицензия: $1,000
|
||||
AI без лимитов: $0
|
||||
Обновления 5 лет: $0
|
||||
─────────────────────────────────────────────
|
||||
Итого DLE: $1,000
|
||||
|
||||
### Дополнительные выгоды
|
||||
|
||||
**Неизмеримые преимущества:**
|
||||
- 📈 Повышение качества работы
|
||||
- 😊 Удовлетворенность клиентов +19%
|
||||
- 👥 Удержание сотрудников +15%
|
||||
- 🚀 Скорость принятия решений +300%
|
||||
- 💡 Больше времени на стратегию
|
||||
- 🎯 Меньше рутины, больше креатива
|
||||
Экономия за 5 лет: $38,000
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Настройка и интеграция
|
||||
## Дополнительные материалы
|
||||
|
||||
**Что нужно для запуска:**
|
||||
- ✅ Установить DLE (см. [Инструкцию по установке](./setup-instruction.md))
|
||||
- ✅ Запустить Ollama и установить модели
|
||||
- ✅ Создать базу знаний (FAQ, поставщики, HR)
|
||||
- ✅ Настроить AI ассистента под ваш бизнес
|
||||
- ✅ Интегрировать с Telegram/Email (опционально)
|
||||
|
||||
**Время настройки:**
|
||||
- 🚀 **Быстрый старт**: 20-30 минут (базовый FAQ)
|
||||
- ⚙️ **Полная настройка**: 1-2 часа (все возможности)
|
||||
|
||||
**Результат:**
|
||||
- 🤖 Работающий AI ассистент 24/7
|
||||
- 📚 База знаний для ответов клиентам
|
||||
- 🔍 Векторный поиск по вашим данным
|
||||
- 💰 Экономия до $519,600/год
|
||||
|
||||
### Следующие шаги
|
||||
|
||||
1. 📖 [Установите DLE](./setup-instruction.md)
|
||||
2. 🤖 [Настройте AI ассистента](./setup-ai-assistant.md)
|
||||
3. 📚 Загрузите базу знаний
|
||||
4. 🚀 Начните экономить время и деньги!
|
||||
- [Архитектура множественных ИИ-агентов](./back-docs/multi-agent-architecture.md) — детальная техническая спецификация
|
||||
- [Настройка AI-ассистента](./back-docs/setup-ai-assistant.md) — пошаговая инструкция по развёртыванию
|
||||
- [Система электронных таблиц](./back-docs/tables-system.md) — как устроены RAG-таблицы
|
||||
- [FAQ](./FAQ.md) — частые вопросы
|
||||
|
||||
---
|
||||
|
||||
## Поддержка
|
||||
|
||||
**Нужна помощь с настройкой AI?**
|
||||
|
||||
📧 **Email**: info@hb3-accelerator.com
|
||||
💬 **Чат**: https://hb3-accelerator.com
|
||||
📚 **Документация**: [FAQ](./FAQ.md)
|
||||
🎓 **Обучение**: Онлайн-сессии для токен-холдеров
|
||||
- **Email**: info@hb3-accelerator.com
|
||||
- **Чат**: https://hb3-accelerator.com
|
||||
- **Документация**: [FAQ](./FAQ.md)
|
||||
|
||||
---
|
||||
|
||||
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**
|
||||
|
||||
**Последнее обновление**: October 2025
|
||||
**Последнее обновление**: Февраль 2026
|
||||
|
||||
@@ -1,136 +1,82 @@
|
||||
# Digital Legal Entity (DLE) - Веб-приложение для управления бизнесом
|
||||
# Digital Legal Entity (DLE) — описание платформы
|
||||
|
||||
> **Полный контроль. Нулевая абонентская плата. AI экономит $507,600-519,600/год.**
|
||||
## Определение
|
||||
|
||||
## 📖 Определение продукта
|
||||
**Digital Legal Entity (DLE)** — микросервисная платформа с веб-приложением для локальной установки на серверах компании. Включает инструменты настройки ИИ-агентов и систему смарт-контрактов с поддержкой налоговых, бухгалтерских, банковских и иных идентификаторов, установленных регулятором.
|
||||
|
||||
**Digital Legal Entity (DLE)** — микросервисная IT-инфраструктура с веб-приложением для локального развёртывания на серверах компании.
|
||||
|
||||
**Включает:**
|
||||
- Инструменты настройки ИИ-агентов
|
||||
- Систему смарт-контрактов с поддержкой:
|
||||
- Реквизитов юридических лиц
|
||||
- Идентификаторов для финансовых операций, установленных регулятором
|
||||
|
||||
**Преимущества:**
|
||||
- Управление и автоматизация бизнес-процессов
|
||||
- Замена разрозненных SaaS-сервисов с ежемесячными подписками
|
||||
- Соответствие требованиям регуляторов к хранению и обработке данных
|
||||
Обеспечивает управление и автоматизацию бизнес-процессов, позволяет отказаться от разрозненных SaaS-сервисов с ежемесячными подписками и соответствует требованиям регуляторов к хранению и обработке данных.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Содержание
|
||||
## Содержание
|
||||
|
||||
1. [Для кого это приложение](#для-кого-это-приложение)
|
||||
2. [Ключевые преимущества](#ключевые-преимущества)
|
||||
1. [Для кого](#для-кого)
|
||||
2. [Почему DLE, а не SaaS](#почему-dle-а-не-saas)
|
||||
3. [Основные возможности](#основные-возможности)
|
||||
4. [Экономический эффект](#экономический-эффект)
|
||||
5. [Технические детали](#технические-детали)
|
||||
6. [Условия приобретения](#условия-приобретения)
|
||||
7. [Дополнительная документация](#дополнительная-документация)
|
||||
7. [Документация](#документация)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Для кого это приложение
|
||||
## Для кого
|
||||
|
||||
DLE создано для **всех типов организаций**, нуждающихся в прозрачном коллективном управлении:
|
||||
DLE создано для организаций, которым нужна собственная ИТ-инфраструктура с прозрачным управлением:
|
||||
|
||||
- **Коммерческие организации** (ООО, АО, ИП, холдинги)
|
||||
- **Некоммерческие организации** (НКО, фонды, ассоциации)
|
||||
- **Государственные структуры** (муниципалитеты, ведомства)
|
||||
- **Инвестиционные фонды** и **венчурные компании**
|
||||
- **Стартапы** и **малый бизнес**
|
||||
- **Кооперативы** и **объединения**
|
||||
- Коммерческие организации (ООО, АО, ИП, холдинги)
|
||||
- Некоммерческие организации (НКО, фонды, ассоциации)
|
||||
- Государственные структуры (муниципалитеты, ведомства)
|
||||
- Инвестиционные фонды и венчурные компании
|
||||
- Стартапы и малый бизнес
|
||||
- Кооперативы и объединения
|
||||
|
||||
---
|
||||
|
||||
## 💎 Ключевые преимущества
|
||||
|
||||
### Почему DLE, а не SaaS?
|
||||
## Почему DLE, а не SaaS
|
||||
|
||||
| Параметр | DLE | Обычные SaaS |
|
||||
|----------|-----|--------------|
|
||||
| **💰 Стоимость** | $1,000 один раз | $200-500/месяц |
|
||||
| **📊 Владение данными** | 100% ваши | У провайдера |
|
||||
| **🔧 Кастомизация** | Полная | Ограниченная |
|
||||
| **🌍 Соответствие законам** | Под ваш регион | Зависит от провайдера |
|
||||
| **🛡️ Соответствие регуляторам** | GDPR, CCPA, 152-ФЗ | Ограниченное |
|
||||
| **🤖 AI без лимитов** | Бесплатно | $200+/месяц |
|
||||
| **🔗 Блокчейн** | Встроен | Нет или доп. плата |
|
||||
| **⚡ Обновления** | Бесплатно 5 лет (для держателей токенов) | Зависит от тарифа |
|
||||
|
||||
### 🎁 Что вы получаете
|
||||
|
||||
✅ **Бессрочная лицензия** - платите один раз, используйте вечно
|
||||
✅ **Бесплатные обновления** - все улучшения без доп. платы
|
||||
✅ **Полный исходный код** - полная прозрачность
|
||||
✅ **AI на своем сервере** - 100% конфиденциальность
|
||||
✅ **Блокчейн-защита** - активы невозможно украсть
|
||||
✅ **Токенизация активов** - экономия 99% на сделках
|
||||
✅ **Право голоса** - влияние на развитие продукта
|
||||
✅ **Готовый пакет документов для регулятора** - политика конфиденциальности, согласие на обработку ПД, пользовательское соглашение, политика cookies
|
||||
✅ **Гарантия возврата 70%** - в течение 5 лет при отсутствии обновлений
|
||||
| Стоимость | $1,000 один раз | $200-500/мес |
|
||||
| Владение данными | На вашем сервере | У провайдера |
|
||||
| Кастомизация | Полная (исходный код) | Ограниченная |
|
||||
| AI | Локальный, без лимитов, $0 | Облачный, платный API |
|
||||
| Блокчейн | Встроен | Нет |
|
||||
| Обновления | Бесплатно 5 лет | Зависит от тарифа |
|
||||
| Соответствие регуляторам | Полное (данные локально) | Зависит от провайдера |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Основные возможности
|
||||
## Основные возможности
|
||||
|
||||
### 1. CRM и управление контактами
|
||||
### 1. ИИ-агенты
|
||||
|
||||
Одна локальная модель Ollama — множество специализированных агентов. Каждый агент заточен под конкретный бизнес-процесс: свой промпт, свои правила, своя база знаний (RAG-таблицы).
|
||||
|
||||
Вы сами создаёте агентов под задачи компании: поддержка клиентов, аналитика, бухгалтерия, HR, маркетинг, закупки и любые другие процессы. Данные не покидают ваш сервер.
|
||||
|
||||
Подробнее: [ИИ-агенты DLE](./ai-assistant.md)
|
||||
|
||||
### 2. CRM и управление контактами
|
||||
|
||||
**Полноценная система управления клиентами**:
|
||||
- Централизованная база контактов с историей взаимодействий
|
||||
- Группировка по тегам и категориям
|
||||
- Система задач и напоминаний
|
||||
- Импорт из CSV, Excel, внешних CRM
|
||||
- Экспорт в различных форматах
|
||||
- Импорт/экспорт (CSV, Excel)
|
||||
- Конструктор документов и шаблонов
|
||||
|
||||
### 2. AI ассистент с векторным поиском
|
||||
|
||||
**Локальный AI на вашем сервере**:
|
||||
- Ollama + Vector Search (RAG)
|
||||
- Модель qwen2.5:7b (или любая другая)
|
||||
- 100% конфиденциальность (данные не уходят наружу)
|
||||
- Нулевые затраты на API токены
|
||||
|
||||
**Ключевые возможности**:
|
||||
- **📞 Обслуживание клиентов** - ответы 24/7, анализ настроения клиентов
|
||||
- **📊 Аналитика и бизнес-интеллект** - анализ данных, прогнозирование продаж
|
||||
- **💰 Финансовое планирование** - автоматическая бухгалтерия, анализ рентабельности
|
||||
- **🎯 Маркетинг и продажи** - генерация контента, персонализация сообщений
|
||||
- **👥 HR и управление персоналом** - скрининг резюме, планирование обучения
|
||||
- **📋 Управление проектами** - автоматическое планирование, отслеживание прогресса
|
||||
- **🔍 Исследования и разработка** - анализ рынка, генерация идей
|
||||
- **🛡️ Безопасность и комплаенс** - мониторинг безопасности, анализ соответствия
|
||||
- **📈 Операционная эффективность** - оптимизация процессов, автоматизация
|
||||
- **🎓 Обучение и развитие** - персонализированные программы обучения
|
||||
- **🌐 Международная деятельность** - автоматический перевод, адаптация контента
|
||||
- **🔮 Стратегическое планирование** - анализ трендов, сценарное планирование
|
||||
- **📱 Мобильные решения** - разработка приложений, создание чат-ботов
|
||||
- **🏭 Отраслевые решения** - специализированные решения для разных отраслей
|
||||
- **🔄 Интеграция и автоматизация** - API-интеграции, автоматизация процессов
|
||||
|
||||
**Экономический эффект**: $507,600-519,600/год при ROI 50,760-51,960%
|
||||
|
||||
> 💡 **Подробная информация**: См. [AI Ассистент - полное описание](./ai-assistant.md) - там детально описаны все возможности, кейсы применения, архитектура работы и расчеты экономии.
|
||||
|
||||
### 3. Омниканальные коммуникации
|
||||
|
||||
**Единый интерфейс для всех каналов**:
|
||||
- 💬 Telegram бот, 📧 Email, 🌐 Web чат, 📱 SMS, 📋 Веб-формы
|
||||
- Один контекст для клиента на всех каналах
|
||||
- AI автоответы с обучением на ваших данных
|
||||
- Аналитика по каналам и времени ответа
|
||||
Единый интерфейс для всех каналов: Telegram-бот, Email, Web-чат, SMS, веб-формы. Один контекст для клиента на всех каналах. AI-автоответы с обучением на ваших данных.
|
||||
|
||||
### 4. Блокчейн-управление и токенизация
|
||||
|
||||
**Смарт-контракты для бизнеса**:
|
||||
- Токенизация любых активов (недвижимость, IP, акции)
|
||||
- Смарт-контракты с поддержкой идентификаторов регулятора
|
||||
- Токенизация активов (недвижимость, IP, доли)
|
||||
- Управление через голосование токен-холдеров
|
||||
- Мультичейн поддержка (7+ сетей: Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base)
|
||||
- Прозрачность всех операций на блокчейне
|
||||
- Мультичейн поддержка (Ethereum, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base)
|
||||
|
||||
> 💡 **Подробная информация**: См. [Блокчейн для бизнеса](./blockchain-for-business.md) - практические кейсы использования и [Техническая документация по блокчейну](./blockchain-integration-technical.md) - для разработчиков.
|
||||
Подробнее: [Блокчейн для бизнеса](./blockchain-for-business.md)
|
||||
|
||||
### 5. Группы и пространства для команд
|
||||
|
||||
@@ -142,206 +88,111 @@ DLE создано для **всех типов организаций**, нуж
|
||||
### 6. Внутренние инструменты
|
||||
|
||||
- Электронные таблицы (аналог Excel)
|
||||
- Система аналитики и отчетов
|
||||
- Система аналитики и отчётов
|
||||
- Мониторинг метрик
|
||||
- WebSSH для управления серверами
|
||||
|
||||
### 7. Безопасность и защита
|
||||
### 7. Безопасность
|
||||
|
||||
**Многоуровневая защита DLE**:
|
||||
- **Сетевая безопасность** - TLS 1.3, HTTPS, DDoS защита
|
||||
- **Аутентификация** - SIWE (вход через кошелек), сессии в БД
|
||||
- **Авторизация** - детальные разрешения (20+ типов), токен-гейтинг
|
||||
- **Защита данных** - AES-256 шифрование, защита от SQL-инъекций
|
||||
- **Блокчейн-защита** - токены нельзя украсть без голосования
|
||||
- **Мониторинг** - логирование, алерты, audit trail
|
||||
- TLS 1.3, AES-256 шифрование
|
||||
- SIWE (вход через кошелёк), сессии в БД
|
||||
- Детальные разрешения (20+ типов), токен-гейтинг
|
||||
- Соответствие GDPR, CCPA, 152-ФЗ
|
||||
- Все данные — на вашем сервере
|
||||
|
||||
**Соответствие требованиям регуляторов**:
|
||||
- **GDPR** - соответствие европейским требованиям по защите персональных данных
|
||||
- **CCPA** - соответствие калифорнийским требованиям
|
||||
- **Российское законодательство** - соответствие 152-ФЗ "О персональных данных"
|
||||
- **Локальное хранение** - все данные остаются на вашем сервере
|
||||
- **Прозрачность** - полный контроль над обработкой персональных данных
|
||||
Подробнее: [Безопасность DLE](./security.md)
|
||||
|
||||
> 💡 **Подробная информация**: См. [Безопасность DLE](./security.md) - там детально описаны все уровни защиты, сценарии атак, рекомендации по безопасности и соответствие регуляторным требованиям.
|
||||
---
|
||||
|
||||
## 💰 Экономический эффект
|
||||
## Экономический эффект
|
||||
|
||||
### Сравнение с SaaS за 5 лет
|
||||
|
||||
**Типичный стек SaaS**:
|
||||
```
|
||||
CRM (HubSpot): $200/мес × 60 мес = $12,000
|
||||
Чат-бот (Intercom): $150/мес × 60 мес = $9,000
|
||||
Email (SendGrid): $100/мес × 60 мес = $6,000
|
||||
AI (ChatGPT API): $200/мес × 60 мес = $12,000
|
||||
─────────────────────────────
|
||||
ИТОГО: $39,000
|
||||
```
|
||||
| Расходы | SaaS-стек | DLE |
|
||||
|---------|-----------|-----|
|
||||
| CRM | $12,000 | — |
|
||||
| Чат-бот | $9,000 | — |
|
||||
| Email-рассылки | $6,000 | — |
|
||||
| AI (API) | $12,000 | — |
|
||||
| **Итого** | **$39,000** | **$1,000** |
|
||||
|
||||
**DLE**:
|
||||
```
|
||||
Лицензия (один раз): $1,000
|
||||
Обновления (5 лет): $0
|
||||
AI без лимитов: $0
|
||||
─────────────────────────────
|
||||
ИТОГО: $1,000
|
||||
Экономия: $38,000 за 5 лет. Платите один раз — используете бессрочно.
|
||||
|
||||
ЭКОНОМИЯ: $38,000
|
||||
```
|
||||
### Локальный AI vs облачные API
|
||||
|
||||
### ROI от AI ассистента
|
||||
|
||||
**Сравнение с облачными решениями**:
|
||||
|
||||
| Характеристика | DLE AI (Локальный) | ChatGPT API | Claude API |
|
||||
|----------------|-------------------|-------------|------------|
|
||||
| **Стоимость** | $0 | ~$0.02/запрос | ~$0.03/запрос |
|
||||
| **Конфиденциальность** | ✅ 100% | ❌ Данные в OpenAI | ❌ Данные в Anthropic |
|
||||
| **Скорость (кэш)** | 50ms | 500-2000ms | 500-2000ms |
|
||||
| **Offline работа** | ✅ Да | ❌ Нет | ❌ Нет |
|
||||
| **Настройка под бизнес** | ✅ Полная | ⚠️ Ограниченная | ⚠️ Ограниченная |
|
||||
| **Лимиты API** | ❌ Нет | ✅ Есть | ✅ Есть |
|
||||
|
||||
**Суммарная экономия по всем направлениям**:
|
||||
- Обслуживание клиентов: $57,600
|
||||
- Работа с поставщиками + AI закупщик: $64,800
|
||||
- Работа с партнерами: $43,200
|
||||
- Обучение персонала: $30,000
|
||||
- Управление персоналом: $57,600
|
||||
- Отчетность и анализ: $144,000
|
||||
- Контент-маркетинг: $86,400
|
||||
- Экономия на API токенах: $24,000-36,000
|
||||
- **ИТОГО**: $507,600-519,600/год
|
||||
|
||||
**Инвестиция**: $1,000
|
||||
**ROI**: 50,760-51,960% или 507-519x окупаемость ✅
|
||||
|
||||
### Экономия на токенизации активов
|
||||
|
||||
**Традиционная сделка с недвижимостью ($1M)**:
|
||||
- Комиссия риелтора: 3-5% = $30,000-50,000
|
||||
- Юридические услуги: $5,000-10,000
|
||||
- Регистрация права: $2,000-5,000
|
||||
- Время: 2-6 месяцев
|
||||
- **Итого**: $37,000-65,000
|
||||
|
||||
**Токенизированная сделка через DLE**:
|
||||
- Gas fees: $50-200
|
||||
- Смарт-контракт (один раз): $500
|
||||
- Время: 5-10 минут
|
||||
- **Итого**: $550-700
|
||||
|
||||
**Экономия**: 99% затрат и 99% времени ✅
|
||||
| | DLE (локальный) | Облачные API |
|
||||
|-|-----------------|--------------|
|
||||
| Стоимость | $0 | ~$0.02-0.03/запрос |
|
||||
| Конфиденциальность | Данные на вашем сервере | Данные у провайдера |
|
||||
| Лимиты | Нет | Есть |
|
||||
| Offline | Да | Нет |
|
||||
| Настройка под бизнес | Полная (агенты, RAG) | Ограниченная |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Технические детали
|
||||
## Технические детали
|
||||
|
||||
### Архитектура
|
||||
### Стек технологий
|
||||
|
||||
**Современный технологический стек**:
|
||||
- **Frontend**: Vue.js 3 + Vite + Element Plus
|
||||
- **Backend**: Node.js + Express
|
||||
- **База данных**: PostgreSQL + pgvector
|
||||
- **AI**: Ollama (qwen2.5:7b) + FAISS Vector Search
|
||||
- **Блокчейн**: Ethers.js v6 + Hardhat
|
||||
- **Контейнеризация**: Docker Compose
|
||||
| Компонент | Технология |
|
||||
|-----------|-----------|
|
||||
| Frontend | Vue.js 3, Vite, Element Plus |
|
||||
| Backend | Node.js, Express |
|
||||
| База данных | PostgreSQL, pgvector |
|
||||
| AI | Ollama (qwen2.5:7b), FAISS Vector Search |
|
||||
| Блокчейн | Ethers.js v6, Hardhat |
|
||||
| Контейнеризация | Docker Compose |
|
||||
|
||||
### Принципы проектирования
|
||||
### Минимальные требования
|
||||
|
||||
✅ **Микросервисная архитектура** - легко масштабировать
|
||||
✅ **Полный контроль** - вы владеете приложением и данными
|
||||
✅ **Модульность** - добавляйте новые функции через модули
|
||||
✅ **Безопасность** - многоуровневая защита (TLS, AES-256, CSRF)
|
||||
✅ **API-first** - REST + WebSocket для интеграций
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| CPU | 4 ядра |
|
||||
| RAM | 12 GB (приложение + AI + Vector Search) |
|
||||
| Хранилище | 100 GB SSD |
|
||||
| ОС | Ubuntu 20.04+, Debian 11+, CentOS 8+ (любая Linux с Docker) |
|
||||
|
||||
### Развертывание
|
||||
### Развёртывание
|
||||
|
||||
**Гибкие варианты установки**:
|
||||
- **На своем сервере** - полный контроль
|
||||
- **В облаке** - AWS, Google Cloud, Azure
|
||||
- **На локальной инфраструктуре** - соответствие регуляторным требованиям
|
||||
- **Docker Compose** - развертывание одной командой
|
||||
|
||||
**Минимальные требования**:
|
||||
- **CPU**: 4 ядра
|
||||
- **RAM**: 12 GB (4 GB приложение + 6 GB AI + 2 GB Vector Search)
|
||||
- **Хранилище**: 100 GB SSD
|
||||
- **ОС**: Ubuntu 20.04+, Debian 11+, CentOS 8+, любая Linux с Docker
|
||||
|
||||
> 💡 **Подробная информация**: См. [Инструкция по установке](./setup-instruction.md) - пошаговая настройка и [Настройка AI ассистента](./setup-ai-assistant.md) - специализированная установка.
|
||||
Установка одной командой через Docker Compose. Подробнее: [Инструкция по установке](./back-docs/setup-instruction.md)
|
||||
|
||||
---
|
||||
|
||||
## 💳 Условия приобретения
|
||||
## Условия приобретения
|
||||
|
||||
> 💡 **Подробная информация**: См. [Условия обслуживания](./service-terms.md) - там детально описаны лицензионная модель, тарифы, гарантии и процесс приобретения.
|
||||
| Пакет | Цена | Токены | Голоса |
|
||||
|-------|------|--------|--------|
|
||||
| Standard | $1,000 USDT (единоразово) | 1 | 1 |
|
||||
| Premium | $10,000 USDT (единоразово) | 10 | 10 |
|
||||
|
||||
### Краткий обзор
|
||||
Бессрочная лицензия, полный исходный код, бесплатные обновления 5 лет, техническая поддержка, токены управления на блокчейне, готовый пакет документов для регулятора.
|
||||
|
||||
**Бессрочная лицензия (Perpetual License)**:
|
||||
- 💰 **Платите один раз** - используйте вечно
|
||||
- 📄 **Полный исходный код** с документацией
|
||||
- 🔄 **Бесплатные обновления** 5 лет для держателей лицензионных токенов (см. [legal/service-terms.md](../legal/service-terms.md))
|
||||
- 🗳️ **Право голоса** за развитие продукта
|
||||
|
||||
**Тарифы**:
|
||||
| Пакет | Цена | Голоса | Поддержка |
|
||||
|-------|------|--------|-----------|
|
||||
| **Standard Support** | $1,000 USDT | 1 голос | чат 24/7 |
|
||||
| **Priority Support** | $10,000 USDT | 10 голосов | чат 24/7 |
|
||||
|
||||
**Что включено**:
|
||||
✅ Бессрочная лицензия на использование
|
||||
✅ Исходный код с полной документацией
|
||||
✅ Бесплатные обновления 5 лет для держателей токенов
|
||||
✅ Техническая поддержка
|
||||
✅ Токены управления на блокчейне
|
||||
✅ Готовый пакет документов для регулятора
|
||||
✅ Гарантия возврата 70% в течение 5 лет
|
||||
|
||||
**Как приобрести**:
|
||||
1. Свяжитесь с нами: info@hb3-accelerator.com
|
||||
2. Получите реквизиты для оплаты (USDT)
|
||||
3. Оплатите лицензию
|
||||
4. Получите доступ к коду и токены DLE
|
||||
Подробнее: [Условия приобретения и обслуживания](./service-terms.md)
|
||||
|
||||
---
|
||||
|
||||
## 📚 Дополнительная документация
|
||||
## Документация
|
||||
|
||||
### 🎯 Быстрый старт
|
||||
- 📋 **[FAQ](./FAQ.md)** - ответы на 50+ вопросов (11 разделов)
|
||||
- 🔧 **[Установка](./setup-instruction.md)** - пошаговая настройка за 15 минут
|
||||
- 🤖 **[Настройка AI](./setup-ai-assistant.md)** - запуск AI ассистента
|
||||
**Продукт:**
|
||||
- [ИИ-агенты](./ai-assistant.md) — архитектура, примеры агентов, настройка
|
||||
- [Блокчейн для бизнеса](./blockchain-for-business.md) — токенизация активов, практические кейсы
|
||||
- [Безопасность](./security.md) — многоуровневая защита, соответствие регуляторам
|
||||
- [Условия обслуживания](./service-terms.md) — лицензирование, поддержка, гарантии
|
||||
- [FAQ](./FAQ.md) — частые вопросы
|
||||
|
||||
### 💼 Бизнес и экономика
|
||||
- 💰 **[Блокчейн для бизнеса](./blockchain-for-business.md)** - токенизация активов, экономия 99% на сделках
|
||||
- 🤖 **[AI Ассистент](./ai-assistant.md)** - экономия $507,600-519,600/год, философия "AI+Человек"
|
||||
- 📊 **[Система таблиц](./tables-system.md)** - управление данными и документами
|
||||
**Техническая:**
|
||||
- [Установка](./back-docs/setup-instruction.md) — пошаговая настройка
|
||||
- [Настройка AI](./back-docs/setup-ai-assistant.md) — запуск ИИ-агентов
|
||||
- [Блокчейн интеграция](./back-docs/blockchain-integration-technical.md) — смарт-контракты, API
|
||||
|
||||
### 🔧 Техническая документация
|
||||
- 🔗 **[Блокчейн интеграция](./blockchain-integration-technical.md)** - смарт-контракты, API, примеры кода
|
||||
- 🛡️ **[Безопасность](./security.md)** - многоуровневая защита, соответствие GDPR/CCPA/152-ФЗ
|
||||
- ⚖️ **[Условия обслуживания](./service-terms.md)** - лицензирование, поддержка, гарантии
|
||||
**Общая:**
|
||||
- [Главная страница](../README.md)
|
||||
- [Юридическая документация](../legal/README.md)
|
||||
|
||||
### 📖 Общая информация
|
||||
- 📖 **[Основной README](../README.md)** - полный список всех документов
|
||||
- ⚖️ **[Юридическая документация](../legal/README.md)** - правовая информация
|
||||
|
||||
### 📞 Поддержка и контакты
|
||||
|
||||
**Основные контакты**:
|
||||
- 📧 **Email**: info@hb3-accelerator.com
|
||||
- 🌐 **Сайт**: https://hb3-accelerator.com
|
||||
- 💬 **Чат поддержки**: https://hb3-accelerator.com/
|
||||
- 🐙 **GitHub**: https://github.com/VC-HB3-Accelerator
|
||||
---
|
||||
|
||||
**Контакты:** info@hb3-accelerator.com · https://hb3-accelerator.com · [GitHub](https://github.com/VC-HB3-Accelerator)
|
||||
|
||||
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**
|
||||
|
||||
**Digital Legal Entity (DLE)** - революция в управлении бизнесом через блокчейн и AI.
|
||||
|
||||
**Версия документа**: 2.0.0
|
||||
**Последнее обновление**: October 2025
|
||||
**Последнее обновление:** 2026-02-19
|
||||
|
||||
@@ -1261,8 +1261,8 @@ Digital Legal Entity на блокчейне решает фундаментал
|
||||
### Начните сейчас!
|
||||
|
||||
1. 📖 **[Изучите FAQ](./FAQ.md)** - ответы на популярные вопросы
|
||||
2. 🚀 **[Установите DLE](./setup-instruction.md)** - пошаговая инструкция
|
||||
3. 🔗 **[Настройте блокчейн](./blockchain-integration-technical.md)** - техническая документация
|
||||
2. 🚀 **[Установите DLE](./back-docs/setup-instruction.md)** - пошаговая инструкция
|
||||
3. 🔗 **[Настройте блокчейн](./back-docs/blockchain-integration-technical.md)** - техническая документация
|
||||
4. 💬 **[Получите поддержку](https://hb3-accelerator.com/)** - мы поможем!
|
||||
|
||||
---
|
||||
@@ -1271,8 +1271,8 @@ Digital Legal Entity на блокчейне решает фундаментал
|
||||
|
||||
### Документация
|
||||
- 📋 [FAQ](./FAQ.md)
|
||||
- 🔧 [Установка](./setup-instruction.md)
|
||||
- 🔗 [Техническая документация по блокчейну](./blockchain-integration-technical.md)
|
||||
- 🔧 [Установка](./back-docs/setup-instruction.md)
|
||||
- 🔗 [Техническая документация по блокчейну](./back-docs/blockchain-integration-technical.md)
|
||||
- 📝 [Условия обслуживания](./service-terms.md)
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,243 +0,0 @@
|
||||
# Коммерческое предложение для предпринимателей
|
||||
|
||||
## Готовый софт для управления бизнесом с бесплатной настройкой
|
||||
|
||||
**Дата:** 2025-01-27
|
||||
**Целевая аудитория:** Предприниматели из СНГ
|
||||
**Тип:** Первичное коммерческое предложение
|
||||
|
||||
## 📨 ТЕЛО ПИСЬМА
|
||||
|
||||
**Тема:** Готовый софт для управления бизнесом с ИИ-ассистентом и бесплатной настройкой
|
||||
|
||||
Здравствуйте, [Имя]!
|
||||
|
||||
Предлагаем софт для бизнеса, включающий технологии **искусственного интеллекта** и **блокчейна**.
|
||||
|
||||
**🤖 Искусственный интеллект** работает локально на вашем сервере — анализирует данные, прогнозирует спрос и принимает операционные решения. Без оплаты за API-токены, без утечки данных.
|
||||
|
||||
**⛓️ Блокчейн и токенизация активов** обеспечивают:
|
||||
- **Прозрачный учёт** — каждый товар на складе получает токен, все продажи и перемещения фиксируются в неизменяемом реестре, исключая расхождения в учете и манипуляции
|
||||
- **Безопасность** — криптографическая защита данных об активах, исключение подделок товаров и несанкционированного доступа к учетным записям
|
||||
- **Мгновенные платежи** — прямые переводы между участниками без посредников, банков и задержек
|
||||
|
||||
**Результат:** клиенты сокращают операционные издержки на 30%+ и экономят время на спорах из‑за документов или задержек оплаты.
|
||||
|
||||
---
|
||||
|
||||
## 💼 ЧТО ВЫ ПОЛУЧАЕТЕ
|
||||
|
||||
**Digital Legal Entity (DLE)** — микросервисная IT-инфраструктура с веб-приложением для локального развёртывания на серверах компании. Включает инструменты настройки ИИ-агентов и систему смарт-контрактов с поддержкой реквизитов юридических лиц и идентификаторов для финансовых операций, установленных регулятором. Обеспечивает управление и автоматизацию бизнес-процессов, позволяет отказаться от разрозненных SaaS-сервисов с ежемесячными подписками и соответствует требованиям регуляторов к хранению и обработке данных.
|
||||
|
||||
**Готовое веб-приложение для управления бизнесом** — проверенное решение, которое мы используем для управления собственным бизнесом. После покупки вы получите его для настройки под вашу деятельность.
|
||||
|
||||
**Основные возможности:**
|
||||
|
||||
✅ **ИИ-ассистент** — анализ данных, прогнозирование спроса, принятие операционных решений, автоматизация рутины (клиентский сервис 24/7, аналитика, маркетинг, HR)
|
||||
✅ **Блокчейн и токенизация активов** — каждый товар получает токен для учета на складах и при продажах, неизменяемый реестр операций, криптографическая защита, мгновенные платежи
|
||||
✅ **CRM и управление контактами** — централизованная база клиентов
|
||||
✅ **Омниканальные коммуникации** — Telegram, Email, Web чат в едином интерфейсе
|
||||
✅ **Токенизация для внутреннего учета** — учет продукции, логистика, безопасность (легально)
|
||||
✅ **Электронные таблицы** — аналог Excel с интеграцией
|
||||
|
||||
**ИИ-ассистент работает локально на вашем сервере** — данные не уходят наружу, бесплатно (нет оплаты за API токены).
|
||||
|
||||
---
|
||||
|
||||
## 📊 СРАВНЕНИЕ С АНАЛОГАМИ
|
||||
|
||||
Чтобы вы могли принять взвешенное решение, сравните наше предложение с популярными решениями на рынке:
|
||||
|
||||
| Критерий | **DLE (наше решение)** | Битрикс24 | AmoCRM | Мегаплан | Salesforce | SAP/Oracle |
|
||||
|----------|------------------------|-----------|--------|----------|------------|------------|
|
||||
| **Цена (разовая)** | $1,000 - $10,000 один раз, бессрочно | ❌ Только подписка | ❌ Только подписка | ❌ Только подписка | ❌ Только подписка | $50,000+ разово + подписка |
|
||||
| **Подписка (в месяц)** | ✅ Не требуется | $29-299/мес | $15-200/мес | $15-150/мес | $25-300/мес | $100-500+/мес |
|
||||
| **ИИ-ассистент встроенный** | ✅ Да, локально, бесплатно | ⚠️ Ограниченный, платный | ⚠️ Ограниченный, платный | ❌ Нет | ⚠️ Einstein AI, дорого | ⚠️ Дополнительно, очень дорого |
|
||||
| **Блокчейн и токенизация** | ✅ Да, для внутреннего учета | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет |
|
||||
| **On-premises (ваш сервер)** | ✅ Да, полный контроль данных | ❌ Только облако | ❌ Только облако | ❌ Только облако | ❌ Только облако | ⚠️ Возможно, очень дорого |
|
||||
| **Бесплатная настройка** | ✅ 5 лет подрядчиками | ❌ От $500-5,000 | ❌ От $300-3,000 | ❌ От $400-4,000 | ❌ От $5,000+ | ❌ От $50,000+ |
|
||||
| **Открытый исходный код** | ✅ Да, GitHub | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет |
|
||||
| **Бессрочная лицензия** | ✅ Да | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ⚠️ Дорого |
|
||||
| **Обновления** | ✅ 5 лет включено | ✅ В подписке | ✅ В подписке | ✅ В подписке | ✅ В подписке | ⚠️ Дополнительно |
|
||||
| **Поддержка** | ✅ SLA 4-48 часов, 5 лет | ⚠️ По тарифу | ⚠️ По тарифу | ⚠️ По тарифу | ⚠️ По тарифу | ⚠️ Дорого |
|
||||
| **Омниканальные коммуникации** | ✅ Telegram, Email, Web | ⚠️ Ограниченно | ⚠️ Ограниченно | ⚠️ Ограниченно | ✅ Да | ⚠️ Дополнительно |
|
||||
| **Электронные таблицы** | ✅ Встроенные | ❌ Нет | ❌ Нет | ❌ Нет | ⚠️ Дополнительно | ⚠️ Дополнительно |
|
||||
| **Обучение** | ✅ Групповое + индивидуальное | ⚠️ Платно | ⚠️ Платно | ⚠️ Платно | ⚠️ Очень дорого | ⚠️ Очень дорого |
|
||||
| **Экосистема и инвестиции** | ✅ Акселератор, доступ к фонду | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет | ❌ Нет |
|
||||
| **Стоимость за 5 лет** | **$1,000-10,000** | $1,740-17,940 | $900-12,000 | $900-9,000 | $1,500-18,000 | $56,000+ |
|
||||
|
||||
**💡 Ключевые выводы:**
|
||||
|
||||
- **DLE дешевле в долгосрочной перспективе** — даже самый дорогой тариф ($10,000) дешевле 5 лет подписки у конкурентов
|
||||
- **Единственное решение с блокчейном и токенизацией** для внутреннего учета
|
||||
- **Единственное решение с бесплатной настройкой 5 лет** — у конкурентов настройка стоит от $300 до $50,000+
|
||||
- **Полный контроль данных** через on-premises развертывание
|
||||
- **Открытый код** — можете проверить безопасность и функциональность
|
||||
- **Бессрочная лицензия** — платите один раз, используете навсегда
|
||||
|
||||
*Примечание: Цены конкурентов указаны ориентировочно на 2025 год и могут варьироваться в зависимости от региона и количества пользователей.*
|
||||
|
||||
---
|
||||
|
||||
## 🎁 КЛЮЧЕВОЕ ПРЕИМУЩЕСТВО
|
||||
|
||||
**Бесплатная настройка подрядчиками в течение 5 лет**
|
||||
|
||||
После покупки подрядчики (наймные специалисты) помогут настроить приложение под вашу деятельность **БЕСПЛАТНО**. Работу подрядчиков оплачивает автор из прибыли от продаж лицензий (15% издержек) — вы не платите за настройку, это входит в лицензию.
|
||||
|
||||
**Что включает настройка:**
|
||||
- Персонализированная настройка под ваш вид деятельности
|
||||
- Интеграция с вашими бизнес-процессами
|
||||
- Настройка ИИ-ассистента под вашу специфику для анализа ваших данных и прогнозирования спроса
|
||||
- Настройка блокчейн-учета под ваши цепочки поставок
|
||||
- Доработка функционала при необходимости
|
||||
|
||||
---
|
||||
|
||||
## 💰 ЦЕНА И УСЛОВИЯ
|
||||
|
||||
**Тарифы:**
|
||||
- **Standard:** $1,000 USDT — один раз, бессрочно
|
||||
- **Premium:** $10,000 USDT — один раз, бессрочно
|
||||
|
||||
**Что входит:**
|
||||
- Софт навсегда (бессрочная лицензия)
|
||||
- Бесплатная настройка подрядчиками 5 лет
|
||||
- Обновления 5 лет
|
||||
- Поддержка (SLA 4-48 часов)
|
||||
- Онлайн-сессии обучения (групповые + индивидуальные)
|
||||
|
||||
**Разница между тарифами:** Только количество голосов в развитии продукта. Условия использования одинаковые.
|
||||
|
||||
**📋 Полные условия приобретения и обслуживания:**
|
||||
https://github.com/VC-HB3-Accelerator/DLE/blob/main/docs/service-terms.md
|
||||
|
||||
Изучите детальные условия лицензии, обновлений, поддержки, голосования за развитие продукта и условий возврата средств.
|
||||
|
||||
---
|
||||
|
||||
## 🔗 ИЗУЧИТЕ ПОДРОБНЕЕ
|
||||
|
||||
**Репозиторий приложения DLE:**
|
||||
https://github.com/VC-HB3-Accelerator/DLE
|
||||
|
||||
Исходный код открыт — изучите функциональность, техническую реализацию, документацию по установке и использованию.
|
||||
|
||||
**Условия приобретения и обслуживания:**
|
||||
https://github.com/VC-HB3-Accelerator/DLE/blob/main/docs/service-terms.md
|
||||
|
||||
Полные условия лицензии, обновлений, поддержки, голосования за развитие продукта, условий возврата средств и ограничений ответственности.
|
||||
|
||||
**Информация о фонде VC HB3 Accelerator:**
|
||||
https://github.com/VC-HB3-Accelerator
|
||||
|
||||
Перспективы развития экосистемы, бизнес-модель, планы на 5 лет, инвестиционные возможности. Подробнее о работе с регуляторами — см. раздел "ПЕРСПЕКТИВЫ И ЭКОСИСТЕМА" ниже.
|
||||
|
||||
**Демо-версия в действии:**
|
||||
эрайти.рф — проверенное решение, которое мы используем для управления собственным бизнесом.
|
||||
|
||||
---
|
||||
|
||||
## ⚖️ ЛЕГАЛЬНОСТЬ ИСПОЛЬЗОВАНИЯ
|
||||
|
||||
**Важное уточнение о регуляторных ограничениях:**
|
||||
|
||||
Регуляторы **запрещают:**
|
||||
- ТОРГОВЫЕ операции с токенизированными активами (продажа/покупка как ценных бумаг)
|
||||
- Продажу товаров/услуг за криптовалюту
|
||||
|
||||
Но **НЕ запрещают** использовать токенизацию для **ВНУТРЕННЕГО учета**:
|
||||
|
||||
✅ Учет продукции на складе
|
||||
✅ Логистика и отслеживание перемещений
|
||||
✅ Безопасность и контроль доступа
|
||||
✅ Внутреннее управление активами
|
||||
|
||||
**Основной функционал (CRM, ИИ, управление) полностью легален** независимо от токенизации.
|
||||
|
||||
*Подробнее о том, как снимаются регуляторные ограничения через L2 решения, см. раздел "ПЕРСПЕКТИВЫ И ЭКОСИСТЕМА" ниже.*
|
||||
|
||||
Рекомендуем проконсультироваться с юристом о торговых операциях с токенами и криптоплатежах в вашей стране.
|
||||
|
||||
---
|
||||
|
||||
## 🚀 ПЕРСПЕКТИВЫ И ЭКОСИСТЕМА
|
||||
|
||||
**VC HB3 Accelerator** — венчурный фонд, создающий глобальную экосистему токенизации активов.
|
||||
|
||||
**Как мы снимаем регуляторные ограничения:**
|
||||
|
||||
Фонд предлагает регуляторам внедрить готовое L2 решение за счет собственных инвестиций с участием регулятора. Это позволяет:
|
||||
- Создать регулируемую инфраструктуру для токенизации активов
|
||||
- Снять ограничения на торговые операции с токенами в рамках регулируемой экосистемы
|
||||
- Разрешить продажу товаров/услуг за криптовалюту через регулируемую L2 цепочку
|
||||
- Обеспечить полный контроль регулятора над инфраструктурой
|
||||
|
||||
**Планы развития:**
|
||||
- 21,000+ предпринимателей в первом акселераторе
|
||||
- 600 портфельных компаний за 5 лет
|
||||
- 100+ представительств в разных странах
|
||||
- Сотрудничество с регуляторами для внедрения L2 решений
|
||||
- Инвестиции в участников акселератора
|
||||
|
||||
**Но важно:** Софт можно использовать **независимо от статуса фонда и работы с регуляторами**. Даже если фонд не зарегистрируется или не договорится с регуляторами, софт остается у вас — это гарантировано. Внутренний учет через токенизацию работает легально в любом случае.
|
||||
|
||||
Подробнее о перспективах и работе с регуляторами: https://github.com/VC-HB3-Accelerator
|
||||
|
||||
---
|
||||
|
||||
## 📋 КАК НАЧАТЬ
|
||||
|
||||
1. **Изучите репозиторий:** https://github.com/VC-HB3-Accelerator/DLE
|
||||
2. **Изучите условия приобретения:** https://github.com/VC-HB3-Accelerator/DLE/blob/main/docs/service-terms.md
|
||||
3. **Посмотрите приложение в действии:** эрайти.рф — проверенное решение, которое мы используем для управления собственным бизнесом
|
||||
4. **Запросите демонстрацию** — можем организовать онлайн-презентацию
|
||||
5. **Выберите тариф:** Standard ($1,000) или Premium ($10,000)
|
||||
6. **Приобретите лицензию** через официального продавца
|
||||
7. **Получите приложение и бесплатную настройку** подрядчиками в течение 5 лет
|
||||
|
||||
---
|
||||
|
||||
## 📞 КОНТАКТЫ
|
||||
|
||||
**Для клиентов из РФ:**
|
||||
ООО "ЭРАЙТИ" — официальный продавец
|
||||
Наше приложение: эрайти.рф
|
||||
Email: 18900@эрайти.рф
|
||||
Телефон: +7 (968) 269-92-64
|
||||
|
||||
**VC HB3 Accelerator:**
|
||||
Веб3-приложение: https://hb3-accelerator.com
|
||||
Email: info@hb3-accelerator.com
|
||||
|
||||
---
|
||||
|
||||
## ✅ ГАРАНТИИ
|
||||
|
||||
- Софт остается у вас даже если фонд не зарегистрируется
|
||||
- Возврат 70% в течение 5 лет при соблюдении условий программы (детали: [service-terms.md](https://github.com/VC-HB3-Accelerator/DLE/blob/main/docs/service-terms.md))
|
||||
- Полный контроль над данными (on-premises развертывание)
|
||||
- Открытый исходный код для проверки
|
||||
- Бессрочная лицензия (Perpetual) с правами, определяемыми количеством токенов
|
||||
- Бесплатные обновления и базовое обслуживание 5 лет с даты приобретения
|
||||
|
||||
---
|
||||
|
||||
Готовы ответить на вопросы и организовать демонстрацию.
|
||||
|
||||
С уважением,
|
||||
[Ваше имя]
|
||||
[Должность]
|
||||
[Компания]
|
||||
|
||||
---
|
||||
|
||||
**P.S.** Изучите репозиторий приложения и условия приобретения перед принятием решения. Посмотрите демо на эрайти.рф — это проверенное решение, которое вы получите после покупки.
|
||||
|
||||
---
|
||||
|
||||
**ℹ️ Информация о персональных данных:**
|
||||
|
||||
Ознакомиться с **политикой конфиденциальности**, **согласием на обработку персональных данных** и **согласием на использование файлов cookie** вы можете на странице: https://эрайти.рф/content/published
|
||||
|
||||
Оператор персональных данных: ООО "ЭРАЙТИ" (официальный продавец для клиентов из РФ)
|
||||
@@ -1,416 +0,0 @@
|
||||
# 🏗️ Архитектура множественных ИИ-агентов в DLE
|
||||
|
||||
> **Концепция**: Создание отдельных специализированных агентов для разных задач, использующих одну локальную модель Ollama, но с разными системными промптами, правилами и интерфейсами.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Содержание
|
||||
|
||||
1. [Концепция архитектуры](#концепция-архитектуры)
|
||||
2. [Типы агентов](#типы-агентов)
|
||||
3. [Архитектура системы](#архитектура-системы)
|
||||
4. [Настройка агентов](#настройка-агентов)
|
||||
5. [Интерфейсы агентов](#интерфейсы-агентов)
|
||||
6. [База знаний для агентов](#база-знаний-для-агентов)
|
||||
7. [Процесс работы агентов](#процесс-работы-агентов)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Концепция архитектуры
|
||||
|
||||
### Основные принципы
|
||||
|
||||
1. **Одна модель, множество агентов**
|
||||
- Все агенты используют одну локальную модель Ollama (qwen2.5:7b)
|
||||
- Различие между агентами — в системных промптах и правилах
|
||||
- Каждый агент имеет свою специализацию и роль
|
||||
|
||||
2. **Изоляция агентов**
|
||||
- Каждый агент имеет свои настройки (системный промпт, правила, RAG таблицы)
|
||||
- Агенты не влияют друг на друга
|
||||
- Можно создавать, редактировать и удалять агентов независимо
|
||||
|
||||
3. **Специализация по задачам**
|
||||
- Агент поддержки — отвечает на вопросы пользователей
|
||||
- Агент-редактор — создает контент по запросу
|
||||
- Возможность создания дополнительных агентов (аналитик, переводчик и т.д.)
|
||||
|
||||
4. **Отдельные интерфейсы**
|
||||
- Каждый агент имеет свой интерфейс доступа
|
||||
- Интерфейсы адаптированы под задачи агента
|
||||
- Разные права доступа для разных агентов
|
||||
|
||||
---
|
||||
|
||||
## 🤖 Типы агентов
|
||||
|
||||
### 1. Агент поддержки (Support Agent)
|
||||
|
||||
**Роль**: Отвечать на сообщения пользователей
|
||||
|
||||
**Задачи**:
|
||||
- Обработка входящих сообщений от пользователей
|
||||
- Поиск ответов в базе знаний (FAQ, документация)
|
||||
- Генерация ответов на основе найденной информации
|
||||
- Эскалация сложных вопросов к операторам
|
||||
|
||||
**Характеристики**:
|
||||
- Использует RAG для поиска в FAQ и документах
|
||||
- Системный промпт: "Вы — профессиональный ассистент службы поддержки"
|
||||
- Правила: строгий режим (только из базы знаний, минимум генерации)
|
||||
- Интерфейс: встроен в чат (web, telegram, email)
|
||||
|
||||
**База знаний**:
|
||||
- FAQ таблицы
|
||||
- Документация продукта
|
||||
- База знаний для клиентов
|
||||
|
||||
---
|
||||
|
||||
### 2. Агент-редактор (Content Editor Agent)
|
||||
|
||||
**Роль**: Создавать контент по запросу пользователя
|
||||
|
||||
**Задачи**:
|
||||
- Создание постов для социальных сетей
|
||||
- Написание статей для блога
|
||||
- Генерация email-рассылок
|
||||
- Создание рекламных текстов
|
||||
|
||||
**Характеристики**:
|
||||
- Использует RAG для поиска инструкций платформ и стиля компании
|
||||
- Системный промпт: "Вы — профессиональный контент-маркетолог и редактор"
|
||||
- Правила: креативный режим (больше генерации, использование примеров)
|
||||
- Интерфейс: отдельная страница "Редактор контента"
|
||||
|
||||
**База знаний**:
|
||||
- Инструкции платформ (ВК, Telegram, Instagram и т.д.)
|
||||
- Стиль компании (tone of voice, запрещенные слова)
|
||||
- Примеры контента (референсы)
|
||||
- Ключевые слова и хэштеги
|
||||
- CTA блоки
|
||||
|
||||
---
|
||||
|
||||
### 3. Потенциальные дополнительные агенты
|
||||
|
||||
**Агент-аналитик**:
|
||||
- Анализ данных и создание отчетов
|
||||
- Выявление трендов
|
||||
- Прогнозирование
|
||||
|
||||
**Агент-переводчик**:
|
||||
- Перевод контента на разные языки
|
||||
- Локализация материалов
|
||||
- Адаптация под культурные особенности
|
||||
|
||||
**Агент-закупщик**:
|
||||
- Поиск поставщиков
|
||||
- Анализ условий
|
||||
- Рекомендации по выбору
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ Архитектура системы
|
||||
|
||||
### Компоненты системы
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Единая модель Ollama │
|
||||
│ (qwen2.5:7b) │
|
||||
└────────────────┬────────────────────────────────────────┘
|
||||
│
|
||||
├─────────────────┬───────────────────────┐
|
||||
│ │ │
|
||||
↓ ↓ ↓
|
||||
┌────────────────────┐ ┌──────────────────┐ ┌──────────────┐
|
||||
│ Агент поддержки │ │ Агент-редактор │ │ Другие агенты│
|
||||
│ │ │ │ │ │
|
||||
│ • Системный промпт │ │ • Системный │ │ • Свои │
|
||||
│ • Правила (строгие)│ │ промпт │ │ настройки │
|
||||
│ • RAG: FAQ │ │ • Правила │ │ │
|
||||
│ • Интерфейс: чат │ │ (креативные) │ │ │
|
||||
│ │ │ • RAG: инструкции │ │ │
|
||||
│ │ │ • Интерфейс: │ │ │
|
||||
│ │ │ редактор │ │ │
|
||||
└────────────────────┘ └──────────────────┘ └──────────────┘
|
||||
```
|
||||
|
||||
### Хранение настроек агентов
|
||||
|
||||
**Таблица `ai_agents`**:
|
||||
- `id` — уникальный идентификатор агента
|
||||
- `name` — название агента (например, "Агент поддержки", "Агент-редактор")
|
||||
- `role` — роль агента (support, content_editor, analyst и т.д.)
|
||||
- `description` — описание назначения агента
|
||||
- `system_prompt_encrypted` — системный промпт (зашифрован)
|
||||
- `rules_id` — ссылка на правила агента (из таблицы `ai_assistant_rules`)
|
||||
- `selected_rag_tables` — массив ID таблиц для RAG поиска
|
||||
- `enabled_channels` — на каких каналах активен (web, telegram, email)
|
||||
- `interface_route` — маршрут для интерфейса агента
|
||||
- `permissions_required` — требуемые права доступа
|
||||
- `is_active` — активен ли агент
|
||||
- `created_at`, `updated_at` — даты создания и обновления
|
||||
|
||||
**Связь с правилами**:
|
||||
- Каждый агент может использовать набор правил из `ai_assistant_rules`
|
||||
- Правила определяют поведение: temperature, maxTokens, searchRagFirst и т.д.
|
||||
- Можно создавать правила специально для каждого агента
|
||||
|
||||
**Связь с RAG таблицами**:
|
||||
- Каждый агент может использовать свои RAG таблицы
|
||||
- Агент поддержки: FAQ, документация
|
||||
- Агент-редактор: инструкции платформ, стиль компании, примеры
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Настройка агентов
|
||||
|
||||
### Создание нового агента
|
||||
|
||||
**Шаг 1: Базовая информация**
|
||||
- Название агента
|
||||
- Роль (support, content_editor и т.д.)
|
||||
- Описание назначения
|
||||
|
||||
**Шаг 2: Системный промпт**
|
||||
- Определяет роль и поведение агента
|
||||
- Указывает, как агент должен работать
|
||||
- Содержит контекст о компании и стиле
|
||||
|
||||
**Шаг 3: Правила (Rules)**
|
||||
- Создание или выбор существующих правил
|
||||
- Настройка параметров генерации (temperature, maxTokens)
|
||||
- Настройка поведения RAG (searchRagFirst, generateIfNoRag)
|
||||
|
||||
**Шаг 4: База знаний (RAG таблицы)**
|
||||
- Выбор таблиц для поиска информации
|
||||
- Агент поддержки: FAQ, документация
|
||||
- Агент-редактор: инструкции, стиль, примеры
|
||||
|
||||
**Шаг 5: Интерфейс**
|
||||
- Определение маршрута для доступа к агенту
|
||||
- Настройка прав доступа
|
||||
- Выбор каналов (web, telegram, email)
|
||||
|
||||
**Шаг 6: Активация**
|
||||
- Включение/выключение агента
|
||||
- Тестирование работы агента
|
||||
|
||||
### Примеры настроек
|
||||
|
||||
**Агент поддержки**:
|
||||
- Системный промпт: "Вы — профессиональный ассистент службы поддержки..."
|
||||
- Правила: строгий режим (temperature: 0.3, searchRagFirst: true, generateIfNoRag: false)
|
||||
- RAG таблицы: FAQ, Документация продукта
|
||||
- Интерфейс: встроен в чат
|
||||
- Каналы: web, telegram, email
|
||||
|
||||
**Агент-редактор**:
|
||||
- Системный промпт: "Вы — профессиональный контент-маркетолог и редактор..."
|
||||
- Правила: креативный режим (temperature: 0.7, searchRagFirst: true, generateIfNoRag: true)
|
||||
- RAG таблицы: Инструкции платформ, Стиль компании, Примеры контента
|
||||
- Интерфейс: отдельная страница /content-editor
|
||||
- Каналы: только web (для редакторов)
|
||||
|
||||
---
|
||||
|
||||
## 🖥️ Интерфейсы агентов
|
||||
|
||||
### Агент поддержки — интерфейс чата
|
||||
|
||||
**Расположение**: Встроен в основной чат (HomeView)
|
||||
|
||||
**Особенности**:
|
||||
- Автоматическая активация при получении сообщения от пользователя
|
||||
- Показ статуса генерации ответа
|
||||
- Возможность отключения AI для конкретного сообщения
|
||||
- История диалога с контекстом
|
||||
|
||||
**Права доступа**:
|
||||
- Доступен всем пользователям
|
||||
- Автоматически отвечает на сообщения
|
||||
|
||||
---
|
||||
|
||||
### Агент-редактор — интерфейс редактора
|
||||
|
||||
**Расположение**: Отдельная страница `/content-editor`
|
||||
|
||||
**Особенности**:
|
||||
- Поле для ввода запроса на создание контента
|
||||
- Выбор типа контента (пост ВК, статья блога, email и т.д.)
|
||||
- Выбор платформы (ВКонтакте, Telegram, Instagram и т.д.)
|
||||
- Показ процесса генерации
|
||||
- Редактирование сгенерированного контента
|
||||
- Сохранение готового контента
|
||||
- История созданного контента
|
||||
|
||||
**Права доступа**:
|
||||
- Только для пользователей с ролью Editor
|
||||
- Требуется авторизация
|
||||
|
||||
**Функционал интерфейса**:
|
||||
1. **Форма запроса**:
|
||||
- Текстовое поле для описания задачи
|
||||
- Выбор типа контента (выпадающий список)
|
||||
- Выбор платформы (чекбоксы или выпадающий список)
|
||||
- Дополнительные параметры (тон, длина, ключевые слова)
|
||||
|
||||
2. **Процесс генерации**:
|
||||
- Индикатор загрузки
|
||||
- Показ найденных инструкций
|
||||
- Показ процесса генерации
|
||||
|
||||
3. **Результат**:
|
||||
- Готовый контент в редактируемом поле
|
||||
- Кнопка "Сохранить"
|
||||
- Кнопка "Перегенерировать"
|
||||
- Кнопка "Экспортировать" (копировать, скачать)
|
||||
|
||||
4. **История**:
|
||||
- Список созданного контента
|
||||
- Фильтры по типу, платформе, дате
|
||||
- Возможность редактирования и удаления
|
||||
|
||||
---
|
||||
|
||||
## 📚 База знаний для агентов
|
||||
|
||||
### Структура базы знаний
|
||||
|
||||
**Для агента поддержки**:
|
||||
- Таблица "FAQ" — часто задаваемые вопросы
|
||||
- Таблица "Документация" — описание функций продукта
|
||||
- Таблица "База знаний для клиентов" — расширенная информация
|
||||
|
||||
**Для агента-редактора**:
|
||||
- Таблица "Инструкции платформ" — правила размещения контента
|
||||
- Таблица "Стиль компании" — tone of voice, запрещенные слова
|
||||
- Таблица "Примеры контента" — референсы для разных типов контента
|
||||
- Таблица "Ключевые слова" — семантическое ядро, хэштеги
|
||||
- Таблица "CTA блоки" — призывы к действию
|
||||
|
||||
### Как агенты используют базу знаний
|
||||
|
||||
1. **RAG поиск**:
|
||||
- Пользователь задает вопрос/запрос
|
||||
- Агент выполняет векторный поиск в своих RAG таблицах
|
||||
- Находит релевантную информацию
|
||||
|
||||
2. **Контекст для генерации**:
|
||||
- Найденная информация передается в LLM как контекст
|
||||
- LLM генерирует ответ/контент на основе контекста
|
||||
- Системный промпт направляет, как использовать контекст
|
||||
|
||||
3. **Фильтрация по роли**:
|
||||
- Агент поддержки ищет только в FAQ и документации
|
||||
- Агент-редактор ищет только в инструкциях и примерах
|
||||
- Изоляция данных между агентами
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Процесс работы агентов
|
||||
|
||||
### Агент поддержки — процесс ответа
|
||||
|
||||
1. **Получение сообщения**:
|
||||
- Пользователь отправляет сообщение в чат
|
||||
- Система определяет, что нужно использовать агента поддержки
|
||||
|
||||
2. **RAG поиск**:
|
||||
- Агент ищет ответ в своих RAG таблицах (FAQ, документация)
|
||||
- Использует векторный поиск для семантического поиска
|
||||
|
||||
3. **Генерация ответа**:
|
||||
- Если найден ответ в базе знаний → использует его
|
||||
- Если не найден → в строгом режиме предлагает связаться с оператором
|
||||
- Генерирует ответ с учетом системного промпта и правил
|
||||
|
||||
4. **Отправка ответа**:
|
||||
- Ответ отправляется пользователю в чат
|
||||
- Сохраняется в истории диалога
|
||||
|
||||
---
|
||||
|
||||
### Агент-редактор — процесс создания контента
|
||||
|
||||
1. **Получение запроса**:
|
||||
- Редактор открывает интерфейс `/content-editor`
|
||||
- Вводит запрос: "Создай пост для ВКонтакте о новой функции"
|
||||
- Выбирает тип контента и платформу
|
||||
|
||||
2. **RAG поиск инструкций**:
|
||||
- Агент ищет инструкции для выбранной платформы
|
||||
- Ищет стиль компании
|
||||
- Ищет примеры похожего контента
|
||||
- Ищет релевантные ключевые слова
|
||||
|
||||
3. **Генерация контента**:
|
||||
- Агент генерирует контент на основе:
|
||||
- Системного промпта (роль редактора)
|
||||
- Найденных инструкций платформы
|
||||
- Стиля компании
|
||||
- Примеров контента
|
||||
- Ключевых слов
|
||||
|
||||
4. **Результат**:
|
||||
- Готовый контент показывается в интерфейсе
|
||||
- Редактор может редактировать контент
|
||||
- Сохранить или экспортировать
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Преимущества архитектуры
|
||||
|
||||
### 1. Специализация
|
||||
- Каждый агент решает свою задачу оптимально
|
||||
- Не нужно жертвовать качеством для универсальности
|
||||
|
||||
### 2. Гибкость
|
||||
- Легко создавать новых агентов для новых задач
|
||||
- Можно настраивать каждого агента независимо
|
||||
|
||||
### 3. Изоляция
|
||||
- Агенты не мешают друг другу
|
||||
- Можно тестировать и обновлять агентов независимо
|
||||
|
||||
### 4. Масштабируемость
|
||||
- Легко добавлять новых агентов
|
||||
- Каждый агент использует одну модель, нет перегрузки
|
||||
|
||||
### 5. Контроль
|
||||
- Четкое разделение ответственности
|
||||
- Легко отслеживать, какой агент что делает
|
||||
|
||||
---
|
||||
|
||||
## 📊 Сравнение с единым агентом
|
||||
|
||||
| Характеристика | Единый агент | Множественные агенты |
|
||||
|----------------|--------------|----------------------|
|
||||
| **Специализация** | Универсальный, но менее точный | Специализированный, более точный |
|
||||
| **Настройка** | Один набор настроек для всех задач | Отдельные настройки для каждой задачи |
|
||||
| **База знаний** | Все таблицы для всех задач | Изолированные таблицы для каждой задачи |
|
||||
| **Интерфейс** | Один интерфейс | Отдельные интерфейсы для каждой задачи |
|
||||
| **Гибкость** | Сложно адаптировать под разные задачи | Легко создавать новых агентов |
|
||||
| **Производительность** | Одна модель для всех | Одна модель, но разные промпты |
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Следующие шаги
|
||||
|
||||
1. **Создание таблицы `ai_agents`** в базе данных
|
||||
2. **Создание сервиса для управления агентами**
|
||||
3. **Модификация AI Assistant для работы с несколькими агентами**
|
||||
4. **Создание интерфейса для агента-редактора**
|
||||
5. **Настройка агента поддержки (уже существует, нужно адаптировать)**
|
||||
6. **Создание базы знаний для агента-редактора**
|
||||
7. **Тестирование работы обоих агентов**
|
||||
|
||||
---
|
||||
|
||||
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**
|
||||
|
||||
**Последнее обновление**: Январь 2026
|
||||
@@ -1297,8 +1297,8 @@ function signMessage(message) {
|
||||
|
||||
### Следующие шаги
|
||||
|
||||
1. 📖 [Изучите техническую документацию](./blockchain-integration-technical.md)
|
||||
2. 🔧 [Настройте безопасное окружение](./setup-instruction.md)
|
||||
1. 📖 [Изучите техническую документацию](./back-docs/blockchain-integration-technical.md)
|
||||
2. 🔧 [Настройте безопасное окружение](./back-docs/setup-instruction.md)
|
||||
3. 📋 [Прочитайте FAQ](./FAQ.md)
|
||||
4. 💬 [Получите поддержку](https://hb3-accelerator.com/)
|
||||
---
|
||||
|
||||
@@ -1,33 +1,346 @@
|
||||
<!--
|
||||
Copyright (c) 2024-2025 Тарабанов Александр Викторович
|
||||
All rights reserved.
|
||||
|
||||
This software is proprietary and confidential.
|
||||
Unauthorized copying, modification, or distribution is prohibited.
|
||||
|
||||
For licensing inquiries: info@hb3-accelerator.com
|
||||
Website: https://hb3-accelerator.com
|
||||
GitHub: https://github.com/VC-HB3-Accelerator
|
||||
-->
|
||||
# Условия приобретения и обслуживания Digital Legal Entity
|
||||
|
||||
# Условия приобретения и обслуживания Digital Legal Entity — краткое резюме
|
||||
## Содержание
|
||||
|
||||
> Важно: это краткое резюме условий. Канонический и юридически значимый полный текст находится здесь: [legal/service-terms.md](../legal/service-terms.md).
|
||||
1. [Лицензионная модель](#1-лицензионная-модель)
|
||||
2. [Тарифы](#2-тарифы)
|
||||
3. [Система голосования](#3-система-голосования)
|
||||
4. [Обновления и обслуживание](#4-обновления-и-обслуживание)
|
||||
5. [Техническая поддержка и обучение](#5-техническая-поддержка-и-обучение)
|
||||
6. [Возврат средств и гарантии](#6-возврат-средств-и-гарантии)
|
||||
7. [Ответственность сторон](#7-ответственность-сторон)
|
||||
8. [Условия использования](#8-условия-использования)
|
||||
9. [Безопасность и конфиденциальность](#9-безопасность-и-конфиденциальность)
|
||||
10. [Смарт-контракт управления](#10-смарт-контракт-управления)
|
||||
11. [Оплата и продавцы](#11-оплата-и-продавцы)
|
||||
12. [Политика изменения условий](#12-политика-изменения-условий)
|
||||
13. [Контакты](#13-контакты)
|
||||
|
||||
Ключевые тезисы:
|
||||
- Тип лицензии: бессрочная (Perpetual), права определяются количеством лицензионных единиц (токенов) (1 или 10). Токен — цифровой идентификатор права (лицензии), передача которого фиксируется в распределённом реестре (блокчейне).
|
||||
- Обновления и базовое обслуживание: бесплатно 5 лет с даты передачи токена, зафиксированной в распределённом реестре (блокчейне).
|
||||
- Бесплатная настройка подрядчиками: в течение 5 лет после покупки лицензии (персонализация, интеграция, настройка ИИ, доработка функционала).
|
||||
- Голосование за развитие: 1 токен = 1 голос, решения большинством ≥51%.
|
||||
- Возврат 70% возможен при соблюдении условий программы (см. оригинал).
|
||||
- Поддержка, релизы, база знаний — через приложение `https://hb3-accelerator.com/`.
|
||||
- Полный перечень ограничений/ответственности — в оригинале.
|
||||
**Юридические документы**: [legal/README.md](../legal/README.md) — лицензия, авторские права, требования к атрибуции.
|
||||
|
||||
## 📚 Дополнительная документация
|
||||
---
|
||||
|
||||
- Общий список материалов: [docs/README.md](./README.md)
|
||||
- Юридические документы: [legal/README.md](../legal/README.md)
|
||||
## 1. Лицензионная модель
|
||||
|
||||
## 📞 Контакты и поддержка
|
||||
### 1.1. Основные принципы
|
||||
|
||||
См. [README](../README.md) (контакты и каналы поддержки).
|
||||
| Параметр | Значение |
|
||||
|----------|----------|
|
||||
| Тип лицензии | Бессрочная (Perpetual License) |
|
||||
| Срок действия | Без ограничений |
|
||||
| Обновления | Бесплатно 5 лет для держателей токенов |
|
||||
| Отмена | Лицензия не может быть отменена компанией |
|
||||
|
||||
### 1.2. Лицензия и токены
|
||||
|
||||
Каждая лицензия DLE связана с **токеном управления на блокчейне**. Токен подтверждает право на использование платформы и даёт голос в развитии продукта.
|
||||
|
||||
| Параметр | 1 токен | 10 токенов |
|
||||
|----------|---------|------------|
|
||||
| Количество лицензий | 1 | 1 |
|
||||
| Виды деятельности | 1 | 1 |
|
||||
| Голоса в голосовании | 1 | 10 |
|
||||
| Условия обслуживания | Одинаковые | Одинаковые |
|
||||
|
||||
**Голосование**: 1 токен = 1 голос. Решения принимаются большинством (51%+) через смарт-контракт на блокчейне.
|
||||
|
||||
### 1.3. Вид деятельности
|
||||
|
||||
- Одна лицензия — один вид деятельности/бизнеса
|
||||
- Для нескольких видов деятельности нужны отдельные лицензии
|
||||
|
||||
---
|
||||
|
||||
## 2. Тарифы
|
||||
|
||||
### 2.1. Лицензии
|
||||
|
||||
| Пакет | Цена | Токены | Голоса |
|
||||
|-------|------|--------|--------|
|
||||
| Standard | $1,000 USDT (единоразово) | 1 | 1 |
|
||||
| Premium | $10,000 USDT (единоразово) | 10 | 10 |
|
||||
|
||||
Все цены указаны **без учёта налогов**. Налоги — ответственность покупателя (НДС, Sales Tax, Income Tax и др. в зависимости от юрисдикции).
|
||||
|
||||
### 2.2. Что включено в обе лицензии
|
||||
|
||||
- Бессрочное право использования платформы
|
||||
- Полный исходный код с документацией
|
||||
- Бесплатные обновления 5 лет (для держателей токенов)
|
||||
- Техническая поддержка (SLA по приоритету проблемы)
|
||||
- Токены управления на блокчейне
|
||||
- Право голоса за развитие продукта
|
||||
- Доступ к онлайн-сессиям обучения
|
||||
- Готовый пакет документов для регулятора
|
||||
|
||||
Единственная разница между пакетами — количество токенов и, соответственно, голосов.
|
||||
|
||||
### 2.3. Методы оплаты
|
||||
|
||||
- **Криптовалюта (USDT)** — напрямую или через авторизованных партнёров
|
||||
- **Банковский перевод** — в местной валюте через авторизованных дилеров
|
||||
- **Кредитные карты** — через платёжные системы партнёров
|
||||
|
||||
Все комиссии за переводы, конвертацию и обработку платежей несёт покупатель.
|
||||
|
||||
### 2.4. Процесс покупки
|
||||
|
||||
1. Выбор продавца (авторизованный дилер или напрямую у автора)
|
||||
2. Согласование цены в USDT или эквиваленте местной валюты
|
||||
3. Получение реквизитов
|
||||
4. Отправка платежа
|
||||
5. Подтверждение и документ об оплате
|
||||
6. Получение токена и доступа к платформе
|
||||
|
||||
---
|
||||
|
||||
## 3. Система голосования
|
||||
|
||||
### 3.1. Процесс
|
||||
|
||||
1. **Предложение** — сообщество предлагает новую функцию
|
||||
2. **Регистрация** — голосование создаётся в смарт-контракте на блокчейне
|
||||
3. **Голосование** — каждый токен = 1 голос, «За» или «Против»
|
||||
4. **Решение** — при 51%+ голосов «За» функция берётся в разработку
|
||||
|
||||
### 3.2. Периодичность
|
||||
|
||||
- Голосование открыто постоянно (асинхронное)
|
||||
- Ежеквартальный анализ результатов
|
||||
- Разработка по приоритету (количество голосов)
|
||||
|
||||
### 3.3. Портал голосования
|
||||
|
||||
**Адрес**: https://hb3-accelerator.com/
|
||||
|
||||
Доступно: создание предложений, голосование, просмотр результатов, отслеживание статуса разработки, история голосований.
|
||||
|
||||
**Требования**: кошелёк с токенами (MetaMask, WalletConnect и т.д.).
|
||||
|
||||
---
|
||||
|
||||
## 4. Обновления и обслуживание
|
||||
|
||||
### 4.1. Бесплатные обновления (5 лет)
|
||||
|
||||
Для всех держателей лицензионных токенов с даты передачи токена, зафиксированной в блокчейне:
|
||||
|
||||
- Исправления ошибок
|
||||
- Улучшения производительности
|
||||
- Новые функции (одобренные голосованием)
|
||||
- Обновления безопасности
|
||||
|
||||
**Частота:**
|
||||
|
||||
| Тип | Периодичность |
|
||||
|-----|---------------|
|
||||
| Security Patches | Немедленно при обнаружении |
|
||||
| Regular Updates | Еженедельно (по средам) |
|
||||
| Major Features | По результатам голосования |
|
||||
|
||||
### 4.2. Платформа обновлений
|
||||
|
||||
**Адрес**: https://hb3-accelerator.com/
|
||||
|
||||
Держатели лицензий могут: скачивать все версии, читать Release Notes, получать уведомления о новых версиях, изучать документацию по миграции.
|
||||
|
||||
**Требования для доступа**: лицензионный токен на кошельке в момент запроса.
|
||||
|
||||
---
|
||||
|
||||
## 5. Техническая поддержка и обучение
|
||||
|
||||
Все держатели лицензий получают доступ к поддержке и обучению через портал: https://hb3-accelerator.com/
|
||||
|
||||
Подробные условия поддержки, обучение, онлайн-сессии и настройка платформы — в рамках [программы акселерации](https://github.com/VC-HB3-Accelerator/.github/blob/main/Версия%20на%20русском/accelerator-program.md).
|
||||
|
||||
---
|
||||
|
||||
## 6. Возврат средств и гарантии
|
||||
|
||||
### 6.1. Общий принцип
|
||||
|
||||
Лицензия бессрочная — стандартный возврат не предусмотрен.
|
||||
|
||||
### 6.2. Программа возврата 70%
|
||||
|
||||
Возврат **70% от стоимости лицензии** возможен в течение **5 лет** с момента покупки при одновременном выполнении всех условий:
|
||||
|
||||
1. Свыше **51% отрицательных голосов** в голосовании токен-холдеров
|
||||
2. Жалобы касаются **отсутствия выпусков обновлений**
|
||||
3. Голосование проведено **через смарт-контракт на блокчейне**
|
||||
4. Запрос подан **в течение 5 лет** с даты лицензирования
|
||||
|
||||
**Процесс**: запрос на hb3-accelerator.com → подтверждение на смарт-контракте → возврат 70% в течение 30 дней.
|
||||
|
||||
### 6.3. Рекламация платежа
|
||||
|
||||
В течение 30 дней с момента платежа — при ошибке расчёта, двойной оплате или иных обоснованных причинах.
|
||||
|
||||
---
|
||||
|
||||
## 7. Ответственность сторон
|
||||
|
||||
### 7.1. Гарантии автора
|
||||
|
||||
- Лицензия бессрочная (право использования не ограничено сроком)
|
||||
- Обновления и базовое обслуживание бесплатно 5 лет
|
||||
- Базовая функциональность остаётся доступной
|
||||
- Право голоса за развитие продукта
|
||||
|
||||
### 7.2. Что не гарантируется
|
||||
|
||||
- Конкретные новые функции (зависит от голосования)
|
||||
- Определённый график выпусков
|
||||
- Поддержка при модификации исходного кода
|
||||
- Производительность при превышении рекомендованных лимитов
|
||||
|
||||
### 7.3. Ограничение ответственности автора
|
||||
|
||||
Автор не несёт ответственности за: упущенную прибыль, косвенные убытки, потерю данных, прерывание деятельности, репутационный ущерб, штрафы и санкции.
|
||||
|
||||
**Максимальная ответственность**: не более суммы оплаченной лицензии. Покрываются только прямые убытки при прямом нарушении контракта.
|
||||
|
||||
### 7.4. Ответственность пользователя
|
||||
|
||||
Пользователь отвечает за:
|
||||
- Резервное копирование данных
|
||||
- Использование в соответствии с условиями лицензии
|
||||
- Защиту приватных ключей кошелька
|
||||
- Соблюдение применимых законов
|
||||
- Своевременное обновление приложения
|
||||
|
||||
---
|
||||
|
||||
## 8. Условия использования
|
||||
|
||||
### Разрешено
|
||||
|
||||
- Использование для управления собственным бизнесом
|
||||
- Развёртывание на собственной инфраструктуре
|
||||
- Резервное копирование данных
|
||||
- Локальная модификация конфигурации
|
||||
- Голосование за развитие продукта
|
||||
- Передача лицензии наследникам
|
||||
|
||||
### Запрещено
|
||||
|
||||
- Перепродажа или сублицензирование
|
||||
- Использование более одного вида деятельности одной лицензией
|
||||
- Reverse engineering и модификация исходного кода
|
||||
- Удаление авторских прав и лицензионных уведомлений
|
||||
- Совместное использование между независимыми организациями
|
||||
- Использование в образовательных целях без разрешения
|
||||
- Развёртывание SaaS на основе платформы
|
||||
|
||||
---
|
||||
|
||||
## 9. Безопасность и конфиденциальность
|
||||
|
||||
| Механизм | Описание |
|
||||
|----------|----------|
|
||||
| TLS 1.3 | Шифрование всех соединений |
|
||||
| AES-256 | Шифрование критичных данных в хранилище |
|
||||
| Управление ключами | Пользователь контролирует ключи шифрования |
|
||||
| GDPR | Соответствие (с DPA) |
|
||||
|
||||
Подробнее: [Безопасность DLE](./security.md)
|
||||
|
||||
---
|
||||
|
||||
## 10. Смарт-контракт управления
|
||||
|
||||
### 10.1. Архитектура
|
||||
|
||||
DLE использует смарт-контракт на блокчейне для управления лицензиями и голосованием:
|
||||
|
||||
- **ERC20** — каждая лицензия представлена токенами управления (1 или 10)
|
||||
- **ERC20Votes** — встроенная система голосования
|
||||
- **ERC20Permit** — подписи для переводов без gas-комиссий
|
||||
- **Мультичейн** — поддержка голосования в нескольких сетях одновременно
|
||||
|
||||
### 10.2. Голосование через смарт-контракт
|
||||
|
||||
**Создание предложения**: только держатели токенов. Длительность голосования: от 1 часа до 30 дней.
|
||||
|
||||
**Процесс**: предложение → голосование (1 токен = 1 голос) → кворум 51%+ → исполнение.
|
||||
|
||||
**Исполнение**: через прямой вызов в цепочке голосования или через подписи в других сетях.
|
||||
|
||||
### 10.3. Безопасность контракта
|
||||
|
||||
- Защита от реентерабельности (ReentrancyGuard)
|
||||
- Токены передаются только через governance
|
||||
- Снапшоты голосов для защиты от flash-loans
|
||||
- Подписи EIP-712 для контрактных кошельков
|
||||
- Валидация всех параметров перед исполнением
|
||||
|
||||
### 10.4. Передача лицензии
|
||||
|
||||
Лицензия = токены, привязанные к адресу кошелька. Передача — перевод токенов на новый адрес через governance. Новый владелец автоматически получает право голоса.
|
||||
|
||||
---
|
||||
|
||||
## 11. Оплата и продавцы
|
||||
|
||||
### 11.1. Авторизованные продавцы
|
||||
|
||||
Лицензии продаются **только через компании** с официальным письменным разрешением от автора.
|
||||
|
||||
**Требования к продавцу**: юридическое лицо, подписанный контракт, включение в список на hb3-accelerator.com, соблюдение условий лицензирования.
|
||||
|
||||
### 11.2. Продавец для Российской Федерации
|
||||
|
||||
**ООО "ЭРАЙТИ"**
|
||||
- ОГРН: 1222600014383
|
||||
- ИНН: 2636220809
|
||||
- Адрес: 355007, Ставропольский край, г. Ставрополь, ул. Бурмистрова, д. 65Б, помещ. 2
|
||||
- Контакты: 18900@эрайти.рф, +7 (968) 269-92-64
|
||||
|
||||
### 11.3. Прямая покупка у автора
|
||||
|
||||
- Email: info@hb3-accelerator.com
|
||||
- Сайт: https://hb3-accelerator.com
|
||||
- GitHub: https://github.com/VC-HB3-Accelerator
|
||||
|
||||
---
|
||||
|
||||
## 12. Политика изменения условий
|
||||
|
||||
### Для новых лицензий
|
||||
|
||||
- Условия могут изменяться для новых покупок
|
||||
- Уведомление за 60 дней до вступления в силу
|
||||
- Применение только к лицензиям, купленным после даты изменения
|
||||
|
||||
### Для существующих лицензий
|
||||
|
||||
- Условия вашей лицензии **не меняются** после покупки
|
||||
- Фиксированные права действуют бессрочно
|
||||
- Обратная совместимость поддерживается
|
||||
|
||||
---
|
||||
|
||||
## 13. Контакты
|
||||
|
||||
- **Портал поддержки**: https://hb3-accelerator.com/
|
||||
- **Email**: info@hb3-accelerator.com
|
||||
- **GitHub**: https://github.com/VC-HB3-Accelerator/DLE
|
||||
- **Юридический статус**: Проприетарное ПО (см. [LICENSE](../LICENSE))
|
||||
- **Юридическая документация**: [legal/README.md](../legal/README.md)
|
||||
|
||||
---
|
||||
|
||||
## Дополнительная документация
|
||||
|
||||
- [Описание платформы](./application-description.md)
|
||||
- [ИИ-агенты](./ai-assistant.md) — система создания специализированных агентов
|
||||
- [Блокчейн для бизнеса](./blockchain-for-business.md) — цифровая регистрация активов и решение бизнес-задач
|
||||
- [Безопасность DLE](./security.md) — многоуровневая защита
|
||||
- [FAQ](./FAQ.md) — частые вопросы
|
||||
|
||||
---
|
||||
|
||||
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**
|
||||
|
||||
**Последнее обновление**: Февраль 2026
|
||||
|
||||
@@ -1,929 +0,0 @@
|
||||
# Инструкция по настройке AI Ассистента с векторным поиском
|
||||
|
||||
## 🤖 Полное руководство по запуску интеллектуального помощника
|
||||
|
||||
Этот документ описывает пошаговый процесс настройки AI ассистента для решения бизнес-задач через электронные таблицы и векторный поиск.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Что вы настроите
|
||||
|
||||
После выполнения инструкции у вас будет:
|
||||
|
||||
✅ Работающий AI ассистент с локальной моделью (Ollama)
|
||||
✅ База знаний для ответов клиентам (FAQ)
|
||||
✅ Автоматизация работы с поставщиками
|
||||
✅ Система обучения персонала
|
||||
✅ Векторный поиск по вашим данным
|
||||
✅ Значительная экономия времени и ресурсов
|
||||
|
||||
> 💡 **Экономический эффект**: См. [AI Ассистент](./ai-assistant.md) - там подробно описаны все возможности и расчеты экономии.
|
||||
|
||||
---
|
||||
|
||||
## ⏱️ Время настройки
|
||||
|
||||
- **Быстрая настройка**: 20-30 минут (базовый FAQ)
|
||||
- **Полная настройка**: 1-2 часа (все возможности)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1: Установка и запуск Ollama
|
||||
|
||||
### 1.1 Проверка статуса Ollama
|
||||
|
||||
1. Перейдите в **Настройки** → вкладка **Интеграции**
|
||||
2. Найдите блок **"Ollama"** и нажмите **"Подробнее"**
|
||||
3. Проверьте статус подключения:
|
||||
- ✅ **"Ollama is running"** — все готово, переходите к шагу 1.3
|
||||
- ❌ **"Ollama API not responding"** — переходите к шагу 1.2
|
||||
|
||||
### 1.2 Запуск Ollama (если не запущен)
|
||||
|
||||
Если Ollama не запущен, выполните в терминале:
|
||||
|
||||
```bash
|
||||
# Для Docker (рекомендуется)
|
||||
docker-compose up -d ollama
|
||||
|
||||
# Или локально
|
||||
ollama serve
|
||||
```
|
||||
|
||||
Обновите страницу и проверьте статус снова.
|
||||
|
||||
### 1.3 Установка модели для AI
|
||||
|
||||
1. В разделе **Ollama** нажмите **"Установить модель"**
|
||||
2. Выберите модель:
|
||||
- **qwen2.5:7b** (рекомендуется) — для русского языка, 4.7 GB
|
||||
- **llama2:7b** — для английского, 3.8 GB
|
||||
- **mistral:7b** — универсальная, 4.1 GB
|
||||
3. Нажмите **"Установить"**
|
||||
4. Дождитесь завершения загрузки (5-10 минут в зависимости от скорости интернета)
|
||||
|
||||
> 💡 **Подсказка**: Модель скачивается один раз и хранится локально
|
||||
|
||||
### 1.4 Установка Embedding модели
|
||||
|
||||
1. В том же разделе найдите **"Установить Embedding модель"**
|
||||
2. Выберите модель:
|
||||
- **mxbai-embed-large:latest** (рекомендуется) — 670 MB
|
||||
- **nomic-embed-text:latest** — альтернатива, 274 MB
|
||||
3. Нажмите **"Установить"**
|
||||
|
||||
> ⚠️ **Важно**: Embedding модель нужна для векторного поиска (RAG)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2: Создание базы знаний (электронные таблицы)
|
||||
|
||||
### 2.1 Создание таблицы FAQ
|
||||
|
||||
1. Перейдите в **Таблицы** (в главном меню)
|
||||
2. Нажмите **"+ Создать таблицу"**
|
||||
3. Заполните:
|
||||
- **Название**: `FAQ - Часто задаваемые вопросы`
|
||||
- **Описание**: `База знаний для AI ассистента по работе с клиентами`
|
||||
4. Нажмите **"Создать"**
|
||||
|
||||
### 2.2 Настройка столбцов таблицы
|
||||
|
||||
Добавьте следующие столбцы:
|
||||
|
||||
#### Столбец 1: Вопрос (обязательный для RAG)
|
||||
|
||||
1. Нажмите **"+ Добавить столбец"**
|
||||
2. Заполните:
|
||||
- **Название**: `Вопрос`
|
||||
- **Тип**: `Текст`
|
||||
- **Назначение**: Выберите `Вопрос для AI` ⭐
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
> ⚠️ **Критично**: Обязательно выберите назначение "Вопрос для AI" — это поле будет индексироваться для векторного поиска
|
||||
|
||||
#### Столбец 2: Ответ (обязательный для RAG)
|
||||
|
||||
1. Нажмите **"+ Добавить столбец"**
|
||||
2. Заполните:
|
||||
- **Название**: `Ответ`
|
||||
- **Тип**: `Текст`
|
||||
- **Назначение**: Выберите `Ответ AI` ⭐
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
#### Столбец 3: Продукт (опционально, для фильтрации)
|
||||
|
||||
1. Нажмите **"+ Добавить столбец"**
|
||||
2. Заполните:
|
||||
- **Название**: `Продукт`
|
||||
- **Тип**: `Множественный выбор`
|
||||
- **Варианты**: `Базовый`, `Премиум`, `Корпоративный`
|
||||
- **Назначение**: Выберите `Фильтр по продукту`
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
#### Столбец 4: Теги (опционально, для категоризации)
|
||||
|
||||
1. Нажмите **"+ Добавить столбец"**
|
||||
2. Заполните:
|
||||
- **Название**: `Теги`
|
||||
- **Тип**: `Множественный выбор`
|
||||
- **Варианты**: `Оплата`, `Доставка`, `Возврат`, `Гарантия`, `Техподдержка`
|
||||
- **Назначение**: Выберите `Теги пользователя`
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
#### Столбец 5: Приоритет (опционально)
|
||||
|
||||
1. Нажмите **"+ Добавить столбец"**
|
||||
2. Заполните:
|
||||
- **Название**: `Приоритет`
|
||||
- **Тип**: `Число`
|
||||
- **Назначение**: Выберите `Приоритет`
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
> 💡 **Подсказка**: Вопросы с более высоким приоритетом будут показываться AI первыми
|
||||
|
||||
### 2.3 Заполнение базы знаний
|
||||
|
||||
Добавьте типовые вопросы и ответы:
|
||||
|
||||
**Пример 1: Оплата**
|
||||
|
||||
| Вопрос | Ответ | Продукт | Теги | Приоритет |
|
||||
|--------|-------|---------|------|-----------|
|
||||
| Как оплатить заказ? | Мы принимаем оплату банковской картой, через PayPal, или банковским переводом. Выберите удобный способ при оформлении заказа. | Все | Оплата | 10 |
|
||||
| Можно ли оплатить частями? | Да, для заказов от 50,000₽ доступна рассрочка на 3, 6 или 12 месяцев без переплаты. | Премиум, Корпоративный | Оплата | 8 |
|
||||
|
||||
**Пример 2: Доставка**
|
||||
|
||||
| Вопрос | Ответ | Продукт | Теги | Приоритет |
|
||||
|--------|-------|---------|------|-----------|
|
||||
| Сколько времени занимает доставка? | Стандартная доставка: 3-5 рабочих дней по России. Экспресс-доставка: 1-2 дня в крупных городах. | Все | Доставка | 10 |
|
||||
| Сколько стоит доставка? | Бесплатная доставка при заказе от 5,000₽. Для заказов менее 5,000₽ стоимость доставки 300₽. | Все | Доставка | 9 |
|
||||
|
||||
**Пример 3: Возврат**
|
||||
|
||||
| Вопрос | Ответ | Продукт | Теги | Приоритет |
|
||||
|--------|-------|---------|------|-----------|
|
||||
| Как вернуть товар? | Возврат возможен в течение 14 дней с момента получения. Товар должен быть в оригинальной упаковке, с сохранением товарного вида. Свяжитесь с поддержкой для оформления возврата. | Все | Возврат | 10 |
|
||||
| Когда вернут деньги? | Возврат денежных средств производится в течение 5-10 рабочих дней после получения товара на наш склад. | Все | Возврат | 8 |
|
||||
|
||||
> 💡 **Рекомендация**: Добавьте минимум 20-30 вопросов для качественной работы AI. Чем больше вопросов, тем точнее ответы!
|
||||
|
||||
### 2.4 Активация таблицы как источника для AI
|
||||
|
||||
1. В правом верхнем углу таблицы найдите **⚙️ Настройки таблицы**
|
||||
2. Включите переключатель **"Использовать как источник для AI"** ✅
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
> ✅ **Готово!** Таблица теперь индексируется для векторного поиска
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3: Настройка AI провайдера (Ollama)
|
||||
|
||||
### 3.1 Открытие настроек Ollama
|
||||
|
||||
1. Перейдите в **Настройки** → **Интеграции**
|
||||
2. Найдите блок **"Ollama"** и нажмите **"Подробнее"**
|
||||
|
||||
### 3.2 Проверка Base URL
|
||||
|
||||
1. Проверьте поле **Base URL**:
|
||||
- Для Docker: `http://ollama:11434` ✅
|
||||
- Для локального: `http://localhost:11434`
|
||||
2. Если URL неверный, исправьте и нажмите **"Сохранить"**
|
||||
|
||||
### 3.3 Выбор модели
|
||||
|
||||
1. В поле **"Модель (LLM)"** выберите установленную модель:
|
||||
- `qwen2.5:7b` (рекомендуется для русского)
|
||||
2. В поле **"Embeddings-модель"** выберите:
|
||||
- `mxbai-embed-large:latest`
|
||||
3. Нажмите **"Сохранить"**
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4: Настройка AI Ассистента
|
||||
|
||||
### 4.1 Открытие настроек ассистента
|
||||
|
||||
1. Перейдите в **Настройки** → **Интеграции**
|
||||
2. Найдите блок **"ИИ-ассистент"** и нажмите **"Подробнее"**
|
||||
|
||||
### 4.2 Настройка системного промта
|
||||
|
||||
В поле **"Системный промт"** введите инструкции для AI:
|
||||
|
||||
**Базовый промт (для начала)**:
|
||||
|
||||
```
|
||||
Вы — профессиональный ассистент службы поддержки компании.
|
||||
|
||||
Правила:
|
||||
1. Отвечайте вежливо и профессионально
|
||||
2. Используйте информацию из базы знаний
|
||||
3. Если информации нет — предложите связаться с оператором
|
||||
4. Отвечайте кратко и по существу
|
||||
5. Всегда заканчивайте вопросом "Чем еще могу помочь?"
|
||||
```
|
||||
|
||||
**Продвинутый промт (с персонализацией)**:
|
||||
|
||||
```
|
||||
Вы — профессиональный ассистент службы поддержки компании "Название вашей компании".
|
||||
|
||||
О компании:
|
||||
- Мы занимаемся [краткое описание бизнеса]
|
||||
- Наши ценности: качество, надежность, клиентоориентированность
|
||||
|
||||
Стиль общения:
|
||||
- Дружелюбный, но профессиональный
|
||||
- Обращайтесь к клиенту на "Вы"
|
||||
- Используйте эмодзи умеренно (1-2 на сообщение)
|
||||
|
||||
Правила ответа:
|
||||
1. ОБЯЗАТЕЛЬНО: Отвечайте ТОЛЬКО на русском языке. Все вопросы и ответы должны быть на русском языке
|
||||
2. Сначала ищите ответ в базе знаний (RAG)
|
||||
3. Если нашли — отвечайте на основе найденной информации
|
||||
4. Если не нашли — честно скажите и предложите помощь оператора
|
||||
5. Не придумывайте информацию о ценах, сроках, условиях
|
||||
6. При сложных вопросах предлагайте связаться с менеджером
|
||||
|
||||
Всегда заканчивайте: "Чем еще могу помочь? 😊"
|
||||
```
|
||||
|
||||
### 4.3 Выбор моделей
|
||||
|
||||
1. **LLM-модель**: Выберите `qwen2.5:7b (ollama)`
|
||||
2. **Embedding-модель**: Выберите `mxbai-embed-large:latest (ollama)`
|
||||
|
||||
> 💡 **Подсказка**: Модели автоматически подтянутся из настроек Ollama
|
||||
|
||||
> 📊 **Размер контекстного окна**:
|
||||
> - **Qwen2.5:7b**: Базовый контекст = **32,768 токенов** (~24,000 русских слов)
|
||||
> - Всего данных, отправляемых в модель:
|
||||
> - Системный промпт: ~500-2000 символов (~300-1200 токенов)
|
||||
> - История диалога: до 20 сообщений (~100-500 токенов на сообщение = ~2000-10000 токенов)
|
||||
> - RAG контекст: ~500-2000 токенов (из найденных данных)
|
||||
> - Текущий вопрос: ~50-200 токенов
|
||||
> - **Итого**: примерно 3,000-15,000 токенов (запас достаточен)
|
||||
> - Если нужен больший контекст → используйте Qwen3 с YaRN (до 131K токенов)
|
||||
|
||||
### 4.4 Выбор RAG-таблицы
|
||||
|
||||
1. В поле **"Выбранные RAG-таблицы"** выберите созданную таблицу:
|
||||
- `FAQ - Часто задаваемые вопросы`
|
||||
2. Нажмите **"Сохранить"**
|
||||
|
||||
### 4.5 Настройка правил AI (Rules)
|
||||
|
||||
Создайте набор правил для управления поведением AI:
|
||||
|
||||
1. Нажмите кнопку **"Создать"** рядом с полем "Набор правил"
|
||||
2. В модальном окне заполните:
|
||||
|
||||
**Название**: `Гибридный режим (RAG + генерация)`
|
||||
|
||||
**Описание**: `AI сначала ищет в базе знаний, если не находит — генерирует ответ`
|
||||
|
||||
**Правила (JSON)**:
|
||||
```json
|
||||
{
|
||||
"checkUserTags": true,
|
||||
"searchRagFirst": true,
|
||||
"generateIfNoRag": true,
|
||||
"temperature": 0.7,
|
||||
"maxTokens": 500
|
||||
}
|
||||
```
|
||||
|
||||
3. Нажмите **"Сохранить"**
|
||||
4. Выберите созданное правило в выпадающем списке
|
||||
|
||||
> 💡 **Что означают параметры**:
|
||||
> - `checkUserTags: true` — учитывать теги пользователя при поиске
|
||||
> - `searchRagFirst: true` — сначала искать в базе знаний
|
||||
> - `generateIfNoRag: true` — генерировать ответ, если ничего не найдено
|
||||
> - `temperature: 0.7` — баланс между точностью и креативностью (0.0-1.0)
|
||||
> - `maxTokens: 500` — максимальная длина ответа
|
||||
|
||||
### 4.6 Настройки RAG поиска
|
||||
|
||||
Разверните раздел **"🔍 Настройки RAG поиска"**:
|
||||
|
||||
**Базовые настройки:**
|
||||
1. **Метод поиска**: Выберите `Гибридный поиск` (рекомендуется)
|
||||
2. **Максимальное количество результатов**: `5`
|
||||
3. **Порог релевантности**: `0.1` (от 0.01 до 1.0)
|
||||
|
||||
**Извлечение ключевых слов:**
|
||||
1. ✅ **Включить извлечение ключевых слов**
|
||||
2. **Минимальная длина слова**: `3`
|
||||
3. **Максимальное количество ключевых слов**: `10`
|
||||
4. ✅ **Удалять стоп-слова**
|
||||
|
||||
**Веса поиска (для гибридного):**
|
||||
1. **Семантический поиск**: `70%` (точность)
|
||||
2. **Поиск по ключевым словам**: `30%` (скорость)
|
||||
|
||||
**Дополнительные настройки:**
|
||||
1. ✅ **Нечеткий поиск** (для опечаток)
|
||||
2. ✅ **Стемминг слов** (находит разные формы слова)
|
||||
3. ☐ **Поиск синонимов** (пока отключен)
|
||||
|
||||
### 4.7 Сохранение настроек
|
||||
|
||||
Нажмите кнопку **"Сохранить"** внизу формы.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 5: Тестирование AI Ассистента
|
||||
|
||||
### 5.1 Использование встроенного тестера
|
||||
|
||||
1. На странице настроек AI ассистента прокрутите вниз до блока **"🔍 Мониторинг системы"**
|
||||
2. В разделе **"🧠 Тест RAG-функциональности"**:
|
||||
- Убедитесь, что выбрана таблица `FAQ - Часто задаваемые вопросы`
|
||||
- Введите тестовый вопрос: `Как оплатить заказ?`
|
||||
- Нажмите **"Тестировать RAG"**
|
||||
3. Наблюдайте за процессом:
|
||||
- 🔍 Ищем ответ в базе знаний... (векторный поиск)
|
||||
- 🤖 Генерируем ответ с помощью ИИ... (LLM генерация)
|
||||
- ✅ Готово!
|
||||
4. Проверьте результат:
|
||||
- Должен отобразиться ответ из вашей таблицы
|
||||
- Score (оценка близости): чем ближе к 0, тем лучше
|
||||
|
||||
> 💡 **Хороший Score**: от -300 до 0 (ответ найден)
|
||||
> ⚠️ **Плохой Score**: больше 300 (ответ не найден, AI придумает свой)
|
||||
|
||||
### 5.2 Тестирование через Web Chat
|
||||
|
||||
1. Перейдите на главную страницу приложения
|
||||
2. Найдите виджет **"💬 Чат с AI"** (обычно справа внизу)
|
||||
3. Нажмите на виджет, чтобы открыть чат
|
||||
4. Введите вопрос: `Сколько стоит доставка?`
|
||||
5. Проверьте ответ AI
|
||||
|
||||
**Ожидаемый результат:**
|
||||
```
|
||||
🤖 AI Ассистент:
|
||||
Бесплатная доставка при заказе от 5,000₽.
|
||||
Для заказов менее 5,000₽ стоимость доставки 300₽.
|
||||
|
||||
Чем еще могу помочь? 😊
|
||||
```
|
||||
|
||||
### 5.3 Тестирование разных сценариев
|
||||
|
||||
Попробуйте задать различные вопросы:
|
||||
|
||||
**✅ Вопрос из базы знаний:**
|
||||
```
|
||||
Пользователь: "Как вернуть товар?"
|
||||
AI: [Ответ из таблицы FAQ]
|
||||
```
|
||||
|
||||
**⚠️ Вопрос НЕ из базы знаний:**
|
||||
```
|
||||
Пользователь: "Какая погода сегодня?"
|
||||
AI: "Извините, я специализируюсь на вопросах о нашей компании и продуктах.
|
||||
По вопросам погоды обратитесь к специализированным сервисам.
|
||||
Чем еще могу помочь?"
|
||||
```
|
||||
|
||||
**🎯 Вопрос с опечаткой:**
|
||||
```
|
||||
Пользователь: "Как аплатить заказ?" (опечатка)
|
||||
AI: [Найдет правильный ответ благодаря нечеткому поиску]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 6: Расширенные возможности (опционально)
|
||||
|
||||
### 6.1 Создание таблицы для работы с поставщиками
|
||||
|
||||
#### Структура таблицы "База поставщиков"
|
||||
|
||||
1. Создайте новую таблицу: `База поставщиков`
|
||||
2. Добавьте столбцы:
|
||||
|
||||
| Столбец | Тип | Описание |
|
||||
|---------|-----|----------|
|
||||
| Название компании | Текст | Наименование поставщика |
|
||||
| Категория товаров | Множественный выбор | Электроника, Мебель, Одежда, и т.д. |
|
||||
| Контактное лицо | Текст | ФИО менеджера |
|
||||
| Email | Текст | Электронная почта |
|
||||
| Телефон | Текст | Контактный телефон |
|
||||
| Цены | Текст | Прайс-лист (краткое описание) |
|
||||
| Условия оплаты | Текст | Отсрочка, предоплата, и т.д. |
|
||||
| Минимальный заказ | Число | Минимальная сумма заказа |
|
||||
| Срок доставки | Текст | Сроки поставки |
|
||||
| Рейтинг | Число | Оценка от 1 до 10 |
|
||||
| Примечания | Текст | Дополнительная информация |
|
||||
|
||||
3. Активируйте как источник для AI
|
||||
4. Заполните данными о ваших поставщиках
|
||||
|
||||
#### Промт для AI закупщика
|
||||
|
||||
Добавьте в системный промт:
|
||||
|
||||
```
|
||||
ДОПОЛНИТЕЛЬНО - Работа с поставщиками:
|
||||
|
||||
Когда пользователь спрашивает о поставщиках:
|
||||
1. Ищите в базе "База поставщиков"
|
||||
2. Фильтруйте по категории товаров
|
||||
3. Сортируйте по рейтингу и условиям
|
||||
4. Предоставьте ТОП-3 рекомендации
|
||||
|
||||
Формат ответа:
|
||||
🏆 TOP-3 поставщика по запросу "[категория]":
|
||||
|
||||
1. [Название] ⭐ [Рейтинг]/10
|
||||
📧 [Email] | 📞 [Телефон]
|
||||
💰 Условия: [Условия оплаты]
|
||||
🚚 Доставка: [Срок доставки]
|
||||
📦 Минимум: [Минимальный заказ]₽
|
||||
|
||||
2. ...
|
||||
3. ...
|
||||
|
||||
Рекомендую связаться с [Название первого поставщика] — лучшие условия.
|
||||
```
|
||||
|
||||
### 6.2 Создание таблицы для обучения персонала
|
||||
|
||||
#### Структура таблицы "База знаний для сотрудников"
|
||||
|
||||
1. Создайте новую таблицу: `База знаний для сотрудников`
|
||||
2. Добавьте столбцы:
|
||||
|
||||
| Столбец | Тип | Описание |
|
||||
|---------|-----|----------|
|
||||
| Вопрос | Текст | Вопрос сотрудника (назначение: Вопрос для AI) |
|
||||
| Ответ | Текст | Подробный ответ (назначение: Ответ AI) |
|
||||
| Категория | Множественный выбор | Продажи, HR, Финансы, IT, Маркетинг |
|
||||
| Отдел | Множественный выбор | Для какого отдела актуально |
|
||||
| Сложность | Число | От 1 (простой) до 5 (сложный) |
|
||||
| Инструкции | Текст | Пошаговые инструкции (если есть) |
|
||||
| Ссылки | Текст | Ссылки на документы/видео |
|
||||
| Дата обновления | Дата | Когда информация обновлялась |
|
||||
|
||||
3. Примеры вопросов:
|
||||
|
||||
**Категория "Продажи":**
|
||||
- "Как оформить возврат клиенту?"
|
||||
- "Какие скидки можно давать постоянным клиентам?"
|
||||
- "Как работать с корпоративными клиентами?"
|
||||
|
||||
**Категория "HR":**
|
||||
- "Как оформить отпуск?"
|
||||
- "Куда обращаться по больничному?"
|
||||
- "Как происходит адаптация новых сотрудников?"
|
||||
|
||||
**Категория "IT":**
|
||||
- "Как получить доступ к корпоративной почте?"
|
||||
- "Что делать при проблемах с VPN?"
|
||||
- "Как создать заявку в техподдержку?"
|
||||
|
||||
### 6.3 Создание связей между таблицами
|
||||
|
||||
#### Пример: Связь "Клиенты" → "Заказы"
|
||||
|
||||
1. Создайте таблицу **"Клиенты"**:
|
||||
- Название, Email, Телефон, Статус (VIP/Обычный)
|
||||
|
||||
2. Создайте таблицу **"Заказы"**:
|
||||
- Номер заказа, Дата, Сумма
|
||||
|
||||
3. В таблице "Заказы" добавьте столбец:
|
||||
- **Название**: `Клиент`
|
||||
- **Тип**: `Связь (Relation)`
|
||||
- **Связанная таблица**: выберите `Клиенты`
|
||||
- **Показывать поле**: выберите `Название`
|
||||
|
||||
4. Добавьте еще один столбец в "Заказы":
|
||||
- **Название**: `Email клиента`
|
||||
- **Тип**: `Lookup (Подстановка)`
|
||||
- **Связь через**: выберите столбец `Клиент`
|
||||
- **Подставлять поле**: выберите `Email`
|
||||
|
||||
**Результат**: При выборе клиента автоматически подставится его Email!
|
||||
|
||||
#### Использование AI с связанными таблицами
|
||||
|
||||
AI автоматически понимает связи и может отвечать на вопросы:
|
||||
|
||||
```
|
||||
Пользователь: "Покажи все заказы клиента Иванов"
|
||||
AI: [Ищет в таблице Заказы, фильтрует по клиенту Иванов]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Шаг 7: Интеграция с Telegram и Email (опционально)
|
||||
|
||||
### 7.1 Настройка Telegram бота
|
||||
|
||||
1. Перейдите в **Настройки** → **Интеграции** → **Telegram**
|
||||
2. Создайте бота через [@BotFather](https://t.me/botfather) в Telegram:
|
||||
- Отправьте `/newbot`
|
||||
- Выберите имя и username бота
|
||||
- Скопируйте **Bot Token**
|
||||
3. В настройках DLE введите:
|
||||
- **Bot Token**: вставьте токен от BotFather
|
||||
- **Bot Username**: username вашего бота (например, `@mycompany_bot`)
|
||||
4. Нажмите **"Сохранить"**
|
||||
5. В настройках AI ассистента выберите этот Telegram бот в поле **"Telegram-бот"**
|
||||
|
||||
**Результат**: AI будет отвечать на сообщения в Telegram!
|
||||
|
||||
### 7.2 Настройка Email интеграции
|
||||
|
||||
1. Перейдите в **Настройки** → **Интеграции** → **Email**
|
||||
2. Заполните IMAP настройки (для получения писем):
|
||||
- **IMAP Host**: `imap.gmail.com` (для Gmail)
|
||||
- **IMAP Port**: `993`
|
||||
- **IMAP User**: ваш email
|
||||
- **IMAP Password**: пароль приложения (не основной пароль!)
|
||||
3. Заполните SMTP настройки (для отправки писем):
|
||||
- **SMTP Host**: `smtp.gmail.com`
|
||||
- **SMTP Port**: `587`
|
||||
- **SMTP User**: ваш email
|
||||
- **SMTP Password**: пароль приложения
|
||||
- **From Email**: email для отправки
|
||||
4. Нажмите **"Тест IMAP"** и **"Тест SMTP"** для проверки
|
||||
5. Нажмите **"Сохранить"**
|
||||
6. В настройках AI ассистента выберите этот Email в поле **"Email для связи"**
|
||||
|
||||
> ⚠️ **Важно для Gmail**: Создайте "Пароль приложения" в настройках безопасности Google
|
||||
|
||||
**Результат**: AI будет отвечать на входящие email автоматически!
|
||||
|
||||
---
|
||||
|
||||
## Шаг 8: Мониторинг и оптимизация
|
||||
|
||||
### 8.1 Проверка статуса сервисов
|
||||
|
||||
1. Перейдите в **Настройки** → **Интеграции** → **ИИ-ассистент**
|
||||
2. Прокрутите вниз до **"🔍 Мониторинг системы"**
|
||||
3. Нажмите **"🔄 Обновить статус"**
|
||||
4. Проверьте статусы:
|
||||
- 🟢 **Backend**: должен быть "Работает"
|
||||
- 🟢 **Postgres**: должен быть "Работает"
|
||||
- 🟢 **Ollama**: должен показывать количество моделей
|
||||
- 🟢 **Vector Search**: должен быть "Работает"
|
||||
|
||||
> ⚠️ Если что-то красное (🔴) — см. раздел "Решение проблем" ниже
|
||||
|
||||
### 8.2 Анализ качества ответов
|
||||
|
||||
Регулярно проверяйте качество ответов AI:
|
||||
|
||||
1. **Score в тестере RAG**:
|
||||
- **-300 до 0** ✅ — отличное совпадение
|
||||
- **0 до 300** ⚠️ — среднее совпадение
|
||||
- **>300** ❌ — совпадение не найдено
|
||||
|
||||
2. **Если Score плохой**:
|
||||
- Добавьте больше похожих вопросов в таблицу
|
||||
- Используйте разные формулировки одного вопроса
|
||||
- Увеличьте порог релевантности (например, до 0.2)
|
||||
|
||||
### 8.3 Оптимизация настроек RAG
|
||||
|
||||
Экспериментируйте с настройками для улучшения результатов:
|
||||
|
||||
**Для более точных ответов:**
|
||||
```
|
||||
Метод поиска: Семантический
|
||||
Порог релевантности: 0.05 (ниже = строже)
|
||||
Веса: Семантический 100% / Ключевые слова 0%
|
||||
```
|
||||
|
||||
**Для более быстрых ответов:**
|
||||
```
|
||||
Метод поиска: Поиск по ключевым словам
|
||||
Максимальное количество результатов: 3
|
||||
```
|
||||
|
||||
**Для баланса (рекомендуется):**
|
||||
```
|
||||
Метод поиска: Гибридный
|
||||
Веса: Семантический 70% / Ключевые слова 30%
|
||||
Порог релевантности: 0.1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ AI Ассистент готов к работе!
|
||||
|
||||
### Что у вас теперь есть
|
||||
|
||||
✅ **Локальный AI ассистент** без зависимости от облака
|
||||
✅ **База знаний FAQ** для ответов клиентам
|
||||
✅ **Векторный поиск** для точных ответов
|
||||
✅ **Настроенные правила** поведения AI
|
||||
✅ **Система мониторинга** для контроля качества
|
||||
|
||||
### Экономический эффект
|
||||
|
||||
При правильной настройке AI ассистента вы получите:
|
||||
|
||||
✅ **Автоматизацию рутинных задач** - высвобождение времени для стратегии
|
||||
✅ **Повышение качества обслуживания** - AI работает 24/7 без усталости
|
||||
✅ **Снижение операционных расходов** - меньше персонала на рутинных задачах
|
||||
✅ **Ускорение принятия решений** - мгновенный доступ к информации
|
||||
|
||||
> 💡 **Подробная информация**: См. [AI Ассистент - полное описание](./ai-assistant.md#экономический-эффект) - там детально описаны все возможности, кейсы применения и расчеты экономии.
|
||||
|
||||
---
|
||||
|
||||
## 📚 Следующие шаги
|
||||
|
||||
### Расширьте возможности AI
|
||||
|
||||
1. **Добавьте больше таблиц**:
|
||||
- База знаний для партнеров
|
||||
- Инструкции для персонала
|
||||
- Каталог продуктов
|
||||
- База контактов
|
||||
|
||||
2. **Создайте правила для разных сценариев**:
|
||||
- Строгий режим (только RAG) — для финансов
|
||||
- Креативный режим (больше генерации) — для маркетинга
|
||||
- Гибридный режим (баланс) — для поддержки
|
||||
|
||||
3. **Интегрируйте с другими системами**:
|
||||
- CRM (синхронизация клиентов)
|
||||
- Складская система (остатки товаров)
|
||||
- Бухгалтерия (счета и оплаты)
|
||||
|
||||
### Обучите команду
|
||||
|
||||
1. Покажите сотрудникам, как работает AI
|
||||
2. Объясните, как добавлять новые вопросы в базу
|
||||
3. Установите процесс регулярного обновления базы знаний
|
||||
4. Назначьте ответственного за качество ответов AI
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Решение проблем
|
||||
|
||||
### Проблема: Ollama не запускается
|
||||
|
||||
**Симптомы**: Статус "Ollama API not responding"
|
||||
|
||||
**Решение**:
|
||||
```bash
|
||||
# Проверить контейнер
|
||||
docker ps | grep ollama
|
||||
|
||||
# Перезапустить
|
||||
docker-compose restart ollama
|
||||
|
||||
# Проверить логи
|
||||
docker-compose logs ollama
|
||||
```
|
||||
|
||||
### Проблема: AI отвечает неточно
|
||||
|
||||
**Симптомы**: Ответы не соответствуют базе знаний
|
||||
|
||||
**Решение**:
|
||||
1. Проверьте Score в тестере (должен быть < 300)
|
||||
2. Добавьте больше вариантов вопросов в таблицу
|
||||
3. Уменьшите порог релевантности (например, до 0.05)
|
||||
4. Проверьте, что столбцы имеют правильные назначения ("Вопрос для AI", "Ответ AI")
|
||||
|
||||
### Проблема: Vector Search не работает
|
||||
|
||||
**Симптомы**: Статус Vector Search показывает ошибку
|
||||
|
||||
**Решение**:
|
||||
1. Проверьте, установлена ли Embedding модель
|
||||
2. Пересоберите индекс: на странице таблицы нажмите **"🔄 Пересобрать индекс"**
|
||||
3. Проверьте, что таблица активирована как источник для AI
|
||||
|
||||
### Проблема: AI отвечает на неправильном языке
|
||||
|
||||
**Симптомы**: Ответы на английском вместо русского
|
||||
|
||||
**Решение**:
|
||||
1. Измените системный промт, добавив в начало: `ВСЕГДА отвечай на русском языке.`
|
||||
2. Используйте модель `qwen2.5:7b` вместо `llama2:7b`
|
||||
3. В правилах AI установите `"language": "ru"`
|
||||
|
||||
### Проблема: Медленные ответы
|
||||
|
||||
**Симптомы**: AI отвечает дольше 5-10 секунд
|
||||
|
||||
**Решение**:
|
||||
1. Используйте меньшую модель (`mistral:7b` вместо `qwen2.5:14b`)
|
||||
2. Уменьшите `maxResults` в настройках RAG (например, до 3)
|
||||
3. Отключите "Поиск синонимов" в дополнительных настройках
|
||||
4. Используйте SSD для хранения моделей
|
||||
|
||||
---
|
||||
|
||||
## 📖 Дополнительная документация
|
||||
|
||||
### Изучите возможности AI
|
||||
|
||||
- 🤖 **[AI Ассистент - полное описание](./ai-assistant.md)** - все возможности и кейсы применения
|
||||
- 📊 **[Система электронных таблиц](./tables-system.md)** - техническое описание таблиц (временный)
|
||||
- ⚙️ **[Конфигурация AI](./setup-ai-assistant.md#техническая-документация-для-разработчиков)** - технические детали настройки
|
||||
|
||||
### Общая документация
|
||||
|
||||
- 🛡️ **[Безопасность](./security.md)** - как AI защищает ваши данные
|
||||
- 💼 **[Блокчейн для бизнеса](./blockchain-for-business.md)** - интеграция AI с блокчейном
|
||||
- 📋 **[FAQ](./FAQ.md)** - часто задаваемые вопросы
|
||||
|
||||
### Поддержка
|
||||
|
||||
- 💬 **Чат поддержки**: https://hb3-accelerator.com/
|
||||
- 📧 **Email**: info@hb3-accelerator.com
|
||||
- 📚 **База знаний**: https://hb3-accelerator.com
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Техническая документация (для разработчиков)
|
||||
|
||||
### Архитектура системы AI
|
||||
|
||||
```
|
||||
┌───────────────────────────────────────────────────────────┐
|
||||
│ Настройка AI Ассистента в DLE │
|
||||
├───────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 🤖 AI Провайдеры: │
|
||||
│ ├── OpenAI (GPT-4, GPT-3.5) │
|
||||
│ ├── Anthropic (Claude) │
|
||||
│ ├── Google (Gemini) │
|
||||
│ └── Ollama (локальные модели) │
|
||||
│ │
|
||||
│ ⚙️ Настройки AI: │
|
||||
│ ├── System Prompt │
|
||||
│ ├── Выбор LLM модели │
|
||||
│ ├── Выбор Embedding модели │
|
||||
│ ├── Выбор RAG-таблиц │
|
||||
│ ├── Правила (Rules) │
|
||||
│ └── Настройки RAG поиска │
|
||||
│ │
|
||||
│ 📋 Правила (Rules): │
|
||||
│ ├── JSON конфигурация поведения │
|
||||
│ ├── Создание/редактирование/удаление │
|
||||
│ └── Привязка к AI ассистенту │
|
||||
│ │
|
||||
│ 🔗 Интеграции: │
|
||||
│ ├── Email (IMAP + SMTP) │
|
||||
│ └── Telegram Bot │
|
||||
│ │
|
||||
│ 🔍 RAG: │
|
||||
│ ├── Выбор таблиц для поиска │
|
||||
│ ├── Настройки поиска (гибридный/семантический) │
|
||||
│ ├── Порог релевантности │
|
||||
│ └── Извлечение ключевых слов │
|
||||
│ │
|
||||
│ 📊 Мониторинг: │
|
||||
│ ├── Статус сервисов (Backend, Ollama, Postgres) │
|
||||
│ ├── Тест RAG-функциональности │
|
||||
│ └── Отслеживание прогресса │
|
||||
│ │
|
||||
└───────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### База данных
|
||||
|
||||
#### Таблица: `ai_providers_settings`
|
||||
|
||||
```sql
|
||||
CREATE TABLE IF NOT EXISTS ai_providers_settings (
|
||||
id SERIAL PRIMARY KEY,
|
||||
provider_encrypted TEXT, -- Провайдер: openai, anthropic, google, ollama
|
||||
api_key_encrypted TEXT, -- API ключ (зашифрован)
|
||||
base_url_encrypted TEXT, -- Base URL для API
|
||||
selected_model_encrypted TEXT, -- Выбранная LLM модель
|
||||
embedding_model_encrypted TEXT, -- Выбранная Embedding модель
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT NOW()
|
||||
);
|
||||
```
|
||||
|
||||
#### Таблица: `ai_assistant_settings`
|
||||
|
||||
```sql
|
||||
CREATE TABLE IF NOT EXISTS ai_assistant_settings (
|
||||
id SERIAL PRIMARY KEY,
|
||||
system_prompt_encrypted TEXT, -- Системный промт
|
||||
selected_rag_tables INTEGER[], -- Массив ID RAG-таблиц
|
||||
languages TEXT[], -- Массив поддерживаемых языков
|
||||
model_encrypted TEXT, -- Выбранная LLM модель
|
||||
embedding_model_encrypted TEXT, -- Выбранная Embedding модель
|
||||
rules JSONB, -- Правила (DEPRECATED)
|
||||
rules_id INTEGER REFERENCES ai_assistant_rules(id), -- Ссылка на правило
|
||||
telegram_settings_id INTEGER, -- Ссылка на Telegram бота
|
||||
email_settings_id INTEGER, -- Ссылка на Email настройки
|
||||
rag_settings JSONB, -- Настройки RAG поиска
|
||||
updated_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_by INTEGER
|
||||
);
|
||||
```
|
||||
|
||||
#### Таблица: `ai_assistant_rules`
|
||||
|
||||
```sql
|
||||
CREATE TABLE IF NOT EXISTS ai_assistant_rules (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name TEXT NOT NULL, -- Название набора правил
|
||||
description TEXT, -- Описание правила
|
||||
rules JSONB NOT NULL, -- JSON конфигурация
|
||||
rules_encrypted TEXT, -- Зашифрованная версия правил
|
||||
created_at TIMESTAMP DEFAULT NOW(),
|
||||
updated_at TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
```
|
||||
|
||||
### Backend API
|
||||
|
||||
#### Настройки AI провайдеров
|
||||
|
||||
- **GET** `/settings/ai-settings/:provider` — Получить настройки провайдера
|
||||
- **PUT** `/settings/ai-settings/:provider` — Сохранить настройки провайдера
|
||||
- **DELETE** `/settings/ai-settings/:provider` — Удалить настройки провайдера
|
||||
- **GET** `/settings/ai-settings/:provider/models` — Получить список моделей
|
||||
- **POST** `/settings/ai-settings/:provider/verify` — Проверить API ключ
|
||||
|
||||
#### Настройки AI ассистента
|
||||
|
||||
- **GET** `/settings/ai-assistant` — Получить настройки ассистента
|
||||
- **PUT** `/settings/ai-assistant` — Сохранить настройки ассистента
|
||||
|
||||
#### Правила AI
|
||||
|
||||
- **GET** `/settings/ai-assistant-rules` — Получить все правила
|
||||
- **GET** `/settings/ai-assistant-rules/:id` — Получить правило по ID
|
||||
- **POST** `/settings/ai-assistant-rules` — Создать правило
|
||||
- **PUT** `/settings/ai-assistant-rules/:id` — Обновить правило
|
||||
- **DELETE** `/settings/ai-assistant-rules/:id` — Удалить правило
|
||||
|
||||
#### Ollama (локальные модели)
|
||||
|
||||
- **GET** `/ollama/status` — Проверить статус Ollama
|
||||
- **GET** `/ollama/models` — Получить список моделей
|
||||
- **POST** `/ollama/install` — Установить модель
|
||||
- **DELETE** `/ollama/models/:modelName` — Удалить модель
|
||||
|
||||
### Frontend страницы
|
||||
|
||||
- **`/settings/ai`** — Главная страница интеграций
|
||||
- **`/settings/ai/:provider`** — Настройки AI провайдера
|
||||
- **`/settings/ai/assistant`** — Настройки AI ассистента
|
||||
|
||||
### Процесс обработки сообщения
|
||||
|
||||
```
|
||||
1. Пользователь → Сообщение
|
||||
↓
|
||||
2. UnifiedMessageProcessor
|
||||
↓
|
||||
3. Проверка языка (только русский)
|
||||
↓
|
||||
4. Дедупликация (хеш сообщения)
|
||||
↓
|
||||
5. Загрузка настроек (aiAssistantSettingsService)
|
||||
↓
|
||||
6. Загрузка правил (aiAssistantRulesService)
|
||||
↓
|
||||
7. RAG поиск (ragService)
|
||||
├── Семантический поиск (vector search)
|
||||
├── Поиск по ключевым словам
|
||||
└── Гибридный поиск
|
||||
↓
|
||||
8. Генерация ответа (generateLLMResponse)
|
||||
├── System Prompt
|
||||
├── История разговора
|
||||
├── Контекст из RAG
|
||||
└── Правила
|
||||
↓
|
||||
9. Ответ → Пользователь
|
||||
```
|
||||
|
||||
### Безопасность
|
||||
|
||||
- **Шифрование**: Все чувствительные поля зашифрованы с помощью AES-256
|
||||
- **Права доступа**: Только администраторы могут изменять настройки
|
||||
- **Валидация**: Проверка всех входных данных и API ключей
|
||||
|
||||
---
|
||||
|
||||
**© 2024-2025 Тарабанов Александр Викторович. Все права защищены.**
|
||||
|
||||
**Версия документа**: 1.0.0
|
||||
**Дата создания**: October 25, 2025
|
||||
|
||||
@@ -1,195 +0,0 @@
|
||||
<!--
|
||||
Copyright (c) 2024-2025 Тарабанов Александр Викторович
|
||||
All rights reserved.
|
||||
|
||||
This software is proprietary and confidential.
|
||||
Unauthorized copying, modification, or distribution is prohibited.
|
||||
|
||||
For licensing inquiries: info@hb3-accelerator.com
|
||||
Website: https://hb3-accelerator.com
|
||||
GitHub: https://github.com/VC-HB3-Accelerator
|
||||
-->
|
||||
|
||||
# Инструкция по настройке приложения Digital Legal Entity
|
||||
|
||||
## 🚀 Полный процесс инициализации системы
|
||||
|
||||
Этот документ описывает полный процесс подготовки приложения к работе с поддержкой блокчейна, смарт-контрактов и системы управления доступом.
|
||||
|
||||
---
|
||||
|
||||
## Шаг 1: Установка софта
|
||||
|
||||
1. Клонируйте репозиторий проекта на ваше локальное устройство
|
||||
2. Запустите приложение через Docker Compose или локально в зависимости от конфигурации
|
||||
3. Откройте веб-приложение в браузере: `http://localhost:9000` (production) или `http://localhost:5173` (dev режим)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 2: Подключение крипто кошелька
|
||||
|
||||
1. Убедитесь, что у вас установлен браузерный кошелек (MetaMask, WalletConnect или аналог)
|
||||
2. В кошельке создайте или импортируйте аккаунт с токеном управления
|
||||
3. В веб-приложении нажмите на кнопку **"Подключить кошелек"**
|
||||
4. Выберите тип кошелька и подтвердите подключение
|
||||
5. После успешного подключения вы увидите адрес вашего аккаунта в верхнем углу
|
||||
|
||||
---
|
||||
|
||||
## Шаг 3: Добавление RPC провайдеров (Безопасность → RPC провайдеры)
|
||||
|
||||
1. Перейдите в **Настройки** → вкладка **Безопасность**
|
||||
2. Найдите раздел **"RPC провайдеры"**
|
||||
3. Нажмите кнопку **"Добавить"**
|
||||
4. Заполните форму для каждой блокчейн сети, которую хотите использовать:
|
||||
- **Название сети** (например: Ethereum, Polygon, BSC)
|
||||
- **RPC URL** (ссылка для подключения, пример: `https://eth-mainnet.g.alchemy.com/v2/YOUR-API-KEY`)
|
||||
- **ID сети** (Chain ID)
|
||||
5. Нажмите **"Сохранить"** для каждого провайдера
|
||||
6. Система автоматически проверит корректность подключения
|
||||
|
||||
> ⚠️ **Важно**: Получите API ключи от провайдеров (Alchemy, Infura, Quicknode и т.д.) перед добавлением
|
||||
|
||||
---
|
||||
|
||||
## Шаг 4: Настройка мультидеплоя смарт контрактов
|
||||
|
||||
1. Перейдите в **Настройки** → вкладка **Блокчейн**
|
||||
2. Заполните форму
|
||||
3. Нажмите **"Запустить деплой"**
|
||||
|
||||
---
|
||||
|
||||
## Шаг 5: Завершение деплоя и сохранение адреса контракта
|
||||
|
||||
1. Ожидайте завершения деплоя (зависит от сети, обычно 30-120 секунд)
|
||||
2. После успешного завершения откроется страница **"Управление контрактами"**
|
||||
3. **Копируйте адрес развернутого контракта** (обычно он выглядит как: `0x742d35Cc6634C0532925a3b844Bc...`)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 6: Настройка аутентификации через смарт контракт
|
||||
|
||||
1. Вернитесь в **Настройки** → вкладка **Аутентификация**
|
||||
2. В поле **"Адрес смарт контракта"** вставьте адрес, скопированный на шаге 5
|
||||
3. Установите пороги для управления доступом:
|
||||
- **Минимальное количество токенов для редактирования** (например: 100 токенов)
|
||||
- **Минимальное количество токенов для просмотра** (например: 1 токен)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 7: Настройка ИИ и базы данных
|
||||
|
||||
1. Перейдите в **Настройки** → вкладка **ИИ**
|
||||
2. Откройте подраздел **"База данных"**
|
||||
3. Замените дефолтные пароли
|
||||
4. Нажмите **"Сгенерировать новый ключ шифрования"**
|
||||
- Система автоматически создаст криптографический ключ
|
||||
- **Сохраните ключ в безопасном месте** (он понадобится для восстановления данных)
|
||||
|
||||
---
|
||||
|
||||
## Шаг 8: Настройка доступа через интернет (опционально)
|
||||
|
||||
**Если вам нужен доступ к веб приложению извне через интернет:**
|
||||
|
||||
1. Перейдите в **Настройки** → вкладка **Сервер**
|
||||
2. На странице **Сервер** выберите **WEB SSH** или иной подходящий сервис
|
||||
3. Заполните форму для миграции локального приложения на виртуальное устройство с:
|
||||
- **Публичным IP адресом**
|
||||
- **Подключением к вашему доменному имени**
|
||||
4. Нажмите **"Опубликовать"**
|
||||
5. Дождитесь завершения процесса миграции
|
||||
|
||||
> ℹ️ **Примечание**: Этот шаг требует наличия зарегистрированного доменного имени и доступа к DNS настройкам
|
||||
|
||||
---
|
||||
|
||||
## Шаг 9: Настройка юридических документов для работы с персональными данными
|
||||
|
||||
### 9.1 Заполнение юридической информации о компании
|
||||
|
||||
1. Перейдите в **CRM** → раздел **Контент**
|
||||
2. Найдите и откройте форму **"Юридическая информация компании"**
|
||||
3. Заполните все необходимые поля:
|
||||
- **Полное наименование организации** (юридическое название)
|
||||
- **Краткое наименование**
|
||||
- **Организационно-правовая форма** (ООО, ИП, АО и т.д.)
|
||||
- **Юридический адрес**
|
||||
- **Фактический адрес** (если отличается)
|
||||
- **ИНН / ОГРН / КПП** (регистрационные данные)
|
||||
- **Контактные данные** (телефон, email, сайт)
|
||||
- **Ответственное лицо за обработку персональных данных** (ФИО, должность)
|
||||
- **Применимая юрисдикция** (GDPR, CCPA, российское законодательство и т.д.)
|
||||
4. Нажмите **"Сохранить"**
|
||||
|
||||
> 💡 **Подсказка**: Все введенные данные автоматически подставятся во все шаблоны юридических документов
|
||||
|
||||
### 9.2 Работа с шаблонами документов
|
||||
|
||||
1. В разделе **Контент** перейдите в подраздел **"Шаблоны"**
|
||||
2. Выберите необходимые шаблоны документов, требуемые регуляторами:
|
||||
- **Политика конфиденциальности**
|
||||
- **Пользовательское соглашение**
|
||||
- **Согласие на обработку персональных данных**
|
||||
- **Политика использования cookies**
|
||||
3. Для каждого шаблона:
|
||||
- Нажмите **"Предварительный просмотр"** для проверки автоматически заполненных данных
|
||||
- При необходимости отредактируйте специфичные параметры обработки данных
|
||||
- Выберите действие:
|
||||
- **"Опубликовать для публичного использования"** — документ будет доступен на сайте
|
||||
- **"Опубликовать для внутреннего использования"** — документ доступен только внутри CRM
|
||||
- **"Распечатать"** — экспорт в PDF для печати или подписания
|
||||
4. Подтвердите публикацию
|
||||
5. Система автоматически добавит документы на соответствующие страницы приложения
|
||||
|
||||
> ⚠️ **Важно**: Рекомендуется проконсультироваться с юристом перед публикацией документов для обеспечения полного соответствия требованиям законодательства
|
||||
|
||||
---
|
||||
|
||||
## ✅ Приложение готово к работе!
|
||||
|
||||
После завершения всех шагов ваше приложение полностью сконфигурировано и готово к использованию.
|
||||
|
||||
**Следующие этапы:**
|
||||
- 📖 Настройка AI ассистента (см. документ: `setup-ai-assistant.md`)
|
||||
- 🔐 Управление смарт контрактами (см. документ: `manage-smart-contracts.md`)
|
||||
|
||||
---
|
||||
|
||||
## 🆘 Рекомендации по безопасности
|
||||
|
||||
✓ Сохраняйте адреса контрактов и ключи шифрования в безопасном месте
|
||||
✓ Используйте мощные пароли для БД
|
||||
✓ Регулярно создавайте резервные копии конфигурации
|
||||
✓ Никогда не делитесь приватными ключами кошелька
|
||||
✓ Используйте HTTPS для доступа к приложению в продакшене
|
||||
|
||||
---
|
||||
|
||||
## 📝 Что дальше?
|
||||
|
||||
После завершения базовой настройки вы можете:
|
||||
1. Добавлять пользователей и управлять их разрешениями
|
||||
2. Создавать группы для совместной работы
|
||||
3. Настраивать AI ассистента для автоматизации задач
|
||||
4. Управлять смарт контрактами для расширения функциональности
|
||||
5. Интегрировать внешние сервисы и боты
|
||||
|
||||
---
|
||||
|
||||
## 📚 Дополнительная документация
|
||||
|
||||
### Изучите возможности DLE
|
||||
- 🤖 **[AI Ассистент](./ai-assistant.md)** - узнайте как AI может стать вторым пилотом для вашей команды
|
||||
- 💼 **[Блокчейн для бизнеса](./blockchain-for-business.md)** - как токенизация активов решает бизнес-задачи
|
||||
- 🛡️ **[Безопасность](./security.md)** - многоуровневая защита вашего бизнеса
|
||||
|
||||
### Техническая информация
|
||||
- 🔗 **[Техническая документация по блокчейну](./blockchain-integration-technical.md)** - для разработчиков
|
||||
- 📋 **[FAQ](./FAQ.md)** - часто задаваемые вопросы
|
||||
- 📝 **[Описание приложения](./application-description.md)** - обзор функциональности
|
||||
|
||||
### Поддержка
|
||||
- 💬 **Чат поддержки**: https://hb3-accelerator.com/
|
||||
- 📧 **Email**: info@hb3-accelerator.com
|
||||
@@ -1,132 +0,0 @@
|
||||
# Техническое задание: управление системными сообщениями
|
||||
|
||||
## 1. Цель и контекст
|
||||
- Обеспечить управляемое отображение системных сообщений на главной странице (`/`, компонент `HomeView.vue`) и добавить административный интерфейс для их создания и модерации в разделе контента (`/content`, компонент `ContentListView.vue`).
|
||||
- Системные сообщения должны поддерживать статусы «черновик» и «опубликовано», храниться в базе данных и быть доступны через REST API.
|
||||
|
||||
## 2. Актуальное состояние
|
||||
- Главная страница строится компонентом `HomeView.vue` и отображает чат ассистента (`ChatInterface.vue`), в котором выделены системные сообщения (`Message.vue`) по признаку `message.role === 'system'`.
|
||||
- Раздел контента (`ContentListView.vue`) содержит карточки переходов: «Создать страницу», «Шаблоны», «Публичные», «Настройка», «Внутренние». Карточки ведут на существующие маршруты `content-create`, `content-templates`, `content-published`, `content-settings`, `content-internal`.
|
||||
- В проекте отсутствуют сущности и API для системных сообщений; текущий `pagesService.js` работает только со страницами (`/pages`).
|
||||
|
||||
## 3. Новые пользовательские сценарии
|
||||
- **Просмотр системных сообщений (главная, `/`):**
|
||||
- Опубликованные системные сообщения подгружаются в чат ассистента и отображаются в виде свернутых карточек с кликабельным заголовком.
|
||||
- При клике на заголовок сообщение раскрывается: в ленте чата отображается полный текст сообщения **или** отправляется предзаготовленный ответ от ИИ ассистента (контент «ответа» хранится вместе с сообщением и выбирается по флагу `reply_type`).
|
||||
- Сообщения должны явно маркироваться как системные (цвет, иконка). При повторном открытии пользователь видит последнее состояние раскрытия; возможно локальное запоминание «прочитано».
|
||||
- **Раздел «Системные сообщения» (`/content`):**
|
||||
- На странице `/content` появляется новая карточка «Системные сообщения» с кнопкой «Подробнее». Переход ведёт на страницу с пользовательской таблицей (`/content/system-messages/table`), построенной на уже существующих компонентах таблиц (см. `UserTablesList.vue`), без отдельного дэшборда карточек.
|
||||
- Таблица отображает системные сообщения построчно, с возможностью множественного выбора через чекбоксы; доступные массовые действия: публикация, снятие с публикации, перевод в черновики, удаление.
|
||||
- Для каждого сообщения по клику «Подробнее» (внутри строки) открывается просмотр/редактирование с формой (см. ниже).
|
||||
- **Создание/редактирование (`/content/system-messages/create`, `/content/system-messages/:id/edit`):**
|
||||
- Форма с полями: заголовок, краткое описание, основной текст (Markdown/HTML), тип ответа (`inline` — показывать контент, `assistant_reply` — отправлять подготовленный ответ от ассистента), поле «Ответ ассистента» (активно при `assistant_reply`), тег важности (info/warning/danger), дата начала публикации (опционально), дата окончания (опционально), флаг отображения гостям.
|
||||
- Кнопки: «Сохранить как черновик», «Опубликовать». При редактировании — «Обновить», «Снять с публикации», «Удалить».
|
||||
- Проверки: обязательность заголовка и основного текста (или ответа ассистента в соответствующем режиме); валидация дат (окончание ≥ начало).
|
||||
- **Работа с таблицей системных сообщений:**
|
||||
- Колонки: чекбокс выбора, заголовок (кликабелен), статус, тип ответа, период действия, целевая аудитория (гости/авторизованные/все), дата создания, автор.
|
||||
- Массовые действия выполняются для выбранных строк; одиночные действия доступны через контекстное меню/кнопки в строке (редактировать, опубликовать, снять с публикации, удалить).
|
||||
|
||||
## 4. Требования к интерфейсу
|
||||
- В `ContentListView.vue` в сетку `management-blocks` добавить карточку «Системные сообщения» с кнопкой `Подробнее`. По дизайну карточка должна соответствовать существующим блокам (заголовок, описание, кнопка).
|
||||
- Страница с таблицей системных сообщений:
|
||||
- Использовать `BaseLayout` и локальные стили (`scoped`).
|
||||
- Таблица поддерживает сортировку, фильтрацию по статусам и поиск по заголовку.
|
||||
- Чекбоксы в шапке и строках для массового выбора; панель действий появляется при наличии выбора.
|
||||
- Кнопка «Создать сообщение» открывает форму создания.
|
||||
- Форма создания/редактирования:
|
||||
- Rich-text (минимум Markdown) с предпросмотром и счётчиками символов/слов.
|
||||
- Переключатель режима показа (`inline`/`assistant_reply`) с условным отображением поля «Ответ ассистента» (можно использовать `<transition>`).
|
||||
- Поле для выбора иконки/цвета по `severity` (статические пресеты).
|
||||
- Главная страница:
|
||||
- Системные сообщения отображаются в блоке чата как свернутые карточки (`system-message-collapsed`). При клике заголовок разворачивает карточку (`system-message-expanded`) или инициирует отправку ассистента (UI показывает «сообщение от ассистента»).
|
||||
- Для развёрнутых сообщений предусмотреть кнопку «Свернуть» и (опционально) «Отметить как прочитанное». Состояние хранить в `localStorage`.
|
||||
|
||||
## 5. Маршрутизация и компоненты
|
||||
- Добавить маршруты в `router/index.js`:
|
||||
- - `/content/system-messages/table` → `SystemMessagesTableView.vue`
|
||||
- - `/content/system-messages/create` → `SystemMessageCreateView.vue`
|
||||
- - `/content/system-messages/:id` → `SystemMessageDetailsView.vue` (просмотр)
|
||||
- - `/content/system-messages/:id/edit` → `SystemMessageEditView.vue`
|
||||
- При необходимости для модальных/вложенных маршрутов можно использовать дочерние маршруты или именованные вью.
|
||||
- Создать соответствующие Vue-компоненты в `src/views/content/system-messages/` и общий набор переиспользуемых элементов (таблица, форма, фильтры, массовые действия) в `src/components/system-messages/`.
|
||||
- Создать сервис `src/services/systemMessagesService.js` с методами для нового API.
|
||||
|
||||
## 6. Требования к API и данным
|
||||
- **Новая таблица** `system_messages` (PostgreSQL):
|
||||
- `id` (uuid, pk)
|
||||
- `title` (text, not null)
|
||||
- `summary` (text, nullable)
|
||||
- `content` (text, not null)
|
||||
- `reply_type` (enum: inline, assistant_reply; default inline)
|
||||
- `assistant_reply_content` (text, nullable; требуется при `reply_type = assistant_reply`)
|
||||
- `severity` (enum: info, warning, danger; default info)
|
||||
- `status` (enum: draft, published; not null)
|
||||
- `visible_for` (enum: all, authenticated, guests; default all)
|
||||
- `publish_at` (timestamp, nullable)
|
||||
- `expire_at` (timestamp, nullable)
|
||||
- `created_at`, `updated_at`
|
||||
- `created_by`, `updated_by` (references users/identities, nullable)
|
||||
- `slug` (text, уникальный, для адресации по ссылке при необходимости)
|
||||
- **REST API (Express):**
|
||||
- `GET /system-messages` (пагинация, фильтры по статусу, поиску)
|
||||
- `GET /system-messages/published` (фильтрация по дате/аудитории; публичная)
|
||||
- `GET /system-messages/:id` (доступ только авторизованным редакторам)
|
||||
- `POST /system-messages` (создание; права `MANAGE_LEGAL_DOCS`)
|
||||
- `PATCH /system-messages/:id` (редактирование; проверка статусов)
|
||||
- `DELETE /system-messages/:id` (мягкое удаление или физическое)
|
||||
- `POST /system-messages/:id/publish` и `POST /system-messages/:id/unpublish` (опционально, если не использовать PATCH)
|
||||
- Все защищённые эндпоинты должны требовать авторизацию и права (см. `permissions.js`, `usePermissions`).
|
||||
- Добавить новую миграцию (`backend/scripts/run-migrations.js`) и ORM/SQL-файлы в существующем формате проекта.
|
||||
- Обновить логирование и обработку ошибок `winston`, добавить валидацию входных данных (например, `Joi` или кастомную).
|
||||
|
||||
## 7. Логика отображения на фронтенде
|
||||
- `HomeView.vue`:
|
||||
- При инициализации запрашивать опубликованные системные сообщения (учитывая текущую аудиторию) через `systemMessagesService.getPublished({ includeExpired: false })`.
|
||||
- Кэшировать ответ в сторе или локальном состоянии; при подписке на WebSocket можно предусмотреть `system_message_updated` событие.
|
||||
- Добавить обработчик раскрытия: по клику на заголовок либо подставлять полный текст сообщения (`inline`), либо инициировать цепочку отправки `assistant_reply_content` в чат (без участия пользователя).
|
||||
- Добавить обработчик скрытия сообщения, сохраняющий идентификатор в `localStorage` и фильтрующий локально.
|
||||
- `ContentListView.vue`:
|
||||
- Добавить новую карточку «Системные сообщения» в сетку `management-blocks`, не нарушая адаптивную сетку (обновить `grid-template-columns` при необходимости).
|
||||
- Страницы списков:
|
||||
- Реализовать пагинацию (lazy loading или обычная), сортировку по дате.
|
||||
- Для статусов использовать цветовые бейджи (info/warning/danger).
|
||||
- Форма создания:
|
||||
- Поддерживать сабмит через `yarn lint`-friendly код; валидация на клиенте (например, с использованием `computed`/`watch`).
|
||||
- При успешной публикации перенаправлять на список опубликованных; при сохранении черновика — оставаться на странице с уведомлением.
|
||||
|
||||
## 8. Требования к безопасности и доступу
|
||||
- Сценарии создания/изменения доступны только ролям с `PERMISSIONS.MANAGE_LEGAL_DOCS`.
|
||||
- Публичный список (`GET /system-messages/published`) фильтрует по:
|
||||
- `status === 'published'`.
|
||||
- `publish_at <= now()` (или null).
|
||||
- `expire_at > now()` (или null).
|
||||
- `visible_for` проверяется на основе контекста (гость/авторизованный).
|
||||
- При выдаче через чат скрывать поля `created_by`, `updated_by`, внутренние метки.
|
||||
- Учитывать CSRF, CORS, rate-limit (перенять конфиг из существующих роутов).
|
||||
|
||||
## 9. Тестирование
|
||||
- **Backend:**
|
||||
- Юнит-тесты для CRUD в `tests/system-messages/*.test.js` (Mocha).
|
||||
- Проверка фильтров publish/expire и доступа по ролям.
|
||||
- Тест миграции (откат/применение).
|
||||
- **Frontend:**
|
||||
- Юнит-тесты Vue (если настроены) для основных компонентов (форма, список).
|
||||
- E2E (при наличии) — сценарий: создание черновика → публикация → отображение на главной.
|
||||
- **Регрессионные проверки:**
|
||||
- Убедиться, что существующий список контента и чат ассистента продолжают работать без ошибок (`yarn lint`, `yarn test`).
|
||||
|
||||
## 10. Интеграция и DevOps
|
||||
- Обновить `docker-compose.yml` при необходимости (например, добавить миграции в стартовый процесс).
|
||||
- Убедиться, что новые переменные окружения (если будут, например, лимиты количества сообщений) документированы в `README.md` и `setup-instruction.md`.
|
||||
- Добавить скрипт seeding (опционально) для тестовых системных сообщений.
|
||||
|
||||
## 11. Открытые вопросы
|
||||
- Нужно ли хранить историю публикаций (auditing)? Если да — предусмотреть таблицу `system_messages_history`.
|
||||
- Требуется ли поддержка многоязычности? (При отсутствии — ограничение на один язык, RU).
|
||||
- Нужно ли уведомление по WebSocket при появлении новых сообщений? (Если да — добавить событие в `wsHub.js`).
|
||||
|
||||
## 12. Итоговые артефакты
|
||||
- Backend: новые маршруты, контроллеры, сервис, миграция.
|
||||
- Frontend: новые страницы и сервис, обновлённые маршруты и компоненты `HomeView`, `ContentListView`.
|
||||
- Документация: обновление `README.md` (раздел запуск), `application-description.md` или `tables-system.md` при изменении схем, настоящая спецификация.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user