shukdevdatta123 commited on
Commit
5fd0c51
·
verified ·
1 Parent(s): 26690d2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -35
app.py CHANGED
@@ -1,8 +1,5 @@
1
  import streamlit as st
2
  import openai
3
- import tempfile
4
- import os
5
- from pymermaid import mermaid
6
 
7
  # Function to call OpenAI GPT model for prompt processing
8
  def get_diagram_code(prompt, diagram_type, api_key):
@@ -11,7 +8,7 @@ def get_diagram_code(prompt, diagram_type, api_key):
11
  openai.api_key = api_key
12
 
13
  response = openai.Completion.create(
14
- engine="gpt-4o",
15
  prompt=f"Generate a {diagram_type} diagram in Mermaid.js syntax based on the following prompt: {prompt}",
16
  max_tokens=500
17
  )
@@ -20,19 +17,6 @@ def get_diagram_code(prompt, diagram_type, api_key):
20
  st.error(f"Error: {e}")
21
  return None
22
 
23
- # Function to render Mermaid.js diagram using pymermaid
24
- def render_mermaid(diagram_code):
25
- # Create a temporary file to save the mermaid code
26
- with tempfile.NamedTemporaryFile(delete=False, suffix=".mmd") as mmd_file:
27
- mmd_file.write(diagram_code.encode('utf-8'))
28
- mmd_file.close()
29
-
30
- # Generate diagram image using pymermaid
31
- output_image_path = mmd_file.name.replace(".mmd", ".png")
32
- mermaid.render(mmd_file.name, output_image_path)
33
-
34
- return output_image_path
35
-
36
  # Streamlit App UI
37
  def main():
38
  st.title("Generate Diagrams using GPT-4 and Mermaid.js")
@@ -59,24 +43,10 @@ def main():
59
  # Render Mermaid code to Streamlit
60
  st.code(diagram_code, language='mermaid')
61
 
62
- # Save diagram as image
63
- try:
64
- image_path = render_mermaid(diagram_code)
65
- st.image(image_path, caption="Generated Diagram", use_column_width=True)
66
-
67
- # Provide download option
68
- with open(image_path, "rb") as img_file:
69
- st.download_button(
70
- label="Download Diagram Image",
71
- data=img_file,
72
- file_name="diagram.png",
73
- mime="image/png"
74
- )
75
-
76
- # Clean up the temporary files
77
- os.remove(image_path)
78
- except Exception as e:
79
- st.error(f"Error generating diagram image: {e}")
80
  else:
81
  st.error("Failed to generate diagram code.")
82
  else:
 
1
  import streamlit as st
2
  import openai
 
 
 
3
 
4
  # Function to call OpenAI GPT model for prompt processing
5
  def get_diagram_code(prompt, diagram_type, api_key):
 
8
  openai.api_key = api_key
9
 
10
  response = openai.Completion.create(
11
+ engine="gpt-4",
12
  prompt=f"Generate a {diagram_type} diagram in Mermaid.js syntax based on the following prompt: {prompt}",
13
  max_tokens=500
14
  )
 
17
  st.error(f"Error: {e}")
18
  return None
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  # Streamlit App UI
21
  def main():
22
  st.title("Generate Diagrams using GPT-4 and Mermaid.js")
 
43
  # Render Mermaid code to Streamlit
44
  st.code(diagram_code, language='mermaid')
45
 
46
+ # Display Mermaid diagram using iframe (mermaid.live)
47
+ diagram_url = f"https://mermaid-js.github.io/mermaid-live-editor/#/edit/{diagram_code}"
48
+ st.markdown(f'<iframe src="{diagram_url}" width="800" height="600"></iframe>', unsafe_allow_html=True)
49
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  else:
51
  st.error("Failed to generate diagram code.")
52
  else: