Skip to main content

Venra provides a simple, high-level api for vespa.ai.

Project description

venra

Project Status: WIP Tests Release PyPI version

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

venra-0.1.6.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

venra-0.1.6-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

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

Hashes for venra-0.1.6.tar.gz
Algorithm Hash digest
SHA256 5900624418c2a2aaceae68aa2e5b300f194251d85aaf04e6e2e656b6a0024233
MD5 e0f2568844c2aa96f1b1684a417986a0
BLAKE2b-256 c696bed8912d71ec9371e3361e6351754acf268a717ea765fd8b79dfeacea303

See more details on using hashes here.

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

Hashes for venra-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b3f797c84ed5199b86743c0f8aea58f76eaf97d606c85df7fc4b629c377fa827
MD5 79ae7112ae99cf2c150f053cb5cfad5c
BLAKE2b-256 e7ac1339e74ff0771c9e20273d9a4e138e7488cc5dd5ceb967f3c7b279110d7d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page