Skip to content

feat: add live endpoint response collection capability to the adapter SDK #135

Description

@csoceanu

What problem does this solve?

Chatbot and RAG pipeline teams who want to evaluate their systems through
EvalHub currently need to write custom scripts outside of EvalHub to:

  1. Take a set of test questions (e.g. a golden Q&A dataset created by sdg_hub)
  2. Query their chatbot endpoint with each question
  3. Collect and format the responses into the structure their evaluation framework expects
  4. Only then submit an EvalHub job with the pre-formatted data

This manual glue code is rewritten from scratch by every team. There is no SDK-level capability to collect
responses from a live endpoint as part of an evaluation job.

Proposed solution

Add a data collection module to the SDK that any adapter can call during
the LOADING_DATA phase of run_benchmark_job() to query a chatbot endpoint
and collect responses.

The module would:

  • Accept a pre-existing set of test questions as input (CSV/JSON/JSONL file)
  • Query the chatbot endpoint for each question
  • Collect responses with metadata
  • Write an evaluation-ready dataset to an output directory

Existing adapters remain unchanged, this is opt-in for adapters that want to support live collection.

Alternatives considered

Build a standalone adapter that handles both collection and evaluation. Rejected because it would only serve one evaluation framework, whereas an SDK-level module benefits all adapters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/featCategorizes issue as a feature request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions