Git Product home page Git Product logo

cogment-trial-datastore's Introduction

Cogment Trial Datastore

Latest Release Apache 2 License Changelog

Cogment is an innovative open source AI platform designed to leverage the advent of AI to benefit humankind through human-AI collaboration developed by AI Redefined. Cogment enables AI researchers and engineers to build, train and operate AI agents in simulated or real environments shared with humans. For the full user documentation visit https://docs.cogment.ai

This module, Cogment Trial Datastore, is a intermediate storage dedicated to the logging of data generated by trials run with Cogment. It can either use an in-memory storage (the default) or a file-based storage.

Usage

$ docker run -p 9000:9000 cogment/trial-datastore

Configuration

The following environment variables can be used to configure the server:

  • COGMENT_TRIAL_DATASTORE_PORT: The port to listen on. Defaults to 9000.
  • COGMENT_TRIAL_DATASTORE_LOG_LEVEL: minimum level for the logger ("trace", "debug", "info", "warn", "error"), defaults to "info".
  • COGMENT_TRIAL_DATASTORE_GRPC_REFLECTION: Set to start a gRPC reflection server. Defaults to false.
  • COGMENT_TRIAL_DATASTORE_MEMORY_STORAGE_MAX_SAMPLE_SIZE: maximum cumulated size of samples size (in bytes) the memory storage holds before evicting least recently used trials samples. Defaults to 1GB.
  • COGMENT_TRIAL_DATASTORE_FILE_STORAGE_PATH: if set, the datastore uses a file-based storage instead of the default in-memory one with the provided file path as its location.

API

The Trial Datastore exposes a two gRPC APIs:

Developers

With a local Go installation

Linting is based on the "meta" linter golangci-lint it needs to be installed locally:

$ make lint

Testing:

$ make test

Testing with JUnit style reports (for the CI):

$ make test-with-report

Build a binary in build/cogment-trial-datastore:

$ make build

High level benchmarks of the different backends can be launched with:

$ make benchmark

With Docker

Build image

$ ./scripts/build_docker.sh

Release process

People having maintainers rights of the repository can follow these steps to release a version MAJOR.MINOR.PATCH. The versioning scheme follows Semantic Versioning.

  1. Run ./scripts/create_release_branch.sh automatically compute and update the version of the package, create the release branch and update the changelog from the commit history,
  2. On the release branch, check and update the changelog if needed
  3. Update .cogment-api.yaml (in particular make sure it doesn't rely on the "latest" version)
  4. Make sure everything's fine on CI,
  5. Run ./scripts/tag_release.sh MAJOR.MINOR.PATCH to create the specific version section in the changelog, merge the release branch in main, create the release tag and update the develop branch with those.

The rest, publishing the packages to github releases and dockerhub and updating the mirror repositories, is handled directly by the CI.

cogment-trial-datastore's People

Contributors

air-sara avatar cloderic avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.