Skip to main content

When at first you don’t succeed, vibe, vibe again.

Project description

VibeRetry

Table of Contents

Introduction

VibeRetry is a lightweight python package that allows users to use natural language (LLMs) to intelligently retry failed function calls. For example, VibeRetry can be used as a decorator to wrap a function and, in the event of an exception, the LLM will decide whether to retry the function and for how long to wait before retrying. It supports OpenAI and Google Gemini clients currently and a simple example illustrating how it can be used can be seen below:

from google import genai
from viberetry import VibeRetry

# create a google gemini client
client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))

# create a viberetry instance using the above client and specify a model
viberetry = VibeRetry(client, model="gemini-2.0-flash-lite")

# the example below simulates a function that always raises an exception
# to demonstrate the retry mechanism
@viberetry(max_retries=3, remarks="use exponential backoff")
def simulate_failure() -> int:
    """
    This function raises a simulated exception to demonstrate the retry mechanism.
    """
    raise Exception("Simulated exception.")

# this will fail, but the LLM will retry it a few times
# before finally raising the exception
simulate_failure()

VibeRetry is published on pypi and can be easily installed with:

python3 -m pip install viberetry

Details on the usage of the package and available APIs can be found on the wiki page.

Features

  • Natural Language Conditions: Use natural language to check for conditions, making your code more readable and intuitive.
  • Multi-provider Support: Seamlessly switch between different LLM providers. VibeRetry currently supports OpenAI and Google Gemini.
  • Extensible: The modular design allows for easy extension to other LLM providers in the future.
  • Custom Exceptions: Provides custom exceptions for better error handling and debugging.

Technologies

Technologies used by VibeRetry are as below:

Done with:

Python

Project Repository
https://github.com/vibe-engineers/viberetry

Team

Contributing

If you are looking to contribute to the project, you may find the Developer Guide useful.

In general, the forking workflow is encouraged and you may open a pull request with clear descriptions on the changes and what they are intended to do (enhancement, bug fixes etc). Alternatively, you may simply raise bugs or suggestions by opening an issue or raising it up on discord.

Note: Templates have been created for pull requests and issues to guide you in the process.

Others

For any questions regarding the implementation of the project, you may also reach out on discord.

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

viberetry-1.0.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

viberetry-1.0.0-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file viberetry-1.0.0.tar.gz.

File metadata

  • Download URL: viberetry-1.0.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for viberetry-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e019683699adac3e7831e3b74a11068429e0350b5298bb86b10e38f060dfd6f6
MD5 4a1a033a212c701a97a0bf892849e988
BLAKE2b-256 508deed7f98d69ebfae879f4749f769a772d2757e74703e80071ff51172cb591

See more details on using hashes here.

File details

Details for the file viberetry-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: viberetry-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for viberetry-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7adad2326807cf3286ef31b6fefca2cf6c6a08c9cad9882fbef95e201af167db
MD5 90c024020be598f756d8cb025f4008f8
BLAKE2b-256 a946a54efc885e332c67083a280a2921b34c6c80cc36fef0548501d33d18a5fc

See more details on using hashes here.

Supported by

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