Skip to main content

RAGWrangler - A simple RAG (Retrieval-Augumented Generation) Task Manager

RAGWrangler is a Python project designed to streamline the management of RAG tasks using generative language models and the Weaviate database.

With this tool, you can automatically create, retrieve, and store the outputs of RAG tasks in a structured manner in Weaviate, allowing for easy management and tracking of outputs, ultimately saving time and resources.

Features

  • Automated Task Handling: Simplify the creation and management of tasks with a straightforward Python class interface.
  • Weaviate Integration: Seamlessly store and retrieve task outputs using Weaviate database integration.
  • Support for Multiple Language Models: You can easily swap out language models as desired.
  • Logging: Utilize integrated logging for effortless debugging and tracking of task statuses.

Installation

The tool should be compatible with Python 3.8 and higher, although development primarily utilized Python 3.9.

To get started, install the necessary Python packages using the command below:

pip install ragwrangler

Quickstart

See example_usage.py to see a brief example of how to use the tool.

Usage

You can connect to any Weaviate instance to save your data. Refer to the Weaviate documentation for more information on how to set up & connect to a Weaviate instance.

The primary class you will interact with is RAGTask.

RAGTask

Instantiate a RAGTask for each generative task to be handled.

Provide it with a Weaviate instance, and a builder function. You will also need to set the OpenAI API key.

import weaviate, os
from ragwrangler import RAGTask, set_openai_api_key

client = weaviate.Client(
    url=os.environ['WCS_URL'],
    auth_client_secret=weaviate.AuthApiKey(os.environ['WCS_ADMIN_KEY']),
    additional_headers={"X-OpenAI-Api-Key": os.environ["OPENAI_APIKEY"]}
)

set_openai_api_key(os.environ["OPENAI_APIKEY"])
quiz_rag = RAGTask(client=client, task_prompt_builder=revision_quiz_json_builder)

Where revision_quiz_json_builder is a function that takes in a source text and returns a task prompt for the LLM.

Extend RAGTask by defining custom task prompt builder functions that dictate how to generate prompts from the source text, which are then used to derive outputs.

Working with Tasks

To create a new task, instantiate an object of RAGTask (or its extension) with a source text:

quiz_rag = RAGTask(client=client, task_prompt_builder=revision_quiz_json_builder)

To obtain the task output, utilize the get_output method, specifying a model name if desired:

output = task.get_output(source_text="Your source text here", model_name="gpt-3.5-turbo")

License

This project is licensed under the MIT License.

© 2023 JP Hwang

Metadata

Release files for ragwrangler 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ragwrangler 0.1.4
File Size Uploaded
ragwrangler-0.1.4.tar.gz 8.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ragwrangler 0.1.4
File Interpreter ABI Platform
ragwrangler-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 17.0 kB

Release files / ragwrangler-0.1.4.tar.gz

Download URL ragwrangler-0.1.4.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
95d2a947d15006306a6ae9c901e4e6677f2bbb537becf6f0e58b072b2969897f
BLAKE2b-256 checksum
How to use checksums
b997756b9cf6f7c43f20b99457842c2e5c06e08195d189ce6480d063c5139120
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release files / ragwrangler-0.1.4-py3-none-any.whl

Download URL ragwrangler-0.1.4-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6759f81df4074278127ff32c12c9b4319d413312ca716c2264436a4f356333bd
BLAKE2b-256 checksum
How to use checksums
394da6ca2484fe65dec1ee2d0206e23b5c2c3808d925649ec7c391f97fef5572
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.8

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page