Ассистент SI внутри KamoCRM читает собственные документы арендатора, прежде чем отвечать. Для выполнения этой работы мы сами запускали всю цепь: сервер модели, встраиваемую модель, векторную базу данных, распознавание речи, синтез речи и машинный перевод, все внутри нашего кластера, все на данных, которые никогда его не покидают.
| Мера | Стоимость | Источник | Измеряемые |
|---|---|---|---|
| Службы вывода и речи на собственном сервере | 6 (model server, embedding model, vector database, speech recognition, speech synthesis, machine translation) | kubectl get deployments,statefulsets --all-namespaces | |
| Специальные службы поиска и векторные услуги в платформе | 3 (RAG service, vector service, embedding model) | kubectl get deployments -n kamo | |
| Языки, обслуживаемые конвейером переводов на собственном сервере | 22 | messages/*.json in the marketing site repository | |
| Коэффициент ошибки оптического распознавания символов | 0.180 CER | ocrservice evaluation run |
Чему здание нас научило
Вызов хостинга модели API - это работа на полдень, и мы делаем это тоже, где это правильный ответ. Запуск вывода самостоятельно - это другая дисциплина, и это то, что клиенты спрашивают о моменте, когда их данные являются конфиденциальными - здравоохранение, финансы, право, все, что подлежит обязательству резиденции данных. В этот момент "мы отправляем его третьей стороне" заканчивает разговор, и только команда, которая фактически работала альтернатива может продолжить его.
Разделение документов на кусочки, чтобы извлеченный отрывок был самодостаточным. Решение, что запрос означает, когда пользователь напечатал четыре слова. Приведение извлеченного текста в соответствие с разрешениями, чтобы помощник не мог отвечать из документа, который человеку, запрашивающему, не разрешено читать— это легко ошибиться, и такая ошибка заканчивается письмом от регулятора, а не от системы отслеживания ошибок. В нашей базе знаний есть уровни видимости, которые слой поиска должен соблюдать точно так же, как и считывания, ориентированные на человека, в двух отдельных местах, которые должны совпадать.
Мы также запускаем распознавание и синтез речи, а также машинный перевод на двадцати двух языках. Конвейер перевода научил нас больше всего, в основном, безмолвным сбоям: пакетное обновление, запущенное без транзакции, было успешным на бумаге и ничего не написало для двадцати одного языка, и потому что ничего не бросалось, никто не заметил это в течение длительного времени. Безмолвный сбой является определяющей опасностью пакетной работы SI, и мы теперь инструмент для него по умолчанию.
Построен с
- Ollama
- Qdrant
- Whisper
- Coqui TTS
- LibreTranslate
- Python
- Java
- Spring Boot
Для чего это нас квалифицирует
Расскажите нам, что вы пытаетесь сделать
Обычно достаточно короткого разговора, чтобы узнать, являемся ли мы подходящими людьми. Если нет, мы скажем вам об этом и покажем вам куда-нибудь лучше.
