nova-python/README.md
2023-08-15 14:00:35 +02:00

2.1 KiB

nova-python

🐍 Python library for accessing the Nova API

Usage

Install the module

$ pip install nova-python

Import the module

from nova_python import Endpoints, Models, NovaClient

Create an instance of NovaClient, using your API key

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:

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

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:

...

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