No description
  • Python 71.3%
  • JavaScript 16.3%
  • HTML 7.7%
  • Shell 1.5%
  • SCSS 1.3%
  • Other 1.9%
Find a file
Rishabh Jain 30128ca50a
Some checks are pending
autoupdate / autoupdate (push) Waiting to run
ci-cd / Code quality and migrations (push) Waiting to run
ci-cd / Tests (backend) (push) Waiting to run
ci-cd / Tests (frontend) (push) Waiting to run
ci-cd / Package and Deploy Services (push) Blocked by required conditions
fix(frontend): show the real error when submission download fails (#5240)
* fix(frontend): show the real error when submission download fails

Downloading from the All Submissions page showed an empty red banner on
failure because the error handler only read `response.data.error`. A
gateway timeout (502/504) returns an HTML page and DRF errors such as
throttling (429) use `detail`, so `error` was undefined and the banner
rendered with no text. When the request never reached the server,
`response.data` was null and the handler threw a TypeError instead.

The handler now falls back from `error` to `detail` to the HTTP status,
and reports an unreachable server separately. The GET and POST branches
share one callback instead of two identical copies.

Co-Authored-By: Claude <noreply@anthropic.com>

* ci: pin ci-cd runners to ubuntu-24.04 so Python 3.9.21 installs

ubuntu-latest now resolves to Ubuntu 26.04, and actions/setup-python
publishes no Python 3.9 builds for it (3.9.21 exists only up to 24.04).
Every ci-cd.yml job failed in "Set up CI environment" within seconds,
which has broken CI for all pull requests since late October.

Pin the four jobs that install PYTHON_RUNTIME_VERSION to ubuntu-24.04
rather than bumping the runtime away from the version it mirrors.

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(frontend): document the submission download error contract

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-28 19:07:55 -07:00
.claude Add Claude Code cloud session start hook (#5236) 2026-10-04 17:46:56 -07:00
.cursor fix(cloud-agent): ensure Docker daemon is running in start command (#5199) 2026-08-12 07:44:49 -07:00
.github fix(frontend): show the real error when submission download fails (#5240) 2026-10-28 19:07:55 -07:00
apps Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
cloud-agent Cloud Agents: Fix Cloud Agent Docker bootstrap ordering (#5160) 2026-07-28 03:32:17 -07:00
docker build(docker): migrate base images from Debian bullseye to bookworm (#5218) 2026-09-07 10:21:57 -07:00
docs fix(worker): derive permissive pip constraints for challenge installs (#5220) 2026-09-08 18:40:07 -07:00
evalai feat(deploy): add health endpoint and move release steps out of container start (#5205) 2026-08-28 17:40:14 -07:00
examples Backend: Optimize create_or_update_github_challenge function to prefetch challenge_phase_splits, reducing N+1 query issues during updates; add unit test to verify performance improvements. (#5001) 2026-02-08 13:25:34 -08:00
frontend fix(frontend): show the real error when submission download fails (#5240) 2026-10-28 19:07:55 -07:00
middleware Remove monitoring-related configurations and dependencies from the project, including Prometheus, Grafana, and StatsD. (#5049) 2026-03-02 09:22:10 -08:00
requirements fix(worker): derive permissive pip constraints for challenge installs (#5220) 2026-09-08 18:40:07 -07:00
scripts fix(worker): stop the bootstrap crash-looping on a zero-node cluster (#5234) 2026-09-20 09:45:46 -07:00
settings Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
static S3 storage and RDS configurations added 2016-10-21 06:46:36 -04:00
tests fix(worker): stop the bootstrap crash-looping on a zero-node cluster (#5234) 2026-09-20 09:45:46 -07:00
.coderabbit.yaml Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
.coveragerc Update coverage configuration and Travis CI setup for frontend tests (#4948) 2026-01-26 09:39:36 -08:00
.dockerignore 🚀 PR: Migrate CI from Travis CI to GitHub Actions (#5070) 2026-04-19 02:04:02 -07:00
.eslintrc TravisCI and Frontend Update: Enhance TravisCI configuration for improved test reporting and coverage uploads (#4780) 2025-09-01 20:47:03 -07:00
.git-blame-ignore-revs Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
.gitignore Add Claude Code cloud session start hook (#5236) 2026-10-04 17:46:56 -07:00
.npmrc TravisCI and Frontend Update: Enhance TravisCI configuration for improved test reporting and coverage uploads (#4780) 2025-09-01 20:47:03 -07:00
.pre-commit-config.yaml Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
.presidiocli CodeRabbit: Add CodeRabbit configuration for public-repo review safeguards (#5097) 2026-05-25 19:42:44 -07:00
.pylintrc Refactor pagination and API request handling in frontend controllers(#4934) 2026-01-22 14:52:27 -08:00
.readthedocs.yaml Docs: Fill empty ReadTheDocs documentation pages (#5088) 2026-05-20 23:50:45 -07:00
AGENTS.md Add Claude Code cloud session start hook (#5236) 2026-10-04 17:46:56 -07:00
bower.json [Frontend] Revert trix version to 1.3.1 2022-12-04 17:22:21 -05:00
CODE_OF_CONDUCT.md Update contact email addresses throughout the project to reflect the new EvalAI team email. (#5020) 2026-02-22 12:07:50 -08:00
codecov.yml Codecov Setup: Update coverage configuration and TravisCI script (#4774) 2025-09-01 01:26:41 -07:00
docker-compose-production.yml Remove monitoring-related configurations and dependencies from the project, including Prometheus, Grafana, and StatsD. (#5049) 2026-03-02 09:22:10 -08:00
docker-compose-staging.yml Remove monitoring-related configurations and dependencies from the project, including Prometheus, Grafana, and StatsD. (#5049) 2026-03-02 09:22:10 -08:00
docker-compose.yml Infra: Bump Postgres image from 16.8 to 17.10 (#5080) 2026-05-16 08:51:13 -07:00
gulpfile.js Refactor user retrieval logic to use get_user_by_email utility function across accounts and challenges modules (#5031) 2026-02-28 23:52:30 -08:00
karma.conf.js 🚀 PR: Migrate CI from Travis CI to GitHub Actions (#5070) 2026-04-19 02:04:02 -07:00
LICENSE Fix #1022: Change license from GPL to BSD (#1023) 2017-05-29 21:07:02 +05:30
manage.py Code Quality: Fix pylint (W0611, W0612, W0614, C0301) warnings (#4561) 2025-04-15 10:11:39 -07:00
package.json Fix Travis CI Build Issues and Improve Docker/Testing Infrastructure (#4872) 2026-01-13 19:59:24 -08:00
pyproject.toml Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
pytest.ini Worker: Fix file URLs in submission worker for dev,test & prod environments(#2876) 2020-06-28 01:55:18 -04:00
README.md Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00
setup.cfg Lint: Replace black, isort, flake8, autoflake and autopep8 with ruff (#5213) 2026-09-02 00:12:43 -07:00


Join the chat on Slack Build Status CodeRabbit Reviews Coverage Backend Coverage Frontend Coverage Ruff Documentation Status GitHub commit activity Views Twitter Follow

EvalAI is an open source platform for evaluating and comparing machine learning (ML) and artificial intelligence (AI) algorithms at scale.

In recent years, it has become increasingly difficult to compare an algorithm solving a given task with other existing approaches. These comparisons suffer from minor differences in algorithm implementation, use of non-standard dataset splits and different evaluation metrics. By providing a central leaderboard and submission interface, we make it easier for researchers to reproduce the results mentioned in the paper and perform reliable & accurate quantitative analysis. By providing swift and robust backends based on map-reduce frameworks that speed up evaluation on the fly, EvalAI aims to make it easier for researchers to reproduce results from technical papers and perform reliable and accurate analyses.

Features

  • Custom evaluation protocols and phases: We allow creation of an arbitrary number of evaluation phases and dataset splits, compatibility using any programming language, and organizing results in both public and private leaderboards.

  • Remote evaluation: Certain large-scale challenges need special compute capabilities for evaluation. If the challenge needs extra computational power, challenge organizers can easily add their own cluster of worker nodes to process participant submissions while we take care of hosting the challenge, handling user submissions, and maintaining the leaderboard.

  • Evaluation inside environments: EvalAI lets participants submit code for their agent in the form of docker images which are evaluated against test environments on the evaluation server. During evaluation, the worker fetches the image, test environment, and the model snapshot and spins up a new container to perform evaluation.

  • CLI support: evalai-cli is designed to extend the functionality of the EvalAI web application to your command line to make the platform more accessible and terminal-friendly.

  • Portability: EvalAI is designed with keeping in mind scalability and portability of such a system from the very inception of the idea. Most of the components rely heavily on open-source technologies – Docker, Django, Node.js, and PostgreSQL.

  • Faster evaluation: We warm-up the worker nodes at start-up by importing the challenge code and pre-loading the dataset in memory. We also split the dataset into small chunks that are simultaneously evaluated on multiple cores. These simple tricks result in faster evaluation and reduces the evaluation time by an order of magnitude in some cases.

Goal

Our ultimate goal is to build a centralized platform to host, participate and collaborate in AI challenges organized around the globe and we hope to help in benchmarking progress in AI.

Installation instructions

Setting up EvalAI on your local machine is really easy. You can setup EvalAI using docker: The steps are:

  1. Install docker and docker-compose on your machine.

  2. Get the source code on to your machine via git.

    git clone https://github.com/Cloud-CV/EvalAI.git evalai && cd evalai
    
  3. Build and run the Docker containers. This might take a while.

    docker-compose up --build
    

    By default, this starts only the required services (db, sqs, and django).
    If you need worker services, start them using:

    docker-compose --profile worker up --build
    
  4. That's it. Open web browser and hit the URL http://127.0.0.1:8888. Three users will be created by default which are listed below -

    SUPERUSER- username: admin password: password
    HOST USER- username: host password: password
    PARTICIPANT USER- username: participant password: password

If you are facing any issue during installation, please see our installation troubleshooting page.

Setup Instructions for EvalAI Documentation

If you're looking to contribute to EvalAI Documentation, refer to the docs specific setup instructions in docs/README.md to set up the docs builder locally.

Citing EvalAI

If you are using EvalAI for hosting challenges, please cite the following technical report:

@article{EvalAI,
    title   =  {EvalAI: Towards Better Evaluation Systems for AI Agents},
    author  =  {Deshraj Yadav and Rishabh Jain and Harsh Agrawal and Prithvijit
                Chattopadhyay and Taranjeet Singh and Akash Jain and Shiv Baran
                Singh and Stefan Lee and Dhruv Batra},
    year    =  {2019},
    volume  =  arXiv:1902.03570
}

Team

EvalAI is maintained by Rishabh Jain, Akansha Jain, and Dhruv Batra.

Past contributors

A non-exhaustive list of past contributors includes: Deshraj Yadav, Ram Ramrakhya, Gunjan Chhablani, Akash Jain, Taranjeet Singh, Shiv Baran Singh, Harsh Agarwal, Prithvijit Chattopadhyay, and Devi Parikh.

Contribution guidelines

If you are interested in contributing to EvalAI, follow our contribution guidelines.

Contributors