Spaces:
Runtime error
Runtime error
# main.py | |
import streamlit as st | |
import transformers | |
import langchain | |
import agents | |
from streamlit.script_runner import StopException | |
# Define function to reverse prompt engineer code | |
def reverse_prompt_engineer(code): | |
# Use natural language processing to analyze code | |
nlp_analysis = langchain.analyze(code) | |
# Choose the best free pretrained model for this task | |
model_name = "microsoft/CodeGPT-small-py-adaptedGPT2" | |
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name) | |
model = transformers.AutoModelForCausalLM.from_pretrained(model_name) | |
# Generate perfect prompt using analyzed code | |
perfect_prompt = agents.generate_prompt(nlp_analysis) | |
# Chat with user to make additional changes to prompt | |
chatbot = agents.ChatGPT(model=model, tokenizer=tokenizer) | |
final_prompt = chatbot.chat(perfect_prompt) | |
# Use final prompt to generate similar code using ChatGPT | |
generated_code = chatbot.generate_code(final_prompt) | |
return generated_code | |
# Streamlit UI | |
st.set_page_config(page_title="Code Generator", layout="wide", initial_sidebar_state="expanded") | |
st.title("Code Generator") | |
st.sidebar.title("Input") | |
code_input = st.sidebar.text_area("Enter your code here:", ''' | |
def greet(name): | |
print("Hello, " + name + ". How are you doing today?") | |
greet("John") | |
''') | |
if st.sidebar.button("Generate Code"): | |
if code_input.strip() == "": | |
st.error("Please enter some code in the input field.") | |
else: | |
try: | |
generated_code = reverse_prompt_engineer(code_input) | |
st.code(generated_code) | |
except Exception as e: | |
st.error(f"An error occurred: {str(e)}") | |
raise StopException | |