Spaces:
Runtime error
Runtime error
File size: 3,266 Bytes
17a4116 cc117e5 17a4116 cc117e5 17a4116 cc117e5 17a4116 cc117e5 17a4116 df43c5c cc117e5 17a4116 cc117e5 17a4116 cc117e5 17a4116 cc117e5 17a4116 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
import gradio as gr
import os
import subprocess
import shutil
import openai
css_style = """
.gradio-container {
font-family: "IBM Plex Mono";
}
"""
def process_repository(url, model):
# Split the URL to get the repo name
repo_name = url.split('/')[-1]
if repo_name.endswith('.git'):
repo_name = repo_name[:-4]
# Clone the repo
subprocess.run(['git', 'clone', url], check=True)
try:
# Change directory to the cloned repo
os.chdir(repo_name)
# Run your package command
subprocess.run(['gpt4readability', '.', '--function', 'readme', '--model', model])
# Open the README.md file and return its contents
with open('README.md', 'r') as readme_file:
readme_contents = readme_file.read()
return readme_contents
finally:
# Change back to the original directory
os.chdir('..')
# Delete the repo directory
if os.path.exists(repo_name):
shutil.rmtree(repo_name)
def generate_repo(url, api_key, model):
if api_key:
os.environ['OPENAI_API_KEY'] = api_key.strip()
# if model == 'gpt-4':
# try:
# response = openai.Completion.create(
# model="gpt-4", # or whatever the exact model ID is
# prompt="test",
# max_tokens=5
# )
# print("Access to GPT-4 confirmed!")
# except:
# return "The API key either does not have access to GPT-4 or is not valid."
return process_repository(url, model)
else:
return "Please add a valid OpenAI API Key (you can get them [here](https://platform.openai.com/account/api-keys))"
with gr.Blocks(css=css_style) as demo:
gr.Markdown(f"""
# GPT4Readability (v0.0.3)
*By Dennis Loevlie ([@DennisLoevlie](https://twitter.com/DennisLoevlie))*
[](https://github.com/loevlie/GPT4Readability/blob/main/LICENSE)
GPT4Readability is a powerful tool designed to automatically generate a comprehensive README.md file and suggest code improvements for any Python code repository.
* [GPT4Readability](https://github.com/loevlie/GPT4Readability) is the code used to build this tool.
* [langchain](https://github.com/hwchase17/langchain) is the main library this tool utilizes.
1. Enter API Key ([What is that?](https://platform.openai.com/account/api-keys))
2. Paste in a GitHub Repository URL
3. Choose a model (The gpt-4 API as of July 2023 is not available to everyone)
4. Generate a README or suggestions markdown file
""")
openai_api_key = gr.Textbox(
label="OpenAI API Key", placeholder="sk-...", type="password")
url = gr.Textbox(label="GitHub Repository URL")
model = gr.Dropdown(["gpt-3.5-turbo", "gpt-4"], type="value", label='Model Type')
output = gr.Markdown(label="README.md")
btn = gr.Button("Generate README.md")
btn.click(fn=generate_repo, inputs=[url, openai_api_key, model], outputs=[output], api_name="Generate README.md")
demo.queue(concurrency_count=20)
demo.launch(share=False) |