perplexipy - A robust Perplexity AI API client
Project description
% perplexipy(3) Version 0.0.6 | Perplexity AI high level API documentation
Name
perplexipy - Perplexity AI high level library
Synopsis
client = PerplexityClient() \
print(client.query('What is the meaning of 42?') \
for result in client.queryStreamable('List of all US presidents'): \
print(result)
Description
perplexipy is a high-level, convenience library for interacting with the Perplexity API from any Python 3.9+ application. The library aims to simplify all interactions with Perplexity models by encapsulating all the implementation details of the lower level OpenAI API. All interaction between the code and this library occurs in the form of string and native Python objects.
perplexipy is implemented from a combination of the Perplexity AI and the OpenAI documentation. API semantics follow the "literate programming" workflow, and attempt to make the resulting code as simple to follow as possible.
Documentation
These documents encompass all information about perplexipy:
- This README file, hosted in the perplexipy project on GitHub and exported to the PyPI project page
- A
man
page autogenerated from this README file,perplexipy.3
- The complete perplexipy API reference
- The using-perplexipy.ipynb tutorial notebook
The man
page can be generated from the source distribution using this command:
make manpage
The output will reside in: ./manpages/perplexipy.3
. The man
page isn't
included in the Python package wheel because there's no accepted standard
installation that's cross-compatible with all supported operating systems and
distributions.
Installation
pip install perplexipy
Package information: https://pypi.org/project/perplexipy
API key
Access to the Perplexity API requires a paid subscription and an API key.
Use of .env
is recommended for storing the private key. There is an automatic
constant PERPLEXITY_API_KEY
that gets initialized to the value of a .env
key
of the same name via the dotenv
API. Otherwise, PERPLEXITY_API_KEY
may
be handled like any other secret by the implementing team. This module provides
no other tools or services for handling the API key.
This key is used only during PerplexityClient
instantiation:
import os
key = os.environ['PERPLEXITY_API_KEY']
client = PerplexityClient(key = key)
print(client.query('Brief answer: greet the world in Swedish.'))
Usage
See the using-perplexipy.ipynb notebook for a richer example of the API's capabilities.
In general:
client = PerplexityClient()
result = client.query('Show me how to declare a list in Python')
# result is a string
results = client.queryBatch('Show me different ways of declaring a Python list')
for result in results:
print(result)
# results is a tuple of one or more results
results = client.queryStreamable('Tell me why lists are important in programming')
for result in results:
print(result)
# results is a long stream of data, served over time.
models = client.models # lists all models supported by Perplexity AI
print('Model names:')
for model in models.keys():
print(' - %s' % model)
try:
client.model = 'bogus-LLM-7b'
except PerplexityClientError as e:
print(e)
client.model = models.keys()[0] # OK
Async usage
Not supported at this time.
See also
Caveats
The code should work with Python 3.7 or later, but it was only tested with Python 3.9.16 and later. Download the package and install it from source if support for an earlier Python version is required.
Bugs
Feature requests and bug reports:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for perplexipy-0.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6452d8a7e08dafb60cf6757b87837d9534dc0aca1df72adb593ea5402b1f87e3 |
|
MD5 | e642ac7936dd74b59850e02049ece5e6 |
|
BLAKE2b-256 | e4e1a8b21e0cbc7c470fdab2403e44805bf79124e2532c77e2e03d8dfa2d9519 |