Venra provides a simple, high-level api for vespa.ai.
Project description
venra
Venra provides a simple, high-level api for vespa.ai.
Venra targets subsets of Vespa's query, document, and system apis. It aims to encapsulate the complexity of dealing with the Vespa http interfaces, response behaviors, and json responses for common client tasks.
Venra is well suited for web backends, command line tools, and enrichment programs which need to retrieve, process, and update documents.
import venra
qdata = {}
qdata["yql"] = "select * from sources awesome_docs;"
response = venra.query.search(qdata)
docs = venra.query.extract_docs(response)
for r, doc in enumerate(docs):
print(f"rank: {r} >> {doc.some_id} title: {doc.title}")
Note: This library is under active development and the api is currently unstable.
Installation
$ pip install venra
Usage
Basic Query:
import venra
# Build query
qdata = {}
qdata["yql"] = "select * from sources baz;"
# Run query
response = venra.query.search(qdata)
# Extract results via helpers
metrics = venra.query.extract_metrics(response)
docs = venra.query.extract_docs(response)
User Query and Grouping:
from pprint import pprint
from venra import config as vconfig
from venra import query as vquery
# Configure
user_query = "machine learning"
vconfig.vespa_host_app = "http://localhost:8080"
# Build query including a grouping
qdata = {}
qdata["yql"] = "select post_id, post_date from sources baz where userQuery()"
qdata["yql"] += f" | all(group(time.date(post_date)) order(-max(post_date)) max(32) each(output(count())) as(day_counts) );"
qdata["hits"] = 10
qdata["timeout"] = "3300ms"
qdata["model.queryString"] = user_query
qdata["model.type"] = "weakAnd"
qdata["presentation.summary"] = "full"
qdata["presentation.timing"] = "true"
# Run query
response = vquery.search(qdata)
# Extract results via helpers
metrics = vquery.extract_metrics(response)
groups = vquery.extract_groups(response)
myfacet = vquery.extract_group_pairs(groups, "day_counts", "count()")
docs = vquery.extract_docs(response)
# Query results ready for use in app
pprint(metrics)
pprint(myfacet)
pprint(docs)
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
File details
Details for the file venra-0.1.6.tar.gz
.
File metadata
- Download URL: venra-0.1.6.tar.gz
- Upload date:
- Size: 9.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5900624418c2a2aaceae68aa2e5b300f194251d85aaf04e6e2e656b6a0024233 |
|
MD5 | e0f2568844c2aa96f1b1684a417986a0 |
|
BLAKE2b-256 | c696bed8912d71ec9371e3361e6351754acf268a717ea765fd8b79dfeacea303 |
File details
Details for the file venra-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: venra-0.1.6-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3f797c84ed5199b86743c0f8aea58f76eaf97d606c85df7fc4b629c377fa827 |
|
MD5 | 79ae7112ae99cf2c150f053cb5cfad5c |
|
BLAKE2b-256 | e7ac1339e74ff0771c9e20273d9a4e138e7488cc5dd5ceb967f3c7b279110d7d |