# nova-python
🐍 Python library for accessing the Nova API
## Usage ##
Install the module
```sh
$ pip install nova-python
```
Import the module
```python
from nova_python import Endpoints, Models, NovaClient
```
Create an instance of NovaClient, using your API key
```python
client = NovaClient("YOUR_API_KEY")
```
nova_python currently implements two enums: Endpoints and Models. Those contain:
**Endpoints**
* `Endpoints.CHAT_COMPLETION`
* `Endpoints.MODERATION`
**Models**
* `Models.GPT3`
* `Models.GPT4`
* `Models.MODERATION_LATEST`
* `Models.MODERATION_STABLE`
Now, to make a request, use the `make_request` function. For example:
```python
from nova_python import Endpoints, Models, NovaClient
client = NovaClient("YOUR_API_KEY")
response = client.make_request(
endpoint=Endpoints.CHAT_COMPLETION,
model=Models.GPT3,
data=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
)
...
```
or
```python
from nova_python import Endpoints, Models, NovaClient
client = NovaClient("YOUR_API_KEY")
response = client.make_request(
endpoint=Endpoints.MODERATION,
model=Models.MODERATION_STABLE,
data=[{"input": "I'm going to kill them."}]
)
...
```
If everything goes to plan, you'll receive a string containing JSON-Data, which you can then use in your project.
Note, that when using chat completion, as special ChatResponse-Instance get's returned.
You can access the response's json.data, by casting it to a string using the `str` method, like this:
```python
...
str(response)
...
```
but more importantly, you can use it's `get_message_content` function, to directly get access to the chat response. Used like this:
```
...
content = response.get_message_content()
...
```
*Happy prompting!*
## FAQ ##
**Q**: I keep getting `RuntimeError: error sending request for url (https://api.nova-oss.com/v1/moderations): operation timed out`
**A**: Try passing a higher value than 30 as `seconds_until_timeout` to `make_request`
Made with 🩸 by Leander