No project description provided
Project description
Code Sage
A django middleware package that provides suggestions for unhandled errors/exceptions by using OpenAI.
Currently, the suggestions are added to the python loggers extra fields.
Features
- Provide suggestions to resolve unhandled errors using OpenAI
- Locally cached code sage suggestions
- Easily enable or disable code sage per environment
- Customize code sage's suggestion response word length
Requirements
An API key from OpenAPI, which can be found here.
Quickstart
- Install
code-sage
with a package manager, eg.:pip install code-sage
poetry add code-sage
pipenv install pipenv
- Add the following to either django settings or environment variables:
OPEN_AI_API_KEY = "your-api-key"
CODE_SAGE_ENABLED = True
- Update the django middleware to include
code-sage
MIDDLEWARE = [
# ...
"code-sage.middleware.ErrorHandlerMiddleware",
# ...
]
Example
This was tested with the code
for x in 100:
print(x)
which gave the suggestion
To fix this error, you need to replace the line "for x in 100:" with "for x in range(100):". This will create an iterable object from the integer 100, allowing the loop to execute correctly.
Testing showed that it can also reference variables names when suggesting a solution. This is thanks to the
traceback.format_exc()
that is provided to OpenAI when requesting a solution.
This also plays well with things like datadog, thanks to using the extra
field in pythons logging.
Configuration
A few things can be done to configure code sage. These can be set in either environment variables or through django settings files.
Setting | Type | Default |
---|---|---|
OPEN_AI_API_KEY | string | (None) |
CODE_SAGE_ENABLED | Boolean | False |
CODE_SAGE_SUGGESTION_WORD_LIMIT | Integer | 120 |
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
Built Distribution
Hashes for code_sage-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b69bbe698c40df9b37bae1f6d53f675fd364c0c22313919fd75bc022db51269d |
|
MD5 | 2a730576d0f9c59a4e3eb3b0d5802704 |
|
BLAKE2b-256 | 19bd7626ca2608c59699ea9ff4e22c7f96b87f7f975b76e81e2a25be0b66dd06 |