Skip to main content

Getting Started

This page gets the Dokimos server running locally and sends it your first evaluation results, so you can see pass rates in a web UI. No cloning, no building, just Docker.

Start the server​

Run these two commands:

# Download the compose file
curl -O https://raw.githubusercontent.com/dokimos-dev/dokimos/master/docker-compose.yml

# Start the server
docker compose up -d

The server is now running at http://localhost:8080. Open it in your browser to confirm.

No Docker?

If you don't have Docker installed, get it from docker.com.

Send your first results​

First, add the client dependency to your project:

<dependency>
<groupId>dev.dokimos</groupId>
<artifactId>dokimos-server-client</artifactId>
<version>${dokimos.version}</version>
</dependency>

Next, run an experiment that reports to the server. Copy this in, swap callYourLLM for your own LLM call, and run it:

import dev.dokimos.core.*;
import dev.dokimos.server.client.DokimosServerReporter;

public class MyFirstServerExperiment {
public static void main(String[] args) {
// Create dataset
Dataset dataset = Dataset.builder()
.name("Capital Cities")
.addExample(Example.of("What is the capital of France?", "Paris"))
.addExample(Example.of("What is the capital of Japan?", "Tokyo"))
.build();

// Connect to the local server
DokimosServerReporter reporter = DokimosServerReporter.builder()
.serverUrl("http://localhost:8080")
.projectName("my-first-project")
.build();

// Run experiment
ExperimentResult result = Experiment.builder()
.name("capitals-qa")
.dataset(dataset)
.task(example -> {
String answer = callYourLLM(example.input());
return Map.of("output", answer);
})
.evaluators(List.of(
ExactMatchEvaluator.builder()
.name("exact-match")
.threshold(1.0)
.build()
))
.reporter(reporter)
.build()
.run();

System.out.println("Pass rate: " + result.passRate());
}
}

The reporter sends every run to the server. The projectName groups runs together in the UI.

View results in the UI​

After the experiment runs, follow these steps:

  1. Open http://localhost:8080
  2. Click your project "my-first-project"
  3. Click the experiment to see pass rates
  4. Click a run to see individual test cases and evaluation details

Manage the server​

Use these commands to watch logs, stop the server, or wipe its data:

# View logs
docker compose logs -f server

# Stop the server
docker compose down

# Stop and remove all data
docker compose down -v

Next steps​

You have reported one run. The server is built to close the loop around it, so quality holds steady as your app changes:

  • Server datasets: hold this dataset on the server and pin the test to an exact version
  • CI regression gate: fail the build when a run regresses against its baseline
  • LLM judge: score runs and traces on the server with an LLM as judge
  • Production traces: ingest OTLP traces from your running app and evaluate them online
  • Review and curation: turn the items evaluators got wrong into the next dataset version

To operate the server, read these:

  • Configuration: Customize settings and environment variables
  • Deployment: Share with your team or run in production
  • Authentication: Secure write operations and scope API keys by role
  • Client: Advanced reporter configuration

Build from source (development)​

Building from source is only for contributing to Dokimos. To use the server, the steps above are all you need.

To build the server locally:

# Clone the repository
git clone https://github.com/dokimos-dev/dokimos.git
cd dokimos

# Use the development compose file
cd dokimos-server
docker compose -f docker-compose.dev.yml up --build

See the Server README for more details.

For AI agentsView as Markdown