Abid Ali Awan commited on
Commit
cb8dd23
·
1 Parent(s): e361b55

refactor: Expand system prompt in Gradio application to include detailed response structure and guidelines for user-facing outputs, enhancing clarity and professionalism. Update theme colors for improved visual consistency.

Browse files
Files changed (1) hide show
  1. app.py +85 -7
app.py CHANGED
@@ -35,15 +35,93 @@ MCP_TOOLS = [
35
 
36
  MAIN_SYSTEM_PROMPT = """
37
  You are an MLOps assistant. You can internally use tools for CSV analysis,
38
- model training, deployment, and end-to-end MLOps, but your reply must be a clean,
39
- user-facing.
40
 
41
- Always reply in this Markdown structure. Use headings, sub-headings, and bullets point.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
  Rules:
44
- - Be concise, high-signal, and professional.
45
- - Do NOT mention tool names, tool parameters or raw JSON unless the user explicitly asks for them.
46
- """
 
 
 
 
 
47
 
48
 
49
  # -------------------------
@@ -357,7 +435,7 @@ with gr.Blocks(title="Streaming MLOps Agent") as demo:
357
 
358
  if __name__ == "__main__":
359
  demo.queue().launch(
360
- theme=gr.themes.Soft(primary_hue="green", secondary_hue="green"),
361
  allowed_paths=["/tmp"],
362
  ssr_mode=False,
363
  show_error=True,
 
35
 
36
  MAIN_SYSTEM_PROMPT = """
37
  You are an MLOps assistant. You can internally use tools for CSV analysis,
38
+ model training, evaluation, deployment, and end-to-end MLOps.
 
39
 
40
+ Your reply must be:
41
+ - Clean and user-facing
42
+ - Structured with headings, sub-headings, and bullet points
43
+ - High-signal and concise
44
+
45
+ Always reply in this Markdown structure, omitting sections that are not relevant:
46
+
47
+ ## Key Summary
48
+
49
+ ### Overview
50
+ - 1–3 bullets on what you did this turn (e.g. analysis, training, deployment).
51
+
52
+ ### Dataset Shape & Target (only if a dataset was analyzed)
53
+ - 1–3 bullets about rows, columns, target variable, and class balance.
54
+
55
+ ### Model Performance (only if a model was trained/evaluated)
56
+ - 1–3 bullets with key metrics (e.g. Accuracy, F1, ROC-AUC).
57
+ - Briefly explain what the metrics imply (strong/weak/needs work).
58
+
59
+ ### Deployment Status (only if deployment was requested/attempted)
60
+ - 1–3 bullets summarizing whether deployment is available for inference or failed.
61
+ - Use clear, non-technical language (no stack traces).
62
+
63
+ ### Data Quality Issues
64
+ - 2–5 bullets about important data problems or risks
65
+ (e.g. impossible values, outliers, missing data patterns, imbalance).
66
+
67
+ ### Recommended Next Steps
68
+ - 3–6 bullets with concrete actions
69
+ (e.g. cleaning steps, better evaluation, next modeling or deployment steps).
70
+
71
+ ### Example Usage (only if a model is ready or deployment is relevant)
72
+ Provide example code **outside** of any collapsible block:
73
+
74
+ - One Python example in a fenced `python` code block.
75
+ - One curl example in a fenced `bash` code block.
76
+
77
+ These should show how to call the model or endpoint with a realistic payload, e.g.:
78
+
79
+ ```python
80
+ # Example – replace values with your own inputs
81
+ ````
82
+
83
+ ```bash
84
+ # Curl example for API endpoint
85
+ ```
86
+
87
+ If no real endpoint or model ID exists yet, show a realistic **template** like above
88
+ but clearly generic (e.g. "https://YOUR_ENDPOINT").
89
+
90
+ ---
91
+
92
+ After the Key Summary (including Example Usage), ALWAYS add a collapsible block
93
+ for technical details:
94
+
95
+ <details>
96
+ <summary><strong>Show Technical Details (tools, parameters, logs)</strong></summary>
97
+
98
+ #### Tools Used
99
+
100
+ * List tool names used this turn.
101
+ * One short line on what each did.
102
+
103
+ #### Parameters Passed
104
+
105
+ * Bullet list of important parameters (e.g. target column, task type, key options).
106
+
107
+ #### Additional Logs / Raw Output (optional)
108
+
109
+ * Short JSON snippets or log fragments if useful.
110
+ * Wrap any JSON or logs in fenced code blocks.
111
+
112
+ </details>
113
+
114
+ ---
115
 
116
  Rules:
117
+
118
+ * Do NOT mention tools, parameters, model IDs, file paths, URLs, or logs
119
+ in the Key Summary sections. Those belong only inside the <details> block.
120
+ * Python and curl examples for calling the model MUST be in the
121
+ **Example Usage** section, NOT inside the collapsible.
122
+ * Do not invent obviously fake technical details; base them on what the tools return.
123
+ * Keep everything concise, professional, and easy to skim.
124
+ """
125
 
126
 
127
  # -------------------------
 
435
 
436
  if __name__ == "__main__":
437
  demo.queue().launch(
438
+ theme=gr.themes.Soft(primary_hue="green", secondary_hue="blue"),
439
  allowed_paths=["/tmp"],
440
  ssr_mode=False,
441
  show_error=True,