Skip to main content

Backend of a system to explore RAG operations

Project description

raglab

Backend of a system to explore RAG operations.

To install: pip install raglab

IMPORTANT NOTE: This is work-in-progress and shouldn't be used, yet.

raglab is meant to be a medley of interoperable functionalities around retrieval (or "search") and generation (with LLMs). It's architecture is structured so that operations can be done in python, at the command line, through a web service (or any OpenAPI language binders) or from a GUI, where each layer's interface is mapped from the other in a consistent (and usually automatic) manner.

Work-in-progress notes

Simple resources CRUD

Some functionalities/operations can simply be described as (1) a set of operations (2) over a kind of data

We'll sometimes lazily say CRUD for the "set of operations", but we don't always mean Create-Read-Update-Delete. In fact, most of the time we don't mean those four operations. Instead, since python is our backend language and we aim at using base interfaces as much as possible, our "set of operations" will often be inspired from python's Collections Abstract Base Classes.

So many concrete use cases of this abstraction are parametrized by

  • the set of operation (example, read, write, list, delete...)
  • a name designating the kind/type of data
  • optionally a schema that describes what the structure and contents of that kind of data must be

Further, by making the interface consistent (for example, and preferably, with the interfaces of Collections Abstract Base Classes), it makes it possible to automate how the python interface maps to a REST API interface (see Mapping python collections builtin methods to REST API patterns) and/or a UI interface (see Collections Operations UI Design Patterns).

Examples

  • permissions (keyed by users, groups of users, projects etc.)
  • datasets (again keyed by users etc.)
  • prompt_templates
  • embedders
  • dataset_query_results
  • query_results_aggregators
  • query_results_aggregates
  • tag: For example tag, dataset, tag, group_of_datasets, tag, anything_really. Note that tagging, or annotating can be applied to any kind of data, and is a dual of "grouping", and subsumes hierarchical organization. See Persisting groups of items (tagging stuff) for designs regarding this.

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

raglab-0.1.2.tar.gz (12.6 kB view hashes)

Uploaded Source

Built Distribution

raglab-0.1.2-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

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