Metadata-Version: 2.4
Name: openvip
Version: 1.0.0rc4
Summary: Python SDK for the Open Voice Interaction Protocol (OpenVIP)
Home-page: 
Author: OpenVIP
Author-email: OpenVIP <dev@openvip.dev>
License: MIT
Project-URL: Homepage, https://openvip.dev
Project-URL: Repository, https://github.com/openvip-dev/sdks
Project-URL: Issues, https://github.com/openvip-dev/sdks/issues
Keywords: openvip,voice,speech,transcription,stt,tts
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Sound/Audio :: Speech
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.1.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2.11
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# openvip
Open Voice Interaction Protocol (OpenVIP) HTTP API specification.

This API allows applications to send and receive voice interaction messages.

## Quick Start

```bash
# Subscribe to messages (SSE) — this IS the registration
curl http://localhost:8770/agents/my-agent-id/messages

# Send a message to an agent
curl -X POST http://localhost:8770/agents/my-agent-id/messages \\
  -H \"Content-Type: application/json\" \\
  -d '{\"openvip\": \"1.0\", \"type\": \"transcription\", \"id\": \"uuid\", \"timestamp\": \"2026-02-06T10:30:00Z\", \"text\": \"hello\"}'

# Text-to-speech
curl -X POST http://localhost:8770/speech \\
  -H \"Content-Type: application/json\" \\
  -d '{\"openvip\": \"1.0\", \"type\": \"speech\", \"id\": \"uuid\", \"timestamp\": \"2026-02-06T10:30:05Z\", \"text\": \"hello world\", \"language\": \"en\"}'
```

## Agent Lifecycle

Agents are **ephemeral**. An agent exists only while its SSE connection is open.
No explicit registration is needed — connecting to the SSE endpoint registers the agent.
Disconnecting automatically de-registers it.


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0
- Package version: 1.0.0
- Generator version: 7.21.0-SNAPSHOT
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://openvip.org](https://openvip.org)

## Requirements.

Python 3.9+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)

Then import the package:
```python
import openvip
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import openvip
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import openvip
from openvip.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to http://localhost:8770
# See configuration.py for a list of all supported configuration parameters.
configuration = openvip.Configuration(
    host = "http://localhost:8770"
)



# Enter a context with an instance of the API client
with openvip.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = openvip.ControlApi(api_client)
    control_request = {"openvip":"1.0","id":"770e8400-e29b-41d4-a716-446655440000","command":"stt.stop"} # ControlRequest | 

    try:
        # Send control command
        api_response = api_instance.send_control(control_request)
        print("The response of ControlApi->send_control:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling ControlApi->send_control: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to *http://localhost:8770*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*ControlApi* | [**send_control**](docs/ControlApi.md#send_control) | **POST** /control | Send control command
*MessagesApi* | [**send_message**](docs/MessagesApi.md#send_message) | **POST** /agents/{agent_id}/messages | Send message to agent
*MessagesApi* | [**subscribe_agent**](docs/MessagesApi.md#subscribe_agent) | **GET** /agents/{agent_id}/messages | Subscribe to agent messages (SSE)
*SpeechApi* | [**text_to_speech**](docs/SpeechApi.md#text_to_speech) | **POST** /speech | Text-to-speech request
*StatusApi* | [**get_status**](docs/StatusApi.md#get_status) | **GET** /status | Get engine status
*StatusApi* | [**subscribe_status**](docs/StatusApi.md#subscribe_status) | **GET** /status/stream | Subscribe to status changes (SSE)


## Documentation For Models

 - [ControlRequest](docs/ControlRequest.md)
 - [Error](docs/Error.md)
 - [Message](docs/Message.md)
 - [Response](docs/Response.md)
 - [SpeechRequest](docs/SpeechRequest.md)
 - [SpeechResponse](docs/SpeechResponse.md)
 - [Status](docs/Status.md)
 - [StatusStt](docs/StatusStt.md)
 - [StatusTts](docs/StatusTts.md)
 - [Transcription](docs/Transcription.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization

Endpoints do not require authorization.


## Author




