CoderGPT
CoderGPT is a versatile command-line interface (CLI) designed to enhance coding workflows. It leverages the capabilities of Large Language Models (LLM) and Generative Pre-trained Transformers (GPT) to assist developers in various tasks such as commenting, optimizing, documenting, and testing their code. This tool integrates seamlessly with langchain, providing a powerful backend for code generation and modification.
Model Providers Implemented
- OpenAI [
gpt-3.5-turbo,gpt-4,gpt-4-turbo-preview(default)] - Google [
gemini-pro] - Anthropic [
claude-2]
Prerequisites
Before you begin using CoderGPT, you must set the OPENAI_API_KEY, GOOGLE_API_KEY and ANTHROPIC_API_KEY environment variables on your machine. This key enables authentication with the OpenAI and Google APIs, which are essential for the language model's operation.
export OPENAI_API_KEY='your-api-key-here'
export GOOGLE_API_KEY='your-api-key-here'
export ANTHROPIC_API_KEY='your-api-key-here''
Ensure that you replace your-api-key-here with your actual OpenAI API key to enable the full functionality of CoderGPT.
Getting Started
Installation
Install CoderGPT easily using pip:
pip install codergpt
Basic Usage
Invoke the CoderGPT CLI with the following syntax:
codergpt [OPTIONS] COMMAND [ARGS]...
Options
-v, --verbose INTEGER: Adjust the verbosity level (0 for default, 1 for verbose, 2 for debug).-q, --quiet: Suppress output.--version: Show the version number and exit.--model: Model to use for performing requests.- Available models:
- OpenAI: [
gpt-3.5-turbo,gpt-4,gpt-4-turbo-preview(default)] - Google: [
gemini-pro] - Anthropic[
claude-2]
- OpenAI: [
- Available models:
Commands
Inspect
Analyze a package and display its file-language mapping.
codergpt --model <model-name> inspect <path>
Example
$ codergpt --model gpt-4 inspect src/codergpt/
Explain
Provide an explanation for a specific function or class within a package.
codergpt explain <path> [--function <function_name>] [--classname <class_name>]
Example
$ codergpt explain src/codergpt/explainer/explainer.py --function explain
Comment
Automatically add comments to your code. Choose whether to overwrite the existing file or create a new one.
codergpt comment <path> [--overwrite/--no-overwrite]
Example
$ codergpt comment greetings.py --overwrite
Optimize
Enhance your code by optimizing it and adding comments. You can decide to overwrite the original file or save the changes separately.
codergpt optimize <path> [--overwrite/--no-overwrite]
Example
$ codergpt optimize example.py --overwrite
Write Tests
Generate test cases for a specified code file, targeting particular functions and/or classes.
codergpt write-tests <filename> [--function <function_name>] [--class <classname>] [--outfile <output_filename>]
Example
$ codergpt write-tests example.py --function add --class Calculator
Document
Create documentation for a given code file by processing and explaining the code.
codergpt document <path> [--outfile <output_filename>]
Example
$ codergpt document example.py
Development & Contribution
The CoderGPT CLI is developed in Python, utilizing the click library for creating commands. Here's a template for adding a new command:
import click
from codergpt import CoderGPT
coder = CoderGPT()
@click.command()
@click.argument('path', type=click.Path(exists=True))
def new_command(path):
# Implement command logic here
pass
Contributions to CoderGPT are highly encouraged! Please review our contributing guidelines before making pull requests.
License
CoderGPT is open-sourced under the MIT License. For more details, refer to the LICENSE.md file.
Acknowledgments
This project was scaffolded using the cookiecutter framework, based on the monarch-project-template. Updates are managed through cruft.
For comprehensive details on the CoderGPT CLI, please refer to the official documentation.
Metadata
Release files for CoderGPT 0.1.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| codergpt-0.1.8.tar.gz | 14.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| codergpt-0.1.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 33.0 kB
Release files / codergpt-0.1.8.tar.gz
| Download URL | codergpt-0.1.8.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
037549505f6d2bc6c0d36a75d7990c7974490ae2fecaaa7095aed6c1ca40767a
|
|
BLAKE2b-256 checksum How to use checksums |
070839a20c8ef3eb9626e21a34603d23d2ae8fa41e6c1e7d5c68423e316eb8f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.18
|
Release files / codergpt-0.1.8-py3-none-any.whl
| Download URL | codergpt-0.1.8-py3-none-any.whl |
|---|---|
| Size | 18.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbe701ff915d23c153fea6434d9c95a86c74d92127d3d64cc2f87bcc60492ffb
|
|
BLAKE2b-256 checksum How to use checksums |
0a4b8a17202785e0dd8b50214653806a5bb07ee6a28971573787def1d22b84cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.9.18
|