---
title: Example: Analytics
slug: sdk/example-usages/analytics
docTags: 
createdAt: 2025-03-20T19:51:51.076Z
---

End-to-end walkthrough: create two processors (a generator and an averager), wire them together, read the live output.

## Setup

```python
from litmussdk import analytics
```

## 1. List the Processor Library

The SDK ships a library of processor type definitions used at create-time.

```python
all_types = analytics.list_all_in_processor_library()
generator_internal, generator_params = analytics.get_single_processor_from_library("Generator")
averager_internal, averager_params = analytics.get_single_processor_from_library("Avg")
```

## 2. Create the Generator

```python
gen_proc = analytics.create_processor(
    function_defined_name="my-generator",
    function_internal_name=generator_internal,
    function_parameters=generator_params,    # tweak before passing if needed
    group_name="default",
)
gen_id = gen_proc["ID"]
```

## 3. Create the Averager

```python
avg_proc = analytics.create_processor(
    function_defined_name="my-avg",
    function_internal_name=averager_internal,
    function_parameters=averager_params,
    group_name="default",
)
avg_id = avg_proc["ID"]
```

## 4. Connect Generator -> Averager

`connect_processor` takes lists on both sides (one or many). Use `events` for trigger-style connections, `values` for continuous.

```python
analytics.connect_processor(
    connection_type="values",
    inputs_processors=[gen_id],         # plural - takes a list
    outputs_processors=[avg_id],        # plural - takes a list
)
```

## 5. Enable Both Processors

```python
analytics.enable_processor(gen_id)
analytics.enable_processor(avg_id)
```

## 6. Read Live Values

```python
gen_value = analytics.get_processor_last_value(gen_id)
avg_value = analytics.get_processor_last_value(avg_id)
print(f"gen={gen_value} avg={avg_value}")
```

## 7. Update Parameters On the Fly

```python
proc = analytics.get_processor(gen_id)
params = proc["parameters"]
params["strength"] = "100"
analytics.update_processor(gen_id, params)
```

## 8. AI / ML Models (4.0.x only)

The GraphQL surface manages AI providers and TensorFlow / generic ML models that processors can call into:

```python
from litmussdk.analytics import _gql_models

providers = _gql_models.get_ai_providers()
_gql_models.add_ai_model(
    provider="openai",
    name="gpt-4-classifier",
    url="https://api.openai.com",
    key="sk-...",
    model="gpt-4",
)
```

## 9. Tear Down

```python
analytics.delete_processor(gen_id)
analytics.delete_processor(avg_id)
```

## See Also

- [Analytics](docId\:qmFB3pk7t2EmJQehtYNS-) - full reference
