Upstash AI Search Python Client
[!NOTE] This project is in GA Stage.
The Upstash Professional Support fully covers this project. It receives regular updates, and bug fixes. The Upstash team is committed to maintaining and improving its functionality.
It is a connectionless (HTTP based) AI Search client and designed for:
- Serverless functions (AWS Lambda ...)
- Cloudflare Workers
- Next.js, Jamstack ...
- Client side web/mobile applications
- WebAssembly
- and other environments where HTTP is preferred over TCP.
Quick Start
Install
Python
pip install upstash-search
Create Database
Create a new database on Upstash
Basic Usage:
from upstash_search import Search
client = Search(
url="<UPSTASH_SEARCH_REST_URL>",
token="<UPSTASH_SEARCH_REST_TOKEN>",
)
# Access the index of a database
index = client.index("movies")
# Upsert documents into index
index.upsert(
documents=[
{
"id": "movie-0",
"content": {
"title": "Star Wars",
"overview": "Sci-fi space opera",
"genre": "sci-fi",
"category": "classic",
},
"metadata": {
"poster": "https://poster.link/starwars.jpg",
},
},
{
"id": "movie-1",
"content": {
"title": "Inception",
"overview": "Mind-bending thriller",
"genre": "sci-fi",
"category": "modern",
},
"metadata": {
"poster": "https://poster.link/inception.jpg",
},
},
],
)
# Fetch documents by ids
documents = index.fetch(
ids=["movie-0", "movie-1"],
)
print(documents)
# AI search
scores = index.search(
query="space opera",
limit=2,
)
print(scores)
# AI search with reranking
scores = index.search(
query="space opera",
limit=2,
reranking=True
)
print(scores)
# AI search with only semantic search
scores = index.search(
query="space opera",
limit=2,
semantic_weight=1
)
# AI search with only full-text search
scores = index.search(
query="space opera",
limit=2,
semantic_weight=0
)
# AI search with full-text search and sematic search
# combined with equal weights
scores = index.search(
query="space opera",
limit=2,
semantic_weight=0.5
)
# AI search without input enrichment
scores = index.search(
query="space opera",
limit=2,
input_enrichment=False
)
# AI search with filtering
scores = index.search(
query="space opera",
limit=2,
filter="category = 'classic'",
)
print(scores)
# Range over documents
range_documents = index.range(
cursor="",
limit=1,
)
print(range_documents.documents)
# Range over the next page of documents
range_documents = index.range(
cursor=range_documents.next_cursor,
limit=3,
)
# Delete a document by id
index.delete(
ids=["movie-0"],
)
# Reset the index (delete all documents)
index.reset()
# Get database and index info
info = client.info()
print(info)
Metadata
Release files for upstash-search 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| upstash_search-0.1.1.tar.gz | 8.5 kB | Without provenance | Details for upstash_search-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| upstash_search-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for upstash_search-0.1.1-py3-none-any.whl |
Total release size: 21.8 kB
Release files / upstash_search-0.1.1.tar.gz
| Download URL | upstash_search-0.1.1.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83251e642188a26150b0bb2ac0fdfb72420064404e04ff539cc3b797561ac806
|
|
BLAKE2b-256 checksum How to use checksums |
364cfbc25cb531ac5566a533347d83ab691cd125455e5801cc8045fd6641552c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.4 CPython/3.8.18 Linux/6.11.0-1018-azure
|
Release files / upstash_search-0.1.1-py3-none-any.whl
| Download URL | upstash_search-0.1.1-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bd7126ff6e2d852eb0a2cc6d24825521bf883d9c74784ac27dd5f4d6bf9e249b
|
|
BLAKE2b-256 checksum How to use checksums |
7a44aa151c17ea1e76eaf7ee215ade8a0308388330f55fd615fa92bfcc49bdaf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.4 CPython/3.8.18 Linux/6.11.0-1018-azure
|
Security for upstash-search 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.