CoolFace
Datasetpublic

Somtharu181coder/number_of_death_by_sex_hermes_calling

Nepal Education Enrollment Statistics – Hermes Function-Calling Dataset 1. Overview This dataset contains 16,760 single-turn function-calling records in Hermes / ShareGPT conversation format. Each record pairs a natural-language request for education enrollment statistics with the exact tool call that satisfies it. Tool-call arguments are grounded in the administrative hierarchy of an Excel source workbook (Annex 4 – Enrollment Details): every province, district… See the full description on the dataset page: https://huggingface.co/datasets/Somtharu181coder/number_of_death_by_sex_hermes_calling.

sourceHugging Faceotherupdated 6d agoView on Hugging Face
0likes45downloads
Dataset Card

Nepal Education Enrollment Statistics – Hermes Function-Calling Dataset

1. Overview

This dataset contains 16,760 single-turn function-calling records in Hermes / ShareGPT conversation format. Each record pairs a natural-language request for education enrollment statistics with the exact tool call that satisfies it. Tool-call arguments are grounded in the administrative hierarchy of an Excel source workbook (Annex 4 – Enrollment Details): every province, district, and local-level value appearing in a request is reproduced verbatim in the corresponding tool call.

The dataset is designed for the Gymkhana multilingual tool-use environment and supports supervised fine-tuning and evaluation of tool-calling behavior, in particular faithful argument copying and metric selection.

Scope note. The dataset contains tool requests only. It does not contain tool responses or enrollment figures.

2. Dataset at a Glance

PropertyValue
Fileeducation_numberofdeathysex_hermes.jsonl
FormatJSON Lines, UTF-8, LF line endings, no BOM
Records16,760
File size51,870,984 bytes (≈ 49.5 MiB); ≈ 3.1 KB per record
Splittrain (single split)
Category / Subcategory / TaskEducation / Enrollment Statistics / Education Statistics
Target-language tagne-Deva (all records)
Tool schemaOne function: get_education_statistics
Turns per record3 (system → human → gpt)
Tool calls per recordExactly 1
Generatorexcel_to_hermes_grounded.py

3. Data Structure

3.1 Field Reference

FieldTypeDescription
idstringDeterministic UUID (version 5); unique across the file.
conversationslist[object]Ordered turns; each has from (system, human, gpt) and value.
toolsstringJSON-serialized tool schema (compact). Identical in every record.
categorystringTop-level domain (Education).
subcategorystringEnrollment Statistics.
taskstringEducation Statistics.
target_languagestringLanguage/script tag for the multilingual environment (ne-Deva).
source_querystringSource-language request text; identical to the human turn.
expected_tool_callsstringJSON-serialized list holding the reference tool call.

3.2 Tool Schema

yaml
name: get_education_statistics
description: >-
  Retrieve education statistics for a specified province, district, and local level.
  The metrics field specifies which education statistics are requested.
parameters:
  province:    { type: string, required: true }
  district:    { type: string, required: true }
  local_level: { type: string, required: true }
  metrics:
    type: array
    minItems: 1
    items: { type: string, enum: [a_male, b_female, rowtotal] }
    required: true
additionalProperties: false
Metric IDMeaning
a_maleMale enrollment
b_femaleFemale enrollment
rowtotalTotal enrollment

3.3 Request Template

Every human turn follows a single template:

text
Please provide the {metric} statistics for local level [{local_level}], district [{district}], and province [{province}]. Keep all values inside [] exactly unchanged.

The gpt turn is a single Hermes tool call in compact JSON:

text
<tool_call>
{"name":"get_education_statistics","arguments":{"province":"…","district":"…","local_level":"…","metrics":["…"]}}
</tool_call>

3.4 Example Record

json
{
  "id": "50b80e24-392c-55bd-9a08-48b120c3b513",
  "conversations": [
    {"from": "system", "value": "You are a function calling AI model. … <tools>\n[…]\n</tools>\nWhen you decide to call a function, output the function call inside <tool_call> and </tool_call> tags as valid JSON."},
    {"from": "human",  "value": "Please provide the b_female statistics for local level [NEPAL], district [NEPAL], and province [NEPAL]. Keep all values inside [] exactly unchanged."},
    {"from": "gpt",    "value": "<tool_call>\n{\"name\":\"get_education_statistics\",\"arguments\":{\"province\":\"NEPAL\",\"district\":\"NEPAL\",\"local_level\":\"NEPAL\",\"metrics\":[\"b_female\"]}}\n</tool_call>"}
  ],
  "tools": "[{\"type\":\"function\",\"function\":{\"name\":\"get_education_statistics\", …}}]",
  "category": "Education",
  "subcategory": "Enrollment Statistics",
  "task": "Education Statistics",
  "target_language": "ne-Deva",
  "source_query": "Please provide the b_female statistics for local level [NEPAL], district [NEPAL], and province [NEPAL]. Keep all values inside [] exactly unchanged.",
  "expected_tool_calls": "[{\"name\":\"get_education_statistics\",\"arguments\":{…}}]"
}

4. Static Audit Report

4.1 Methodology

The audit is static: it inspects the released file only, without executing any tool or model. All 16,760 lines were parsed with a strict JSON parser, and each record was checked for schema conformity, internal consistency between fields, argument grounding, tool-call validity, serialization hygiene, and content uniqueness. Results below are exact counts, not samples.

4.2 Summary of Results

#CheckResultStatus
1Lines parsed as valid JSON (blank or malformed lines)16,760 / 16,760 (0)Pass
2Uniform key set across all records9 keys, 100 %Pass
3id uniqueness16,760 unique; all UUID v5Pass
4Turn structure system → human → gpt100 %Pass
5Tool schema identical across records1 distinct schemaPass
6Embedded <tools> block in system turn equals tools field0 mismatchesPass
7gpt turn format (<tool_call> wrapper, compact JSON)100 % conformantPass
8gpt tool call equals expected_tool_calls0 mismatchesPass
9Exactly one tool call per record100 %Pass
10source_query equals human turn0 mismatchesPass
11Bracketed values in query equal tool-call arguments (local level, district, province)16,760 / 16,760Pass
12Requested metric in query equals metrics argument0 mismatchesPass
13Argument key order (province, district, local_level, metrics)100 %Pass
14Leading/trailing whitespace in any turn0Pass
15Encoding hygiene (LF endings, no BOM, trailing newline)CleanPass
16Distinct records by conversation content2,512 of 16,760Finding F1
17Script of human turn vs. target_language tag0 Devanagari characters; all ASCIIFinding F2
18Naming consistency of administrative unitsMixed casing/format variantsFinding F3

4.3 Distribution Profile

Metric balance. The three metrics are close to evenly distributed.

MetricRecordsShare
b_female5,65133.72 %
a_male5,57233.25 %
rowtotal5,53733.04 %

Geographic hierarchy. The file covers 838 distinct location tuples, each contributing exactly 20 records.

LevelLocation tuplesRecordsShare of records
National aggregate (NEPAL / NEPAL / NEPAL)1200.12 %
Province aggregates (province name in upper case, repeated at all three levels)71400.84 %
District aggregates (local level ends with (TOTAL))771,5409.19 %
Local units (rural municipalities, municipalities, sub-metropolitan and metropolitan cities)75315,06089.86 %
Total83816,760100 %

The 753 local units correspond to 736 units named … Gaunpalika / … Municipality and 17 metropolitan or sub-metropolitan cities.

Text length. human turns range from 146 to 216 characters (median 168). The system prompt is identical in all records.

4.4 Findings

IDSeverityFindingImpactRecommendation
F1MediumContent-level duplication. Only 2,512 distinct conversations exist across 16,760 records (one per location–metric pair present). 14,248 records (85.02 %) repeat another record's content and differ only in id. Group sizes range from 1 to 16 (most commonly 5–8).Inflates dataset size, over-weights repeated pairs during training, and risks train/eval leakage if the file is split by record.De-duplicate on the conversations content before splitting, or split by location-metric key. Retain duplicates only if intentional up-sampling is desired.
F2MediumLanguage tag versus content. All records carry target_language = ne-Deva, yet every human and gpt value is ASCII English/Latin text; no Devanagari characters are present. source_query is identical to the human turn, indicating no translation has been applied in this file.Consumers that assume Nepali-script user turns will receive English text.Confirm whether the Gymkhana environment translates at runtime using target_language. If the file is meant to be pre-translated, translate the request text while leaving bracketed values untouched.
F3LowNaming variants inherited from the source. Province appears as Province-1 in local rows but PROVINCE - 1 in aggregate rows; other provinces appear in both title case and upper case; district aggregates use upper-case district names (e.g., LALITPUR) while local rows use title case. Source spellings such as Metropolitian are retained.Case-sensitive joins across levels will not match. The verbatim form is intentional (see §5.3).Normalize only in downstream analytics, never in the grounded arguments.
F4LowPartial metric coverage for two locations. Molung Gaunpalika (Province-1 / Okhaldhunga) has no a_male record; Gaidahawa Gaunpalika (Lumbini / Rupandehi) has no rowtotal record. All other 836 locations cover all three metrics.Minor evaluation imbalance.Add the missing pairs if full coverage is required.
F5InformationalRedundant tool-schema serialization. The schema is stored in both the system turn and the tools field in every record.Adds size overhead; supports both training and evaluation consumers.Retain unless storage is a constraint.
F6InformationalSingle-turn, request-only design. No tool-response or final-answer turns are present, and no statistical values appear in the file.Suitable for tool-call generation; unsuitable for response-synthesis training.None required; noted for scope clarity.

4.5 Machine-Readable Audit Manifest

yaml
audit:
  file: education_numberofdeathysex_hermes.jsonl
  type: static
  bytes: 51870984
  records: 16760
  parse_failures: 0
  schema:
    keys: [id, conversations, tools, category, subcategory, task, target_language, source_query, expected_tool_calls]
    uniform_keyset: true
    turn_pattern: [system, human, gpt]
  identifiers:
    unique_ids: 16760
    uuid_version: 5
  tools:
    distinct_schemas: 1
    function: get_education_statistics
    system_block_matches_tools_field: true
  tool_calls:
    per_record: 1
    gpt_equals_expected: true
    grounding_mismatches: 0
    metric_mismatches: 0
  metrics:
    b_female: 5651
    a_male: 5572
    rowtotal: 5537
  locations:
    distinct_tuples: 838
    records_per_tuple: 20
    national: 1
    province_aggregates: 7
    district_aggregates: 77
    local_units: 753
  uniqueness:
    distinct_conversations: 2512
    redundant_records: 14248
    redundancy_ratio: 0.8502
  language:
    target_language_tag: ne-Deva
    devanagari_characters_in_text: 0
  hygiene:
    line_endings: LF
    bom: false
    trailing_newline: true
    whitespace_padded_turns: 0
  findings: [F1, F2, F3, F4, F5, F6]

4.6 Reproducing the Core Checks

python
import json, re, collections as C

rows = [json.loads(l) for l in open("education_numberofdeathysex_hermes.jsonl", encoding="utf-8")]
assert len({r["id"] for r in rows}) == len(rows)

grounded = 0
for r in rows:
    q = r["conversations"][1]["value"]
    args = json.loads(r["expected_tool_calls"])[0]["arguments"]
    brackets = re.findall(r"\[([^\]]*)\]", q)
    grounded += brackets[:3] == [args["local_level"], args["district"], args["province"]]

distinct = len({json.dumps(r["conversations"], sort_keys=True, ensure_ascii=False) for r in rows})
print(f"grounded={grounded}/{len(rows)}  distinct_conversations={distinct}")

5. Data Construction and Processing

The processing applied by excel_to_hermes_grounded.py is minor and structural. The steps below are those verifiable from the released file.

5.1 Source and Record Construction

  1. 1.Source. Administrative units (national, province, district, local level) and the three enrollment metrics are taken from the Annex 4 – Enrollment Details workbook.
  2. 2.Templating. Each record is built from one fixed request template (§3.3), populated with a location tuple and a single metric.
  3. 3.Tool-call synthesis. The reference tool call is generated directly from the same tuple and metric, so query and call cannot diverge. The call is stored twice: as the gpt turn (Hermes <tool_call> block) and as expected_tool_calls (JSON string).
  4. 4.Schema embedding. The tool schema is embedded in the system turn between <tools> tags and in the tools field.
  5. 5.Metadata. category, subcategory, task, and target_language are attached as constant fields; source_query mirrors the human turn.

5.2 Serialization Conventions

AspectConvention
EncodingUTF-8, LF, one JSON object per line, trailing newline
Tool-call JSONCompact separators (, and :), fixed key order
Nested JSON fieldstools and expected_tool_calls stored as JSON strings
IdentifiersUUID version 5 (deterministic, namespace-based)
Role labelsShareGPT-style: system, human, gpt

5.3 Value Preservation

  • —Location names are copied verbatim from the workbook, including capitalization, hyphenation, parenthetical (TOTAL) markers, and source spellings.
  • —The request explicitly instructs the model to keep bracketed values unchanged, and the audit confirms 100 % agreement between bracketed values and tool-call arguments.
  • —No case-folding, stripping, transliteration, or spelling correction is applied to grounded values.

5.4 Sampling Structure

Each of the 838 location tuples contributes exactly 20 records, with the metric varying across those records. As a consequence, location–metric pairs recur several times (see Finding F1).

6. Intended Use and Limitations

Intended use

  • —Supervised fine-tuning of models for schema-conformant function calling.
  • —Evaluation of argument fidelity (verbatim copying of bracketed values) and metric selection.
  • —Testing multilingual tool-use pipelines within the Gymkhana environment.

Limitations

  • —Single tool, single turn, and a single request template; linguistic diversity is intentionally low.
  • —No tool responses, numerical statistics, or answer-synthesis turns.
  • —Substantial duplication (Finding F1) and an unresolved language tag (Finding F2) should be addressed before use in benchmarking or in train/validation splitting.
  • —Not suitable as a source of enrollment statistics.

7. Licensing and Attribution

The dataset is derived from the Annex 4 – Enrollment Details workbook. The license field is set to other pending confirmation of the source workbook's terms; users should verify the applicable terms before redistribution.

8. Citation

bibtex
@dataset{nepal_education_enrollment_hermes,
  title  = {Nepal Education Enrollment Statistics -- Hermes Function-Calling Dataset},
  year   = {2026},
  note   = {Generated with excel_to_hermes_grounded.py for the Gymkhana multilingual tool-use environment}
}