Not-Grim-Refer's picture
Update app.py
7bf2da3
import gradio as gr
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, Conversation, pipeline
# Load the best pre-trained models and tokenizers for coding tasks
models_and_tokenizers = [
("EleutherAI/gpt-neo-2.7B", AutoTokenizer.from_pretrained("EleutherAI/gpt-neo-2.7B"), AutoModelForSeq2SeqLM.from_pretrained("EleutherAI/gpt-neo-2.7B")),
("Bard", AutoTokenizer.from_pretrained("bard"), AutoModelForSeq2SeqLM.from_pretrained("bard")),
("Turing NLG", AutoTokenizer.from_pretrained("Turing NLG"), AutoModelForSeq2SeqLM.from_pretrained("Turing NLG")),
("GPT-3", AutoTokenizer.from_pretrained("gpt-3"), AutoModelForSeq2SeqLM.from_pretrained("gpt-3")),
("GPT-J", AutoTokenizer.from_pretrained("gpt-j"), AutoModelForSeq2SeqLM.from_pretrained("gpt-j")),
]
# Create the conversational pipeline
conversational_pipeline = pipeline("conversational", model=models_and_tokenizers[0][1], tokenizer=models_and_tokenizers[0][0])
# Define a function to handle conversation with multiple models
def handle_conversation(models, prompt):
responses = []
for model, tokenizer in models:
conversation = Conversation(prompt)
response = pipeline("conversational", model=model, tokenizer=tokenizer)(conversation)
responses.append(response.generated_responses[-1])
return responses
# Replace the following line with the user's input code snippet
user_code = """
def reverse_prompt_engineer(code):
# TODO: Reverse prompt engineer the code
return None
"""
# Use the handle_conversation function to get responses from multiple models
responses = handle_conversation(models_and_tokenizers, f"Now I want you to reverse prompt engineer the {user_code}. Give me a single prompt that would create a similar output.")
print(responses)
# Instruct the user how to use the tool
print("To use this tool, simply paste your code snippet into the `user_code` variable and then run the code. The tool will then generate a prompt that can be used to create similar code.")
# Create the interface
app = gr.Interface(
fn=handle_conversation,
inputs="text",
outputs="text",
title="Reverse Prompt Engineer",
description="Generate a prompt that can be used to create similar code.",
)
app.launch()