Skip to content
advancedsurvey

How to annotate BigCodeBench Human Baseline Evaluation

Evaluate agent-generated code solutions for BigCodeBench tasks. Annotators assess correctness against test suites, rate task complexity, evaluate code quality, and provide notes on the solution approach.

Try it live — no install

Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.

Run live in your browser

Get This Design

View on GitHub(opens in a new tab)

Clone or download from the repository

Quick start:

bash
git clone https://github.com/davidjurgens/potato-showcase.git
cd potato-showcase/agentic/bigcodebench-human-baseline
potato start config.yaml

Configuration File

This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.

yaml
# BigCodeBench Human Baseline Evaluation
# Based on "BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions" (Zhuo et al., ICLR 2025)
# Task: Evaluate agent-generated code solutions for correctness, complexity, and quality

annotation_task_name: "BigCodeBench Human Baseline Evaluation"
task_dir: "."

data_files:
  - sample-data.json
item_properties:
  id_key: "id"
  text_key: "text"

output_annotation_dir: "annotation_output/"
export_annotation_format: "jsonl"

annotation_schemes:
  - name: "solution_correctness"
    description: "Does the generated solution pass the test suite?"
    annotation_type: radio
    labels:
      - name: "Correct — passes all tests"
        key_value: "1"
      - name: "Partially Correct — passes some tests"
        key_value: "2"
      - name: "Incorrect — fails tests"
        key_value: "3"

  - name: "complexity_assessment"
    description: "How complex is this coding task?"
    annotation_type: radio
    labels:
      - name: "Easy"
        key_value: "4"
      - name: "Medium"
        key_value: "5"
      - name: "Hard"
        key_value: "6"
      - name: "Expert"
        key_value: "7"

  - name: "code_quality"
    description: "Rate the overall quality of the generated code"
    annotation_type: likert
    min_label: "Very Poor"
    max_label: "Excellent"
    size: 5

  - name: "human_notes"
    description: "Notes on the solution approach, edge cases, or issues"
    annotation_type: text

user_config:
  allow_all_users: true
max_annotations_per_user: 50
num_annotators_per_item: 2

Sample Data

json
[
  {
    "id": "bcb-001",
    "text": "Write a function that reads a CSV file, groups rows by a specified column, computes the mean of a numeric column for each group, and returns a sorted bar chart as a matplotlib Figure. Handle missing values by dropping them before aggregation. The function should validate that both columns exist in the CSV.",
    "function_signature": "def task_func(csv_path: str, group_col: str, value_col: str) -> matplotlib.figure.Figure:",
    "agent_code": "import pandas as pd\nimport matplotlib.pyplot as plt\nimport matplotlib.figure\n\ndef task_func(csv_path: str, group_col: str, value_col: str) -> matplotlib.figure.Figure:\n    df = pd.read_csv(csv_path)\n    \n    if group_col not in df.columns:\n        raise ValueError(f\"Column '{group_col}' not found in CSV\")\n    if value_col not in df.columns:\n        raise ValueError(f\"Column '{value_col}' not found in CSV\")\n    \n    df = df.dropna(subset=[group_col, value_col])\n    grouped = df.groupby(group_col)[value_col].mean().sort_values(ascending=False)\n    \n    fig, ax = plt.subplots(figsize=(10, 6))\n    grouped.plot(kind='bar', ax=ax)\n    ax.set_xlabel(group_col)\n    ax.set_ylabel(f'Mean {value_col}')\n    ax.set_title(f'Mean {value_col} by {group_col}')\n    plt.tight_layout()\n    \n    return fig",
    "execution_result": "$ python -m pytest test_task_001.py -v\ntest_task_001.py::test_basic_grouping PASSED\ntest_task_001.py::test_missing_values_dropped PASSED\ntest_task_001.py::test_invalid_group_column PASSED\ntest_task_001.py::test_invalid_value_column PASSED\ntest_task_001.py::test_sorted_descending PASSED\ntest_task_001.py::test_returns_figure PASSED\n\n6 passed in 1.23s"
  },
  {
    "id": "bcb-002",
    "text": "Write a function that takes a directory path, recursively finds all Python files, parses each file's AST to extract function definitions, and returns a dictionary mapping file paths to lists of function names. Skip files that have syntax errors. Include nested functions.",
    "function_signature": "def task_func(directory: str) -> dict[str, list[str]]:",
    "agent_code": "import os\nimport ast\nfrom typing import Dict, List\n\ndef task_func(directory: str) -> Dict[str, List[str]]:\n    result = {}\n    \n    for root, dirs, files in os.walk(directory):\n        for fname in files:\n            if not fname.endswith('.py'):\n                continue\n            fpath = os.path.join(root, fname)\n            try:\n                with open(fpath, 'r') as f:\n                    source = f.read()\n                tree = ast.parse(source)\n            except SyntaxError:\n                continue\n            \n            functions = []\n            for node in ast.walk(tree):\n                if isinstance(node, (ast.FunctionDef, ast.AsyncFunctionDef)):\n                    functions.append(node.name)\n            \n            if functions:\n                result[fpath] = functions\n    \n    return result",
    "execution_result": "$ python -m pytest test_task_002.py -v\ntest_task_002.py::test_basic_extraction PASSED\ntest_task_002.py::test_nested_functions PASSED\ntest_task_002.py::test_async_functions PASSED\ntest_task_002.py::test_syntax_error_skip PASSED\ntest_task_002.py::test_empty_directory PASSED\ntest_task_002.py::test_no_python_files PASSED\ntest_task_002.py::test_subdirectories PASSED\n\n7 passed in 0.45s"
  }
]

// ... and 6 more items

Dataset & paper

Zhuo et al., ICLR 2025

Citation (BibTeX)

bibtex
@inproceedings{zhuo2025bigcodebench, title={BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions}, author={Terry Yue Zhuo and Minh Chien Vu and Jenny Chim and others}, booktitle={International Conference on Learning Representations (ICLR)}, year={2025}}

Details

Annotation Types

radiolikerttext

Domain

Software EngineeringCode Generation

Use Cases

Code EvaluationBenchmark Baseline

Tags

bigcodebenchcode-generationfunction-callsbenchmarkagentic-coding

Found an issue or want to improve this design?

Open an Issue(opens in a new tab)