Not-Grim-Refer commited on
Commit
b00365a
1 Parent(s): 466dfa3

Upload 3 files

Browse files
Files changed (3) hide show
  1. main.py +52 -0
  2. readme.md +15 -0
  3. requirements.txt +4 -0
main.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # main.py
2
+ import streamlit as st
3
+ import transformers
4
+ import langchain
5
+ import agents
6
+ from streamlit.script_runner import StopException
7
+
8
+ # Define function to reverse prompt engineer code
9
+ def reverse_prompt_engineer(code):
10
+ # Use natural language processing to analyze code
11
+ nlp_analysis = langchain.analyze(code)
12
+
13
+ # Choose the best free pretrained model for this task
14
+ model_name = "microsoft/CodeGPT-small-py-adaptedGPT2"
15
+ tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
16
+ model = transformers.AutoModelForCausalLM.from_pretrained(model_name)
17
+
18
+ # Generate perfect prompt using analyzed code
19
+ perfect_prompt = agents.generate_prompt(nlp_analysis)
20
+
21
+ # Chat with user to make additional changes to prompt
22
+ chatbot = agents.ChatGPT(model=model, tokenizer=tokenizer)
23
+ final_prompt = chatbot.chat(perfect_prompt)
24
+
25
+ # Use final prompt to generate similar code using ChatGPT
26
+ generated_code = chatbot.generate_code(final_prompt)
27
+
28
+ return generated_code
29
+
30
+ # Streamlit UI
31
+ st.set_page_config(page_title="Code Generator", layout="wide", initial_sidebar_state="expanded")
32
+ st.title("Code Generator")
33
+
34
+ st.sidebar.title("Input")
35
+ code_input = st.sidebar.text_area("Enter your code here:", '''
36
+ def greet(name):
37
+ print("Hello, " + name + ". How are you doing today?")
38
+
39
+ greet("John")
40
+ ''')
41
+
42
+ if st.sidebar.button("Generate Code"):
43
+ if code_input.strip() == "":
44
+ st.error("Please enter some code in the input field.")
45
+ else:
46
+ try:
47
+ generated_code = reverse_prompt_engineer(code_input)
48
+ st.code(generated_code)
49
+ except Exception as e:
50
+ st.error(f"An error occurred: {str(e)}")
51
+ raise StopException
52
+
readme.md ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Reverse-Prompt-Engineering-Code-With-Langchain
3
+ emoji: 🌍
4
+ colorFrom: black
5
+ colorTo: gold
6
+ sdk: streamlet
7
+ sdk_version: 1.24.0
8
+ app_file: main.py
9
+ pinned: true
10
+ license: mit
11
+
12
+ ---
13
+
14
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
15
+
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ transformers
2
+ langchain
3
+ agents
4
+ streamlit