genaibeauty commited on
Commit
578c909
·
verified ·
1 Parent(s): 1b942d5

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -0
app.py ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Import required libraries
2
+ from transformers import pipeline, AutoTokenizer, AutoModelForCausalLM
3
+ import gradio as gr
4
+
5
+ # Load the Hugging Face model and tokenizer
6
+ model_name = "TroyDoesAI/Mermaid-Llama-3-8B"
7
+
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
9
+ model = AutoModelForCausalLM.from_pretrained(model_name)
10
+
11
+ # Define the pipeline for text generation
12
+ pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
13
+
14
+ # Function to generate Mermaid.js code and return diagram
15
+ def generate_mermaid_code(user_input):
16
+ # Generate Mermaid.js code using the model
17
+ prompt = f"Create a Mermaid.js diagram based on the following story:\n{user_input}\nMermaid.js Code:"
18
+ generated = pipe(prompt, max_length=200, num_return_sequences=1, do_sample=True)
19
+
20
+ # Extract the generated Mermaid.js code
21
+ mermaid_code = generated[0]['generated_text'].split("Mermaid.js Code:")[-1].strip()
22
+
23
+ # Create the full output for Gradio with Mermaid.js rendering
24
+ mermaid_output = f"""
25
+ ```mermaid
26
+ {mermaid_code}
27
+ ```
28
+ """
29
+ return mermaid_code, mermaid_output
30
+
31
+ # Define the Gradio interface
32
+ with gr.Blocks() as demo:
33
+ gr.Markdown("## Mermaid.js Diagram Generator")
34
+ gr.Markdown("Provide a story, and the AI will generate a Mermaid.js diagram code.")
35
+
36
+ with gr.Row():
37
+ input_text = gr.Textbox(label="Story Input", lines=5, placeholder="Enter your story here...")
38
+ output_code = gr.Textbox(label="Generated Mermaid.js Code", lines=5)
39
+
40
+ output_diagram = gr.Markdown(label="Mermaid.js Diagram")
41
+
42
+ # Button to trigger generation
43
+ generate_button = gr.Button("Generate Diagram")
44
+
45
+ # Link input to output
46
+ generate_button.click(generate_mermaid_code, inputs=input_text, outputs=[output_code, output_diagram])
47
+
48
+ # Launch the Gradio interface
49
+ demo.launch()