> For the complete documentation index, see [llms.txt](https://docs.raga.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.raga.ai/ragaai-catalyst/concepts/running-ragaai-evals/executing-evaluations.md).

# Executing Evaluations

Run various cutting edge evaluation metrics out-of-the-box with a few simple steps

### Via UI:

<figure><img src="https://1811327582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYbIiNdp1QbG4avl7VShw%2Fuploads%2FZL8yrBIhJ2P6EzDjmQpm%2Fevals1.gif?alt=media&amp;token=9b8780f6-62bb-4a04-95f4-803cfd525a0c" alt=""><figcaption><p>Evaluation </p></figcaption></figure>

#### 1. Adding an Evaluation

* Navigate to your dataset and click the **"Evaluate"** button to begin configuring your evaluation.

**2. Selecting a Metric**

* Choose the **metric** you want to run on the dataset from the available options.

#### 3. Naming the Metric

* Enter a **unique metric name** to identify this evaluation. This will help you track the column name .

  <figure><img src="https://1811327582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYbIiNdp1QbG4avl7VShw%2Fuploads%2FXmJdId0Jcl8Y3gRBMBdv%2FScreenshot%202024-09-30%20at%205.16.37%E2%80%AFPM.png?alt=media&amp;token=96cbc835-32ac-4f50-bddf-a87d4d30544b" alt=""><figcaption></figcaption></figure>

#### 4. Configure the parameters

* Choose the **model** you want to use for running the evaluation. You can select from pre-configured models within the platform or use a custom gateway (described [here](https://docs.raga.ai/ragaai-catalyst-1/concepts/enable-custom-gateway)) to perform the evaluations.
* In case you have configured your own gateway, you should see a "custom\_gateway" option in the model selection dropdown, which can be selected and used.
* Map the selected metric to the appropriate **column names** in your dataset.
  * Ensure that each metric is correctly aligned with the corresponding data columns to ensure accurate evaluation.

<figure><img src="https://1811327582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYbIiNdp1QbG4avl7VShw%2Fuploads%2FnsY8SOK9JaJ2BQBRlMJN%2FScreenshot%202024-09-30%20at%205.17.24%E2%80%AFPM.png?alt=media&amp;token=76035110-7656-4d17-b1db-a3034e8cf946" alt=""><figcaption></figcaption></figure>

#### 5. Threshold

* User can configure the passing criteria for each metric to define the passed and failed datapoints. Users can re-configure the threshold once they have been calculated from the UI using the ⚙️ icon beside the metric column name.
* Click on **"Update Threshold"** to update.

<figure><img src="https://1811327582-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYbIiNdp1QbG4avl7VShw%2Fuploads%2Fzl22RFiXV1Rc9ACFDfQR%2FScreenshot%202024-09-30%20at%205.21.07%E2%80%AFPM.png?alt=media&amp;token=85ab6e5c-1da5-4a2b-8a7d-05fe1ed790b5" alt=""><figcaption></figcaption></figure>

#### 6. Applying Filters (Optional)

* Optionally, you can apply **filters** to narrow down the data points for the evaluation.
  * This is useful if you want to evaluate a specific subset of your dataset.

#### 7. Saving the Configuration

* Once the metric, model, and filters are configured, click **"Save"** to save your evaluation setup.

#### 8. Configuring Multiple Evaluations

* Repeat the steps above to **configure multiple evaluations** if needed. This allows you to run several evaluations on the dataset simultaneously.

#### 9. Running the Evaluations

* Once all evaluations are set up, click **"Evaluate"** to execute the evaluations for all the configured metrics.

### Via SDK:

You can also run metrics using the following commands:

```python
from ragaai_catalyst import Evaluation
evaluation = Evaluation(project_name="your-project-name",
                        dataset_name="your-dataset-name")

evaluation.list_metrics() #List available metrics

#Define schema mapping for all metrics to be run
schema_mapping={
    'Query': 'prompt',
    'Response': 'response',
    'Context': 'context',
    'ExpectedResponse': 'expected_response'
}

#List metrics to be run
metrics = [
    {"name": "Hallucination", "config": {"model": "gemini-1.5", "provider": "gemini"}, "column_name": "Hallucination_v1", "schema_mapping": schema_mapping},
    {"name": "Response Correctness", "config": {"model": "gpt-4o-mini", "provider": "openai"}, "column_name": "Response_Correctness_v1", "schema_mapping": schema_mapping},
    {"name": "Toxicity", "config": {"model": "gpt-4o-mini", "provider": "openai"}, "column_name": "Toxicity_v1", "schema_mapping": schema_mapping}
    ]
    
#Trigger listed metrics to run
evaluation.add_metrics(metrics=metrics)
```

The schema mapping above follows a format similar to "key":"value" representations, with "key" representing the column names in your dataset, and "value" representing a Catalyst Schema definition variable (pre-defined). Here is a list of all supported schema variables (case-sensitive):

* prompt
* context
* response
* expected\_response
* expected\_context
* traceId
* timestamp
* metadata
* pipeline
* cost
* feedBack
* latency
* system\_prompt
* traceUri

In case you have enabled a custom gateway, the above metric evaluation configuration will be edited for your model's details as follows:

```python
{"name": "Hallucination", "config": {"model": "your-model-name", "provider": "your-model-provider"}, "column_name": "Hallucination_v1", "schema_mapping": schema_mapping}
```

Once evaluations have been triggered, they can be tracked and accessed as follows:

```python
#Get status
evaluation.get_status()

#View Results
df = evaluation.get_results()
df.head()
```
