CoolFace
Datasetpublic

PruhaNLP/1C-Ebench

C1-Bench — поиск кода 1С / BSL по запросу на русском Бенчмарк для оценки embedding-моделей: по тексту вопроса на русском языке нужно найти релевантный фрагмент кода на встроенном языке 1С (BSL) или языке запросов. Каждый запрос имеет ровно один эталонный документ. Данные реальные — вопросы и код взяты из практики разработчиков 1С, а не сгенерированы синтетически. Перед публикацией прошли очистку (PII, мусор, дубликаты) — подробности ниже. Срезы (subsets)… See the full description on the dataset page: https://huggingface.co/datasets/PruhaNLP/1C-Ebench.

sourceHugging Faceotherupdated 4mo agoView on Hugging Face
4likes80downloads
Dataset Card

C1-Bench — поиск кода 1С / BSL по запросу на русском

Бенчмарк для оценки embedding-моделей: по тексту вопроса на русском языке нужно найти релевантный фрагмент кода на встроенном языке 1С (BSL) или языке запросов. Каждый запрос имеет ровно один эталонный документ.

Данные реальные — вопросы и код взяты из практики разработчиков 1С, а не сгенерированы синтетически. Перед публикацией прошли очистку (PII, мусор, дубликаты) — подробности ниже.

Срезы (subsets)

СрезЗапросовОписание
forum2883Вопросы в стиле форумных обсуждений: длинный текст запроса, зачастую вместе с кодом, требующим исправления. Фрагмент кода сопоставимой длины.
fastcode530Короткий запрос (часто одна строка или название сниппета) и длинный готовый фрагмент кода — функции, обработки, шаблоны юнит-тестов, печатные формы.

Срезы независимы: идентификаторы и пары query→code внутри каждого среза свои. Объединённый срез не поставляется — при необходимости два среза объединяются с переназначением _id для глобальной уникальности.

Структура

.
├── forum/test-00000-of-00001.parquet
└── fastcode/test-00000-of-00001.parquet

Одна задача (code retrieval), один split (test), два сабсета по источнику. Каждый сабсет — плоская таблица пар «вопрос → код».

Поля

ПолеТипОписание
idstringУникальный id пары в пределах среза
questionstringТекст вопроса на русском
codestringЭталонный фрагмент кода (BSL / язык запросов 1С)

Один релевантный документ на запрос. Для retrieval-оценки корпус собирается из всех code среза, релевантность — по совпадению id.

Очистка и подготовка

Бенчмарк — производный очищенный срез исходного корпуса вопросов и ответов 1С. Этапы:

  • —Извлечение кода. Из ответов берутся только блоки кода с проверкой, что это BSL или язык запросов 1С, — текстовые комментарии и оффтоп отбрасываются.
  • —Удаление PII. Многоступенчатый scrubbing (scrubadub + регулярные выражения + Natasha):
  • —e-mail → [EMAIL], телефоны (форматы +7 / 8) → [PHONE];
  • —IP-адреса → [IP] с защитой от ложных срабатываний на номерах версий 1С (1.0.0.51 и т.п. не редактируются);
  • —пути файловой системы (Windows, UNC, UNIX) → [PATH];
  • —ФИО и имена в присваиваниях (ИмяПользователя, ФИО, Подписант, …) → [PERSON] со списком стоп-слов, чтобы не портить идентификаторы 1С.
  • —Если персональные данные остаются в самом вопросе — строка удаляется целиком.
  • —Фильтрация мусора — слишком короткие, пустые и нерелевантные фрагменты убираются.
  • —Дедупликация по хешу кода — повторяющиеся эталоны исключаются.

Происхождение

Производный очищенный срез датасета `arefaste/1C_Forums` (вопросы и решения по 1С). Срез forum — обсуждения c Infostart, срез fastcode — каталог сниппетов FastCode.

Лицензия Hub: other — учитывайте условия исходного датасета и площадок-источников.

Загрузка

python
from datasets import load_dataset

# сабсет forum или fastcode
ds = load_dataset("PruhaNLP/C1-Bench", "forum", split="test")

row = ds[0]
print(row["id"], row["question"][:100], row["code"][:200])

Ограничения

  • —Только русские запросы; код — фрагменты из ответов, не целые конфигурации.
  • —Один gold на запрос; сложные треды сведены к одной паре.
  • —Возможны артефакты редакции (например, [PERSON] на идентификаторе 1С).
  • —Качество «решений с форума» не верифицировано экспертами.

Правовая информация и дисклеймер

Бенчмарк собран исключительно для исследовательских и образовательных целей (оценка качества embedding-моделей) и распространяется «как есть», без каких-либо гарантий.

  • —Что внутри. Только короткие фрагменты кода на встроенном языке 1С (BSL) и языке запросов, опубликованные авторами в открытых сообществах и тематических площадках. Это пользовательский контент с публичных обсуждений, а не части дистрибутива.
  • —Чего внутри нет. Дистрибутивов, бинарных файлов, файлов информационных баз, типовых конфигураций и иного проприетарного кода фирмы «1С» или её партнёров. Материалы не получены путём декомпиляции, дизассемблирования, извлечения из информационной базы или обхода технических средств защиты.
  • —Товарный знак. «1С», «1С:Предприятие» и связанные обозначения — товарные знаки их правообладателя. Проект не аффилирован с фирмой «1С», не одобрен и не спонсируется ею; названия используются исключительно для описания предметной области (номинативное использование).
  • —Права авторов. Права на конкретные фрагменты кода принадлежат их авторам. Они включены в минимально необходимом объёме как короткие цитаты для научной задачи (информационный поиск). Перед коммерческим использованием убедитесь в наличии прав на исходные материалы.
  • —Лицензия. Метка лицензии набора — other: пользователь самостоятельно отвечает за соблюдение условий исходных площадок, авторских прав и применимого законодательства при использовании данных.
  • —Запрос на удаление (takedown). Если вы правообладатель и считаете, что какой-либо фрагмент включён неправомерно, — сообщите сопровождающим набора, и спорный материал будет оперативно удалён.

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

Контакт для связи

konstphx@gmail.com

Цитирование

bibtex
@dataset{pruhanlp_c1_bench,
  author       = {PruhaNLP},
  title        = {C1-Bench: 1C/BSL code retrieval benchmark},
  year         = {2026},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/datasets/PruhaNLP/1C-bench}}
}

Исходный корпус:

bibtex
@misc{arefaste2025,
  title        = {Arefaste: Parsed dataset for 1C},
  author       = {arefaste},
  year         = {2025},
  publisher    = {Hugging Face},
  howpublished = {\url{https://huggingface.co/datasets/arefaste/1C_Forums}}
}