An HTTP/REST based AI Search client built on top of Upstash REST API.
Project description
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 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)
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file upstash_search-0.1.0.tar.gz.
File metadata
- Download URL: upstash_search-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.8.18 Linux/6.11.0-1015-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44eb0fdcdac2e042294a04fa27071449748bbba364aab9175dc9bb280c3b55c6
|
|
| MD5 |
f9db9b28701b699d8514a5e63b2f8e10
|
|
| BLAKE2b-256 |
a467602c2bbf3272ae1353e9110aae1632161a7f6c86f7117a3b90252c3732f4
|
File details
Details for the file upstash_search-0.1.0-py3-none-any.whl.
File metadata
- Download URL: upstash_search-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.8.18 Linux/6.11.0-1015-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b8088500a8cfacc8752c396287e74f99a9025f17d409587deb18cd3f58b715e
|
|
| MD5 |
b7a093cc8cab6ec622b4ca17174b663a
|
|
| BLAKE2b-256 |
54d865d217f879ab5099ed3d12cee897045a982dbcb50cc0ef022fb559885a59
|