Text2Diagram / app.py
bhaskartripathi's picture
Create app.py
eae9a22
raw
history blame
1.44 kB
import gradio as gr
import openai
import plantuml
import os
# Function to call GPT-3.5-turbo model
def generate_plantuml_code(api_key, prompt):
openai.api_key = api_key
response = openai.Completion.create(
engine="gpt-3.5-turbo",
prompt=prompt,
max_tokens=150,
n=1,
stop=None,
temperature=0.7,
)
plantuml_code = response.choices[0].text.strip()
return plantuml_code
# Function to convert PlantUML code to SVG image
def plantuml_code_to_svg(plantuml_code):
with open("diagram.txt", "w") as f:
f.write(plantuml_code)
plantuml.exec_cmd(["-tsvg", "diagram.txt"])
with open("diagram.svg", "r") as f:
svg = f.read()
return svg
# Function to process user input and generate diagram
def create_diagram(api_key, description):
plantuml_code = generate_plantuml_code(api_key, description)
svg_image = plantuml_code_to_svg(plantuml_code)
return plantuml_code, svg_image
# Gradio interface
api_key_input = gr.Textbox(label="Enter your OpenAI API key")
description_input = gr.Textbox(lines=5, label="Describe the diagram in natural language")
plantuml_code_output = gr.Textbox(lines=10, label="Generated PlantUML code")
diagram_output = gr.Image(plot=True, label="Diagram")
iface = gr.Interface(
fn=create_diagram,
inputs=[api_key_input, description_input],
outputs=[plantuml_code_output, diagram_output],
)
iface.launch()