baconnier commited on
Commit
ed4644b
1 Parent(s): ece369a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +54 -4
app.py CHANGED
@@ -6,6 +6,54 @@ import gradio as gr
6
  from pydantic import BaseModel, Field
7
  from typing import Optional, Literal
8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
  metadone="""
11
  As an AI Prompt Enhancement Specialist, your mission is to elevate the given prompt using state-of-the-art prompting techniques while emphasizing the utilization of previously generated context. Analyze the input prompt and apply the following comprehensive approach to enhance it:
@@ -478,7 +526,7 @@ from typing import Optional, Literal
478
 
479
  class PromptInput(BaseModel):
480
  text: str = Field(..., description="The initial prompt text")
481
- meta_prompt_choice: Literal["done","physics","morphosis", "verse", "phor","bolism"] = Field(..., description="Choice of meta prompt strategy")
482
 
483
  class RefinementOutput(BaseModel):
484
  query_analysis: Optional[str] = None
@@ -502,6 +550,8 @@ class PromptRefiner:
502
  selected_meta_prompt = loic_metaprompt
503
  elif prompt_input.meta_prompt_choice == "done":
504
  selected_meta_prompt = metadone
 
 
505
  else:
506
  selected_meta_prompt = advanced_meta_prompt
507
 
@@ -583,7 +633,7 @@ class GradioInterface:
583
  with gr.Row():
584
  prompt_text = gr.Textbox(label="Type the prompt here")
585
  with gr.Row():
586
- meta_prompt_choice = gr.Radio(["done","physics","morphosis", "verse", "phor","bolism"], label="Choose Meta Prompt", value="morphosis")
587
  refine_button = gr.Button("Refine Prompt")
588
  with gr.Row():
589
  gr.Markdown("### Initial prompt analysis")
@@ -623,7 +673,7 @@ class GradioInterface:
623
  gr.Examples(
624
  examples=[
625
  ["Tell me about that guy who invented the light bulb", "physics"],
626
- ["Explain the universe.", "done"],
627
  ["What's the population of New York City and how tall is the Empire State Building and who was the first mayor?", "morphosis"],
628
  ["List American presidents.", "verse"],
629
  ["Write a story.", "bolism"],
@@ -631,7 +681,7 @@ class GradioInterface:
631
  ["Is nuclear energy good?", "verse"],
632
  ["How does a computer work?", "phor"],
633
  ["How to make money fast?", "done"],
634
- ["how can you prove IT0's lemma in stochastic calculus ?", "verse"],
635
  ],
636
  inputs=[prompt_text, meta_prompt_choice]
637
  )
 
6
  from pydantic import BaseModel, Field
7
  from typing import Optional, Literal
8
 
9
+ echo_prompt_refiner = """You are an AI assistant implementing the ECHO (Self-Harmonized Chain of Thought) method to refine an initial prompt into a more relevant and comprehensive one. Given an initial prompt, follow these steps:
10
+
11
+ 1. Prompt Analysis:
12
+ - Analyze the initial prompt
13
+ - Identify key concepts, objectives, and constraints within the prompt
14
+ - Determine the prompt type (e.g., task-oriented, creative, analytical)
15
+
16
+ 2. Prompt Expansion:
17
+ - Generate 5-7 alternative versions of the prompt that explore different aspects or phrasings
18
+ - Ensure these versions cover various perspectives and potential interpretations
19
+ - Include a mix of more specific, more general, and differently focused versions
20
+
21
+ 3. Prompt Clustering:
22
+ - Group the generated prompts into 2-3 thematic clusters
23
+ - Identify the core themes or objectives represented by each cluster
24
+
25
+ 4. Demonstration Generation:
26
+ - For each cluster, outline how an AI might interpret and approach that prompt version
27
+ - Include potential reasoning steps and areas of focus, without generating actual responses
28
+
29
+ 5. Prompt Refinement:
30
+ - Review the demonstration outlines and identify strengths and weaknesses of each prompt version
31
+ - Refine each version, addressing potential misinterpretations and improving clarity
32
+ - Ensure each refined version maintains the original intent while enhancing specificity or broadening scope as needed
33
+
34
+ 6. Cross-Pollination:
35
+ - Identify effective elements from each refined version
36
+ - Integrate these elements to create a synthesized, improved prompt
37
+
38
+ 7. Final Prompt Synthesis:
39
+ - Combine the most effective elements from all refined versions
40
+ - Construct a final, comprehensive prompt that captures the essence of the original while incorporating improvements
41
+
42
+ 8. Output your results in a JSON format with the following keys:
43
+ - "initial_prompt": The original prompt provided
44
+ - "initial_prompt_evaluation": Your analysis of the initial prompt
45
+ - "expanded_prompts": An array of the alternative prompt versions you generated
46
+ - "prompt_clusters": An object containing the clustered prompt versions
47
+ - "demonstration_outlines": An object containing your approach outlines for each cluster, without actual responses
48
+ - "refined_prompts": An array of the refined prompt versions
49
+ - "refined_prompt": The final, synthesized prompt
50
+ - "explanation_of_refinements": An explanation of how the final prompt improves upon the initial one and any potential limitations or considerations for the refined prompt
51
+
52
+ Ensure each step of your process is thorough and well-documented in the JSON output. Your final refined prompt should be clear, comprehensive, and effectively capture the intent of the initial prompt while addressing any identified shortcomings.
53
+
54
+ Initial prompt: [Insert initial prompt here]
55
+
56
+ Please provide your response in the specified JSON format."""
57
 
58
  metadone="""
59
  As an AI Prompt Enhancement Specialist, your mission is to elevate the given prompt using state-of-the-art prompting techniques while emphasizing the utilization of previously generated context. Analyze the input prompt and apply the following comprehensive approach to enhance it:
 
526
 
527
  class PromptInput(BaseModel):
528
  text: str = Field(..., description="The initial prompt text")
529
+ meta_prompt_choice: Literal["star","done","physics","morphosis", "verse", "phor","bolism"] = Field(..., description="Choice of meta prompt strategy")
530
 
531
  class RefinementOutput(BaseModel):
532
  query_analysis: Optional[str] = None
 
550
  selected_meta_prompt = loic_metaprompt
551
  elif prompt_input.meta_prompt_choice == "done":
552
  selected_meta_prompt = metadone
553
+ elif prompt_input.meta_prompt_choice == "star":
554
+ selected_meta_prompt = echo_prompt_refiner
555
  else:
556
  selected_meta_prompt = advanced_meta_prompt
557
 
 
633
  with gr.Row():
634
  prompt_text = gr.Textbox(label="Type the prompt here")
635
  with gr.Row():
636
+ meta_prompt_choice = gr.Radio(["star","done","physics","morphosis", "verse", "phor","bolism"], label="Choose Meta Prompt", value="morphosis")
637
  refine_button = gr.Button("Refine Prompt")
638
  with gr.Row():
639
  gr.Markdown("### Initial prompt analysis")
 
673
  gr.Examples(
674
  examples=[
675
  ["Tell me about that guy who invented the light bulb", "physics"],
676
+ ["Explain the universe.", "star"],
677
  ["What's the population of New York City and how tall is the Empire State Building and who was the first mayor?", "morphosis"],
678
  ["List American presidents.", "verse"],
679
  ["Write a story.", "bolism"],
 
681
  ["Is nuclear energy good?", "verse"],
682
  ["How does a computer work?", "phor"],
683
  ["How to make money fast?", "done"],
684
+ ["how can you prove IT0's lemma in stochastic calculus ?", "star"],
685
  ],
686
  inputs=[prompt_text, meta_prompt_choice]
687
  )