CoolFace
Datasetpublic

NPCI/nemo-gym-indian-banking

This is NPCI/nemo-gym-indian-banking — the dataset for the indian_banking resources server in NVIDIA NeMo Gym: 300 synthetic multi-turn Indian retail-banking customer-support tasks (250 train / 50 validation), the 197-customer synthetic bank database and the 59-article knowledge base the environment loads at startup. NeMo Gym Indian Banking Agent Tasks Tool-calling customer-service tasks for an Indian retail-banking assistant, in the NVIDIA NeMo Gym agent-input JSONL format.… See the full description on the dataset page: https://huggingface.co/datasets/NPCI/nemo-gym-indian-banking.

sourceHugging Faceapache-2.0updated 18d agoView on Hugging Face
3likes409downloads
Dataset Card

This is `NPCI/nemo-gym-indian-banking` — the dataset for the indian_banking resources server in NVIDIA NeMo Gym: 300 synthetic multi-turn Indian retail-banking customer-support tasks (250 train / 50 validation), the 197-customer synthetic bank database and the 59-article knowledge base the environment loads at startup.

NeMo Gym Indian Banking Agent Tasks

Tool-calling customer-service tasks for an Indian retail-banking assistant, in the NVIDIA NeMo Gym agent-input JSONL format. Each row is one task: a system prompt (agent instructions + bank policy), the 34 banking tool schemas, a simulated-customer scenario, and the evaluation criteria the indian_banking resources server uses to compute the reward after a rollout.

The dataset is consumed by the resources_servers/indian_banking server in NeMo Gym. The db.json customer database and kb.json knowledge base the server loads at startup ship in this repository alongside the splits (agent_instruction.txt and policy.md ship inside the Gym repository). gym dataset collate --download fetches the splits; download db.json and kb.json into resources_servers/indian_banking/data/ before serving.

Everything here is synthetic

No real customer, account, card, loan, or personal data is present. Every customer profile, account number, card number, transaction, name, address, phone number, e-mail and identifier in the customer database and in these tasks is synthetic. Any resemblance to real persons or accounts is coincidental.

Every bank, insurer, merchant, employer, telecom, card network and brand name is fictional (for example Streamvora, Vaylo Postpaid, Harvexa, Kalvira Life, Jeevanika Bima, Zyphrax / Orvelix / Swarnix card networks). Public institutions and government schemes are referred to by their real names (RBI, DICGC, NPCI, PPF, SSY, SCSS, APY, PMJJBY/PMSBY, PMJDY, Income Tax Act, state electricity boards) because the banking rules the agent must follow are defined by them. E-mail addresses use example.com / example.in; phone numbers use an obviously synthetic placeholder range. The knowledge-base articles describe generic Indian banking products and processes for a fictional bank; every article ends with the note "Figures are illustrative for a synthetic environment; verify current regulations."

Splits

splitrowsnotes
train25043 task families; 155 rl_* core tool-use tasks (all 50 rl scenario templates covered) + 95 behavioural tasks
validation50disjoint from train; 19 task families, all 6 reward bases represented; the 5 committed example.jsonl rows are a subset of this split

There is no separate test split. train and validation are disjoint by task_id and were drawn from a larger pool with a seeded, stratified selection that covers every task family / reward-basis combination present in the pool, spreads customer ages (senior citizens are capped at about 19% of tasks), professions, regions and name communities, and excludes scenarios with stereotyped framing.

Reward-basis distribution (which signals the reward is computed from):

reward_basistrainvalidation
ACTION+DB15531
ACTION+DB+NL_ASSERTION4911
ACTION+COMMUNICATE+DB+NL_ASSERTION224
DB+NL_ASSERTION111
ACTION+NL_ASSERTION72
ACTION+COMMUNICATE+NL_ASSERTION61

Row schema

One JSON object per line. Top-level keys:

fieldtypedescription
responses_create_paramsobjectOpenAI Responses-API style create params consumed by the policy.
responses_create_params.inputlistExactly one message: {"role": "system", "content": "<instructions>...</instructions>\n<policy>...</policy>"}. The first user turn is injected at runtime from opening_message.
responses_create_params.toolslist[34]Function-tool schemas (type: "function", name, description, parameters). Identical across all rows.
responses_create_params.parallel_tool_callsboolAlways false.
task_idstringUnique task id. Prefix before the first _ is the task family (e.g. rl, kb, refuse, trap, mt2).
customerstringActive, already-authenticated customer id (CUST_########) in db.json.
user_scenarioobjectSimulated-customer specification.
user_scenario.personastringShort behavioural persona for the user simulator (not part of the reward).
user_scenario.instructionsobjectdomain ("banking"), reason_for_call, known_info, unknown_info, task_instructions (the simulator ends the call with ###STOP###).
evaluation_criteriaobjectReward specification.
evaluation_criteria.actionslistExpected tool calls: {action_id, name, arguments, compare_args}; compare_args names which argument keys are compared, and a gold call that is expected to error carries expect_error: true.
evaluation_criteria.communicate_infolist[string]Strings the agent must convey to the user (e.g. a policy number).
evaluation_criteria.nl_assertionslist[string]Natural-language assertions checked by an LLM judge.
evaluation_criteria.reward_basislist[string]Subset of ACTION, DB, COMMUNICATE, NL_ASSERTION; the reward is the conjunction of the listed checks.
evaluation_criteria.max_tool_calls / .require_transferint / boolOptional deterministic criteria: a cap on tool calls, and a requirement that the episode ends in transfer_to_human_agents.
initial_stateobjectinitialization_data.agent_data.active_customer selects the episode customer; initialization_data.user_data, initialization_actions and message_history are null on most rows — 114 tasks pre-shape the episode DB with initialization actions and carry a seed message history.
opening_messagestringThe customer's first utterance; non-empty for every row.

The 34 tools: searchknowledgebase, getaccountbalance, getaccountdetails, gettransactionhistory, getfddetails, getrddetails, getdepositloanrates, calculatefdmaturity, calculaterdmaturity, createfd, createrd, getdepositclosurequote, closedeposit, updatedepositrenewal, getloandetails, getloanforeclosurequote, calculateemi, getgoldrate, calculategoldloanltv, getcarddetails, togglecardfreeze, blockcard, setcardcontrols, showmandates, cancelmandate, stopchequepayment, requestchequebook, requestduplicatestatement, updateaddress, raiserequest, getrequeststatus, getinsurancedetails, getproductsandoffers, transfertohuman_agents.

Provenance and validation

  • Synthetic, validated programmatically; every row carries its opening message.
  • Every task's gold actions were replayed through the resources server's deterministic engine against the shipped db.json / kb.json and score strict == 1.0 under the server's reward.
  • Reward semantics follow the tau2-bench style ACTION / DB / COMMUNICATE / NL_ASSERTION checks (order-strict action matching is a server-side setting; see the server README).

Usage with NeMo Gym

yaml
datasets:
  - name: train
    type: train
    jsonl_fpath: resources_servers/indian_banking/data/train.jsonl
    source:
      type: huggingface
      repo_id: NPCI/nemo-gym-indian-banking
      artifact_fpath: train.jsonl
    license: Apache 2.0
python
from datasets import load_dataset
ds = load_dataset("NPCI/nemo-gym-indian-banking")  # train / validation

License

Apache 2.0.

Synthetic data notice

Every customer, account, card, deposit, loan, mandate, transaction, address, e-mail address, phone number, employer and scenario in this benchmark is synthetic, generated for evaluation purposes. The bank itself is fictional. Any resemblance to real persons, living or dead, or to actual accounts, products or events is coincidental. Where names of real companies, payees or institutions appear in the data, they are used only as generic references to make scenarios read naturally; nothing in this repository describes their actual products, customers, transactions or policies, and no affiliation or endorsement is implied. The knowledge-base articles paraphrase publicly available regulatory and product information for the sole purpose of grounding the simulated agent; they are not advice and should not be relied upon.

Disclaimer

NPCI/nemo-gym-indian-banking is a synthetic dataset developed for research, training, testing and benchmarking purposes only.

All tasks, customer profiles, account details, transaction records, credentials, and other data included in the dataset are synthetic and have been artificially generated. The dataset does not contain real customer information and is not intended to represent any actual individual, account, transaction, or institution.

The dataset, associated evaluation criteria, scoring methodologies, documentation, and outputs are provided on an "as is" basis without warranties of any kind, whether express or implied, including any warranties of accuracy, completeness, fitness for a particular purpose, merchantability, or non-infringement.

Nothing contained in this repository constitutes legal, regulatory, compliance, financial, banking, risk management, cybersecurity, or professional advice. Users are solely responsible for evaluating the suitability of the dataset and any outputs generated through its use.

The dataset is intended solely for the training and evaluation of artificial intelligence systems. It should not be relied upon for making operational, customer-facing, regulatory, credit, fraud, security, or other production decisions.

To the maximum extent permitted by applicable law, the authors, contributors, copyright holders, licensors, maintainers, and distributors of the dataset shall not be liable for any direct, indirect, incidental, consequential, special, exemplary, punitive, or other damages of any kind arising out of or related to the use of, reliance upon, or performance of the dataset, associated evaluation criteria, documentation, scoring mechanisms, or any outputs generated through its use, whether in contract, tort (including negligence), strict liability, or otherwise, even if advised of the possibility of such damages.

References to banking products, services, processes, policies, customer interactions, or regulatory concepts are included solely for training and testing purposes and should not be interpreted as reflecting actual business practices, regulatory requirements, or the views of any financial institution.

Any trademarks, service marks, trade names, logos, or brand names referenced in the dataset remain the property of their respective owners. Such references are for identification and testing purposes only and do not imply sponsorship, endorsement, affiliation, or approval by any third party.