Superpowered AI SDK
Project description
This is the official Superpowered AI Python SDK
Installation
pip install superpowered-sdk
Note: To create API keys, please login to the Superpowered AI dashboard and click the "Account" tab on the left navigation.
Knowledge Base Operations
Create a knowledge base
kb = superpowered.create_knowledge_base(
title='research-biology',
description='Papers, podcasts, and articles about biology.', # OPTIONAL
supp_id='<internal_id>' # OPTIONAL
)
# use kb['id'] when uploading documents for this knowledge base
Get knowledge base(s)
# list all knowledge bases
kbs = superpowered.list_knowledge_bases() # returns list of kb objects
# list knowledge bases that meet criteria
kbs = superpowered.list_knowledge_bases(supp_id='<internal_id>')
# OR
kbs = superpowered.list_knowledge_bases(title_begins_with='research-')
# get single knowledge base
kb = superpowered.get_knowledge_base(kb_id) # returns a single kb object
Delete knowledge base
ok = superpowered.delete_knowledge_base(kb_id)
Document Operations
Create Documents
NOTE: We currently support .txt
, .md
, .pdf
, .docx
, .wav
, .mp3
, .m4a
files.
# create a document via plain text
superpowered.create_document_via_text(
knowledge_base_id=kb_id,
content='Observation suggests that people are switching to using ChatGPT '
'to write things for them with almost indecent haste. Most people '
'hate to write as much as they hate math. Way more than admit it. '
'Within a year the median piece of writing could be by AI.',
title='pg-twitter-20230509', # OPTIONAL
link_to_source='https://twitter.com/paulg/status/1655925905527537666?s=42&t=blTOe1mODRIfVwjJvMJ52w' # OPTIONAL
description=None, # OPTIONAL
supp_id='<internal_id>', # OPTIONAL
)
# create a document via a url
superpowered.create_document_via_url(
knowledge_base_id=kb_id,
url='https://superpoweredai.notion.site/',
title=None, # OPTIONAL - scraped from HTML <title> tag if not provided
description='Superpowered AI Documentation', # OPTIONAL
supp_id='<internal_id>' # OPTIONAL
)
# create a document via file upload
superpowered.create_document_via_file(
knowledge_base_id=kb_id,
file_path='/path/to/podcast_audio.mp3',
description=None, # OPTIONAL
supp_id=None # OPTIONAL
)
Get document(s)
# list all documents
# NOTE: `content` is not returned with `list_documents()` - only with `get_document()`
docs = superpowered.list_documents()
# list documents with filter
docs = superpowered.list_documents(knowledge_base_id=kb_id, title_begins_with='pg-twitter')
# OR
docs = superpowered.list_documents(knowledge_base_id=kb_id, link_to_source='https://superpoweredai.notion.site/')
# OR
docs = superpowered.list_documents(knowledge_base_id=kb_id, supp_id='<internal_id>')
# OR
docs = superpowered.list_documents(knowledge_base_id=kb_id, vectorization_status='PENDING|IN_PROGRESS|COMPLETE|FAILED')
# get individual document by id
doc = superpowered.get_document(kb_id, doc_id)
Update document
# valid params: title, supp_id, description
doc = superpowered.update_document(
knowledge_base_id=kb_id,
document_id=doc_id,
title='patched title', # OPTIONAL
supp_id='<internal_id>', # OPTIONAL
description='I am a document about X' # OPTIONAL
)
Delete document
ok = superpowered.delete_document(
knowledge_base_id=kb_id,
document_id=doc_id
)
Query Operations
Query knowledge bases
result = superpowered.query_knowledge_bases(
knowledge_base_ids=[tweets_kb_id, research_papers_kb_kd, podcasts_kb_id],
query='What are some of the biggest hurdles we '
'need to overcome to achieve superintelligence?',
top_k=10, # OPTIONAL
summarize_results=True # OPTIONAL
)
Query passages directly without having to create a knowledge base
This functionality is perfect for web search applications like Google Chrome extensions.
# if passages are longer than `max_chunk_length`, we will chunk the passages to
# make them more easily parsable by our model
result = superpowered.query_passages(
query='What technological advancements do need to construct a dyson sphere?',
passages=[
'<web page content',
'<text content>',
'<etc.>'
],
top_k=10, # OPTIONAL
max_chunk_length=500, # OPTIONAL
summarize_results=True # OPTIONAL
)
Usage Operations
Get total storage used
storage_stats = superpowered.get_total_storage()
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 Distribution
superpowered-sdk-0.1.17.tar.gz
(12.4 kB
view hashes)
Built Distribution
Close
Hashes for superpowered_sdk-0.1.17-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5337448f76bd9cbc1dc395eb38fcbc787092d366dde6d1408fe1c44010688db |
|
MD5 | 4088ab0269842aa48392ec8c8e1b87ac |
|
BLAKE2b-256 | fe57a30737e693f85de0c6177c683a819775ca40fae05363f06224b5cf186529 |