`opensearch-py-ml` is a Python client that provides a suite of data analytics and natural language processing (NLP) support tools for OpenSearch. It provides data analysts with the ability to:
- Call OpenSearch indexes and manipulate them using the opensearch-py-ml [DataFrame](https://opensearch-project.github.io/opensearch-py-ml/reference/dataframe.html) APIs. The opensearch-py-ml DataFrame wraps an OpenSearch index into an API similar to [pandas](https://pandas.pydata.org/), giving you the ability to process large amounts of data from OpenSearch inside a Jupyter Notebook.
- Upload NLP [SentenceTransformer](https://www.sbert.net/) models into OpenSearch using the [ML Commons plugin]({{site.url}}{{site.baseurl}}/ml-commons-plugin/index/).
- Train and tune SentenceTransformer models with synthetic queries.
## Prerequisites
To use `opensearch-py-ml`, install the [OpenSearch Python client]({{site.url}}{{site.baseurl}}/clients/python#setup). The Python client allows OpenSearch to use the Python syntax required to run DataFrames in `opensearch-py-ml`.
## Install `opensearch-py-ml`
To add the client to your project, install it using [pip](https://pip.pypa.io/):
```bash
pip install opensearch-py-ml
```
Then import the client into OpenSearch like any other module:
```python
from opensearchpy import OpenSearch
import openseach_py_ml as oml
```
## API reference
For information on all opensearch-py-ml objects, functions, and methods, see the [opensearch-pl-ml API reference](https://opensearch-project.github.io/opensearch-py-ml/reference/index.html).
## Next steps
If you want to track or contribute to the development of the `opensearch-py-ml` client, see the [opensearch-py-ml GitHub repository](https://github.com/opensearch-project/opensearch-py-ml).