sofiamak commited on
Commit
820597e
·
verified ·
1 Parent(s): a958f6c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -7
app.py CHANGED
@@ -8,11 +8,12 @@ MODEL_NAME = "gpt-4o-mini"
8
  client = OpenAI(api_key=API_KEY)
9
 
10
  SYSTEM_PROMPT = """You are a creative pet name generator.
11
- Given species, appearance and personality, propose exactly ONE concise, pronounceable name.
12
  Rules:
13
  - Output exactly one name with a short explanation.
14
  - Avoid offensive or trademarked terms.
15
  - Prefer 2–3 syllables.
 
16
  - Provide a short meaning/explanation (≤12 words).
17
  - If language is Chinese/Russian/Spanish, output in that language, with romanization if helpful.
18
  - No numbers, no long phrases, no public-figure names.
@@ -20,18 +21,19 @@ Output strictly as:
20
  Name — short meaning
21
  """
22
 
23
- def build_prompt(species, look, personality, language):
24
  return f"""
25
  Target language: {language}
26
  Species: {species}
27
  Appearance: {look}
28
  Personality: {personality}
 
29
  Generate exactly ONE creative pet name.
30
  """
31
 
32
- def generate_name(species, look, personality, language):
33
  try:
34
- prompt = build_prompt(species, look, personality, language)
35
  resp = client.chat.completions.create(
36
  model=MODEL_NAME,
37
  temperature=0.7,
@@ -45,18 +47,19 @@ def generate_name(species, look, personality, language):
45
  except Exception as e:
46
  return f"⚠️ 出错:{html.escape(str(e))}"
47
 
48
- with gr.Blocks(title="PetName Genie") as demo:
49
- gr.Markdown("## 🐾 PetName Genie|宠物起名机\n输入宠物信息,一键生成一个名字 + 简短含义。")
50
 
51
  species = gr.Textbox(label="宠物种类", placeholder="例:金毛 / 英短 / 仓鼠 / 鹦鹉")
52
  look = gr.Textbox(label="外表特征", placeholder="例:橘色短毛,大眼睛,白爪")
53
  personality = gr.Textbox(label="性格特点", placeholder="例:粘人、活泼、聪明")
 
54
  language = gr.Radio(["English","中文","Русский","Español"], value="English", label="输出语言")
55
 
56
  btn = gr.Button("✨ 起名!")
57
  out = gr.Markdown()
58
 
59
- btn.click(generate_name, inputs=[species, look, personality, language], outputs=out)
60
 
61
  if __name__ == "__main__":
62
  demo.launch()
 
8
  client = OpenAI(api_key=API_KEY)
9
 
10
  SYSTEM_PROMPT = """You are a creative pet name generator.
11
+ Given species, appearance, personality and gender, propose exactly ONE concise, pronounceable name.
12
  Rules:
13
  - Output exactly one name with a short explanation.
14
  - Avoid offensive or trademarked terms.
15
  - Prefer 2–3 syllables.
16
+ - Consider the pet's gender vibe if provided.
17
  - Provide a short meaning/explanation (≤12 words).
18
  - If language is Chinese/Russian/Spanish, output in that language, with romanization if helpful.
19
  - No numbers, no long phrases, no public-figure names.
 
21
  Name — short meaning
22
  """
23
 
24
+ def build_prompt(species, look, personality, gender, language):
25
  return f"""
26
  Target language: {language}
27
  Species: {species}
28
  Appearance: {look}
29
  Personality: {personality}
30
+ Gender: {gender}
31
  Generate exactly ONE creative pet name.
32
  """
33
 
34
+ def generate_name(species, look, personality, gender, language):
35
  try:
36
+ prompt = build_prompt(species, look, personality, gender, language)
37
  resp = client.chat.completions.create(
38
  model=MODEL_NAME,
39
  temperature=0.7,
 
47
  except Exception as e:
48
  return f"⚠️ 出错:{html.escape(str(e))}"
49
 
50
+ with gr.Blocks(title="Pawfect Match") as demo:
51
+ gr.Markdown("## 🐾 Pawfect Match|宠物起名机\n输入宠物信息,一键生成一个名字 + 简短含义。")
52
 
53
  species = gr.Textbox(label="宠物种类", placeholder="例:金毛 / 英短 / 仓鼠 / 鹦鹉")
54
  look = gr.Textbox(label="外表特征", placeholder="例:橘色短毛,大眼睛,白爪")
55
  personality = gr.Textbox(label="性格特点", placeholder="例:粘人、活泼、聪明")
56
+ gender = gr.Radio(["unknown","male","female"], value="unknown", label="宠物性别")
57
  language = gr.Radio(["English","中文","Русский","Español"], value="English", label="输出语言")
58
 
59
  btn = gr.Button("✨ 起名!")
60
  out = gr.Markdown()
61
 
62
+ btn.click(generate_name, inputs=[species, look, personality, gender, language], outputs=out)
63
 
64
  if __name__ == "__main__":
65
  demo.launch()