# PsyNova - SDK

<figure><img src="https://1420078898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSW6zZhVwsOCBT4mQSoi%2Fuploads%2Fow3q116JuBiGikRdAXyh%2Fimage.png?alt=media&#x26;token=c59c546d-9195-408e-9476-7f0858bcdda6" alt=""><figcaption></figcaption></figure>

{% embed url="<https://github.com/psynova-ai/psynova-sdk>" %}

***

## Technical Requirements

* Python 3.10 or higher
* Dependencies:
  * requests 2.31.0

***

## Quick Start

### Installation

<div align="left" data-full-width="false"><figure><img src="https://1420078898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSSW6zZhVwsOCBT4mQSoi%2Fuploads%2FXW8g8fEA5eXvWNJRyRqi%2Fimage.png?alt=media&#x26;token=4e2510f6-2369-44da-a59f-b2ec2f98e9a8" alt="https://github.com/psynova-ai/psynova-sdk"><figcaption></figcaption></figure></div>

```
pip install psynova==1.2
```

***

### Basic Usage

```
from psynova import PsynovaClient

# Initialize the client
client = PsynovaClient(
    private_key="your_private_key",
    base_url="https://api.psynova.ai"  # Optional: defaults to dev environment
)

# Create a new agent
agent_id = client.create_agent(
    name="My AI Agent",
    version_id=1,
    using_https=True,
    using_socket=True
)

# Chat with the agent
response = client.chat(
    agent_id=agent_id,
    message="Hello, AI agent!"
)
print(response)
```

***

### Error Handling

The framework includes robust error handling through the `PsynovaAPIError` class, which provides detailed error messages and optional additional error context when API requests fail.

```
try:
    response = client.chat(agent_id=1, message="Hello")
except PsynovaAPIError as e:
    print(f"Error: {str(e)}")
    if e.errors:
        print(f"Additional details: {e.errors}")
```

***

### API Reference

#### PsynovaClient

**Constructor**

```
client = PsynovaClient(private_key, base_url="https://api.psynova.ai", timeout=30)
```

* `private_key` (str): Private key for authentication
* `base_url` (str, optional): Base URL for API. Defaults to development environment
* `timeout` (int, optional): Request timeout in seconds. Defaults to 30

**Methods**

> **get\_agent(agent\_id)**

Retrieves details of a specific agent.

```
agent = client.get_agent(agent_id=1)
```

Returns: Dictionary containing agent details (id, name, version\_id, status)

> **list\_agents()**

Lists all agents associated with the account.

```
agents = client.list_agents()
```

Returns: List of dictionaries containing agent details

> **chat(agent\_id, message)**

Sends a chat message to an agent.

```
response = client.chat(agent_id=1, message="Hello!")
```

Returns: String containing the agent's response

> **create\_agent(name, version\_id, using\_https=True, using\_socket=True)**

Creates a new agent with specified configuration.

```
agent_id = client.create_agent(
    name="My Agent",
    version_id=1,
    using_https=True,
    using_socket=True
)
```

Returns: Integer ID of the newly created agent
