mirror of
https://github.com/NovaOSS/nova-python.git
synced 2024-11-29 10:03:58 +01:00
96 lines
2.3 KiB
Markdown
96 lines
2.3 KiB
Markdown
# nova-python
|
|
🐍 Python library for accessing the Nova API
|
|
|
|
## Usage ##
|
|
Install the module (This requires <a href="https://rustup.rs/">Cargo</a>)
|
|
```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")
|
|
|
|
reponse = 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")
|
|
|
|
reponse = 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 reponse's json.data, by casting it to a string using the `str` method, like this:
|
|
```python
|
|
...
|
|
|
|
str(reponse)
|
|
|
|
...
|
|
```
|
|
|
|
but more importantly, you can use it's `get_message_content` function, to directly get access to the chat reponse. Used like this:
|
|
```
|
|
...
|
|
|
|
content = reponse.get_message_content()
|
|
|
|
...
|
|
```
|
|
|
|
|
|
*Happy prompting!*
|
|
<br><br>
|
|
## FAQ ##
|
|
**Q:** I get an error when installing the package
|
|
**A:** Make you sure, that you have <a href="https://rustup.rs/">Cargo</a> installed
|
|
|
|
**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 |