Spaces:
Running
Running
import gradio as gr | |
import cohere | |
import os | |
co = cohere.Client( | |
api_key=os.getenv('api_key'), # This is your trial API key | |
) | |
def cohere_response(msg): | |
stream = co.chat_stream( | |
model='command-r-plus', | |
message=msg, | |
temperature=0.3, | |
chat_history=[], | |
prompt_truncation='AUTO', | |
) | |
output = '' | |
for event in stream: | |
if event.event_type == "text-generation": | |
output += event.text | |
print(event.text, end='') | |
return output | |
def generate_mockup(problem): | |
prompt_sum = f'''You are a UX designer who is an expert in generating front-end code for a given requirement from a product manager: {problem}. | |
You need to carefully understand the requirement and generate the HTML code for a series of mockups that together form a clickable prototype. | |
You can use Bootstrap and popularly available visual libraries to generate the code.Each screen should be clearly delimited by the header - Screen 1, Screen 2, Screen 3, etc. Do not generate placeholders and always make assumptions that make the generated | |
mockups useful to solve real-world problems. Each mockup should link to the next, creating a seamless user experience. The prototype should be visually appealing and | |
satisfy the requirement as a mockup. You are supposed to just generate the HTML code and nothing else as output.''' | |
response = cohere_response(prompt_sum) | |
return response | |
# Define a function to handle form submissions (this is just a placeholder) | |
def handle_form(requirements): | |
print(requirements) | |
emp_content = generate_mockup(requirements) | |
#final_html_content = extract_html(emp_content) | |
return emp_content, emp_content | |
# Create a Gradio interface to showcase the HTML content | |
gr.Interface( | |
fn=handle_form, | |
inputs=gr.Textbox(), | |
outputs=[gr.HTML(),gr.Textbox()], | |
title="Mockup Generator", | |
description="Generate a mockup for a given requirement", | |
examples=["Design an interface for a food delivery app payment checkout screen, a menu with categories like 'Asian Cuisine' and 'Italian Pasta', and a user profile section.","Generate a newsletter template for a tech company with sections for latest news, featured products, and upcoming events."], | |
).launch() | |