Skip to main content

chatGptOps

Devops but with chatGptOoops

Install

Setup

In your application, set the following configuration values:

  • OPENAI_API_KEY
  • GITHUB_FINE_GRAINED_ACCESS_TOKEN with access to your repo 'issues'
  • GITHUB_ORG_NAME_OR_USERNAME
  • GIT_REPO_NAME

Hint python-dotenv is an excellent package for reading key-value pairs from a .env file (or envrionment) and set them as environment variables.

Example usage

Capture unhandled exceptions in a python flask application:

  • Ask ChatGTP what the problem might be (sending the error context)
  • Create a github issue with proposed fix from ChatGPT / llm
  • Ensure unique hash of issue is used to avoid filing duplicate issues for that exception
import sys
import logging
import os
from ChatGPTHandler import ChatGPTHandler
from flask import Flask
from dotenv import load_dotenv
from unhandled_exception_logger import (
    unhandled_exception_setup,
    handle_exception,
)

load_dotenv()

PYTHON_LOG_LEVEL = os.getenv("PYTHON_LOG_LEVEL", "DEBUG")


# Register chatGPTHandler log handler
chatGPTHandler = ChatGPTHandler()
chatGPTHandler.setLevel("CRITICAL")

unhandled_exception_setup(handler=chatGPTHandler)


logger = logging.getLogger()
logger.setLevel(PYTHON_LOG_LEVEL)
logger.addHandler(chatGPTHandler)


# # Direct all uncaught exceptions to handle_exception
sys.excepthook = handle_exception


# Minimal python app example with example unhandled exception
app = Flask(__name__)
logging.getLogger("werkzeug").disabled = True
app.logger.disabled = True


@app.errorhandler(Exception)
def flask_handle_exception(e):
    handle_exception(
        sys.exc_info()[0],
        sys.exc_info()[1],
        sys.exc_info()[2],
        handler=chatGPTHandler,  # noqa: E501
    )


@app.errorhandler(500)
def error_page(e):
    return "An error occurred"


@app.route("/")
def index():
    return "index"


@app.route("/error")
def error():
    colors = ["Red", "Blue"]
    print(colors[3])
    names = ["Bob", "Alice"]
    print(names[2])
    return "<p>Hello, World!</p>"


if __name__ == "__main__":
    app.run(threaded=True)

Release files for ChatGPTOps 0.0.1

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

Source distribution (sdist)

Source distribution for ChatGPTOps 0.0.1
File Size Uploaded
ChatGPTOps-0.0.1.tar.gz 4.2 kB Details

Built distribution (wheel)

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

Total release size: 8.6 kB

Release files / ChatGPTOps-0.0.1.tar.gz

Download URL ChatGPTOps-0.0.1.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
f65081f75e717e82ee34ef72aaa40a71e1d79b3f8d838af92fae083e92a4f3bf
BLAKE2b-256 checksum
How to use checksums
fcf417aea0f51bb763329281246aa67e016c9b73086af6046d2a352dd486a648
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release files / ChatGPTOps-0.0.1-py3-none-any.whl

Download URL ChatGPTOps-0.0.1-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
baf95aedfc7ba73ae3dc2deb4d598a83480b0c31f978d774ddee7848162391ff
BLAKE2b-256 checksum
How to use checksums
6a3a25b794d8667d23589b23c21fa70dcf880e7e4dbabab0332e553a01dfe893
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.0.1 This release

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