lgaleana commited on
Commit
28e7d81
1 Parent(s): 788a6f6

Dynamic prompting

Browse files
ai_tasks/headlines_for_images.py CHANGED
@@ -1,4 +1,3 @@
1
- import json
2
  from typing import Dict, List
3
 
4
  from ai import llm
@@ -32,11 +31,13 @@ Original dimensions:
32
  def get_headline_for_image(
33
  summary: str, dimensions: str, image_infos: List[Dict]
34
  ) -> str:
35
- print_system("Generating ad from images...")
36
- instructions = PROMPT.format(
37
- summary=summary,
38
- image_infos=json.dumps(image_infos, indent=2),
39
- dimensions=dimensions,
40
  )
 
 
 
 
 
41
  messages = [{"role": "user", "content": instructions}]
42
  return llm.next(messages)
 
 
1
  from typing import Dict, List
2
 
3
  from ai import llm
 
31
  def get_headline_for_image(
32
  summary: str, dimensions: str, image_infos: List[Dict]
33
  ) -> str:
34
+ return _get_headline_for_image(
35
+ PROMPT, summary=summary, dimensions=dimensions, image_infos=image_infos
 
 
 
36
  )
37
+
38
+
39
+ def _get_headline_for_image(prompt: str, **kwargs) -> str:
40
+ print_system("Generating ad from images...")
41
+ instructions = prompt.format(**kwargs)
42
  messages = [{"role": "user", "content": instructions}]
43
  return llm.next(messages)
ai_tasks/text_summary.py CHANGED
@@ -11,7 +11,11 @@ What is this website about?
11
 
12
 
13
  def summarize_text(text: str) -> str:
 
 
 
 
14
  print_system("Summarizing text...")
15
- instructions = PROMPT.format(text=text)
16
  messages = [{"role": "user", "content": instructions}]
17
  return llm.next(messages)
 
11
 
12
 
13
  def summarize_text(text: str) -> str:
14
+ return _summarize_text(PROMPT, text=text)
15
+
16
+
17
+ def _summarize_text(prompt: str, **kwargs) -> str:
18
  print_system("Summarizing text...")
19
+ instructions = prompt.format(**kwargs)
20
  messages = [{"role": "user", "content": instructions}]
21
  return llm.next(messages)
gradio_app.py CHANGED
@@ -3,7 +3,6 @@ import gradio as gr
3
  import ai_tasks
4
  import code_tasks
5
  import custom_code
6
- from control_flow.main import _run
7
 
8
 
9
  def open__get_text_from_url() -> str:
@@ -32,6 +31,30 @@ def get_images_analysis(images):
32
  return custom_code.image_analysis.analyze_images(eval(images))
33
 
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  with gr.Blocks() as demo:
36
  gr.Markdown(
37
  """
@@ -91,7 +114,7 @@ with gr.Blocks() as demo:
91
  gr.Markdown("AI task: summarize text")
92
  with gr.Row():
93
  with gr.Column():
94
- gr.Textbox(
95
  ai_tasks.text_summary.PROMPT,
96
  label="Instructions",
97
  interactive=True,
@@ -105,7 +128,7 @@ with gr.Blocks() as demo:
105
  gr.Markdown("AI task: generate headline for image")
106
  with gr.Row():
107
  with gr.Column():
108
- gr.Textbox(
109
  ai_tasks.headlines_for_images.PROMPT,
110
  label="Instructions",
111
  interactive=True,
@@ -118,6 +141,8 @@ with gr.Blocks() as demo:
118
  interactive=False,
119
  )
120
 
 
 
121
  execute.click(
122
  get_text_and_images_from_url, inputs=[url], outputs=[text, images]
123
  ).success(
@@ -125,10 +150,12 @@ with gr.Blocks() as demo:
125
  inputs=[images],
126
  outputs=[image_infos],
127
  ).success(
128
- ai_tasks.text_summary.summarize_text, inputs=[text], outputs=[summary]
 
 
129
  ).success(
130
- ai_tasks.headlines_for_images.get_headline_for_image,
131
- inputs=[summary, dimensions, image_infos],
132
  outputs=[headline],
133
  )
134
 
 
3
  import ai_tasks
4
  import code_tasks
5
  import custom_code
 
6
 
7
 
8
  def open__get_text_from_url() -> str:
 
31
  return custom_code.image_analysis.analyze_images(eval(images))
32
 
33
 
34
+ def summarize_text(prompt, url, dimensions, text, images, image_infos, summary):
35
+ return ai_tasks.text_summary._summarize_text(
36
+ prompt,
37
+ url=url,
38
+ dimensions=dimensions,
39
+ text=text,
40
+ images=images,
41
+ image_infos=image_infos,
42
+ summary=summary,
43
+ )
44
+
45
+
46
+ def get_headline_for_image(prompt, url, dimensions, text, images, image_infos, summary):
47
+ return ai_tasks.headlines_for_images._get_headline_for_image(
48
+ prompt,
49
+ url=url,
50
+ dimensions=dimensions,
51
+ text=text,
52
+ images=images,
53
+ image_infos=image_infos,
54
+ summary=summary,
55
+ )
56
+
57
+
58
  with gr.Blocks() as demo:
59
  gr.Markdown(
60
  """
 
114
  gr.Markdown("AI task: summarize text")
115
  with gr.Row():
116
  with gr.Column():
117
+ summary_prompt = gr.Textbox(
118
  ai_tasks.text_summary.PROMPT,
119
  label="Instructions",
120
  interactive=True,
 
128
  gr.Markdown("AI task: generate headline for image")
129
  with gr.Row():
130
  with gr.Column():
131
+ headline_prompt = gr.Textbox(
132
  ai_tasks.headlines_for_images.PROMPT,
133
  label="Instructions",
134
  interactive=True,
 
141
  interactive=False,
142
  )
143
 
144
+ vars_ = [url, dimensions, text, images, image_infos, summary]
145
+
146
  execute.click(
147
  get_text_and_images_from_url, inputs=[url], outputs=[text, images]
148
  ).success(
 
150
  inputs=[images],
151
  outputs=[image_infos],
152
  ).success(
153
+ summarize_text,
154
+ inputs=[summary_prompt] + vars_, # type: ignore
155
+ outputs=[summary],
156
  ).success(
157
+ get_headline_for_image,
158
+ inputs=[headline_prompt] + vars_, # type: ignore
159
  outputs=[headline],
160
  )
161