> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aurelio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# semantic_router.index.local

## LocalIndex Objects

```python theme={null}
class LocalIndex(BaseIndex)
```

#### add

```python theme={null}
def add(embeddings: List[List[float]],
        routes: List[str],
        utterances: List[str],
        function_schemas: Optional[List[Dict[str, Any]]] = None,
        metadata_list: List[Dict[str, Any]] = [],
        **kwargs)
```

Add embeddings to the index.

**Arguments**:

* `embeddings` (`List[List[float]]`): List of embeddings to add to the index.
* `routes` (`List[str]`): List of routes to add to the index.
* `utterances` (`List[str]`): List of utterances to add to the index.
* `function_schemas` (`Optional[List[Dict[str, Any]]]`): List of function schemas to add to the index.
* `metadata_list` (`List[Dict[str, Any]]`): List of metadata to add to the index.

#### get\_utterances

```python theme={null}
def get_utterances(include_metadata: bool = False) -> List[Utterance]
```

Gets a list of route and utterance objects currently stored in the index.

**Arguments**:

* `include_metadata`: Whether to include function schemas and metadata in
  the returned Utterance objects - LocalIndex now includes metadata if present.

**Returns**:

`List[Utterance]`: A list of Utterance objects.

#### describe

```python theme={null}
def describe() -> IndexConfig
```

Describe the index.

**Returns**:

`IndexConfig`: An IndexConfig object.

#### is\_ready

```python theme={null}
def is_ready() -> bool
```

Checks if the index is ready to be used.

**Returns**:

`bool`: True if the index is ready, False otherwise.

#### ais\_ready

```python theme={null}
async def ais_ready() -> bool
```

Checks if the index is ready to be used asynchronously.

**Returns**:

`bool`: True if the index is ready, False otherwise.

#### query

```python theme={null}
def query(
    vector: np.ndarray,
    top_k: int = 5,
    route_filter: Optional[List[str]] = None,
    sparse_vector: dict[int, float] | SparseEmbedding | None = None
) -> Tuple[np.ndarray, List[str]]
```

Search the index for the query and return top\_k results.

**Arguments**:

* `vector` (`np.ndarray`): The vector to search for.
* `top_k` (`int`): The number of results to return.
* `route_filter` (`Optional[List[str]]`): The routes to filter the search by.
* `sparse_vector` (`dict[int, float] | SparseEmbedding | None`): The sparse vector to search for.

**Returns**:

`Tuple[np.ndarray, List[str]]`: A tuple containing the query vector and a list of route names.

#### aquery

```python theme={null}
async def aquery(
    vector: np.ndarray,
    top_k: int = 5,
    route_filter: Optional[List[str]] = None,
    sparse_vector: dict[int, float] | SparseEmbedding | None = None
) -> Tuple[np.ndarray, List[str]]
```

Search the index for the query and return top\_k results.

**Arguments**:

* `vector` (`np.ndarray`): The vector to search for.
* `top_k` (`int`): The number of results to return.
* `route_filter` (`Optional[List[str]]`): The routes to filter the search by.
* `sparse_vector` (`dict[int, float] | SparseEmbedding | None`): The sparse vector to search for.

**Returns**:

`Tuple[np.ndarray, List[str]]`: A tuple containing the query vector and a list of route names.

#### aget\_routes

```python theme={null}
def aget_routes()
```

Get all routes from the index.

**Returns**:

`List[str]`: A list of routes.

#### delete

```python theme={null}
def delete(route_name: str)
```

Delete all records of a specific route from the index.

**Arguments**:

* `route_name` (`str`): The name of the route to delete.

#### adelete

```python theme={null}
async def adelete(route_name: str)
```

Delete all records of a specific route from the index. Note that this just points

to the sync delete method as async makes no difference for the local computations
of the LocalIndex.

**Arguments**:

* `route_name` (`str`): The name of the route to delete.

#### delete\_index

```python theme={null}
def delete_index()
```

Deletes the index, effectively clearing it and setting it to None.

**Returns**:

`None`: None

#### adelete\_index

```python theme={null}
async def adelete_index()
```

Deletes the index, effectively clearing it and setting it to None. Note that this just points

to the sync delete\_index method as async makes no difference for the local computations
of the LocalIndex.

**Returns**:

`None`: None
