Not-Grim-Refer's picture
Upload 3 files
b00365a
raw
history blame
1.71 kB
# 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