Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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
|
| 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="
|
| 49 |
-
gr.Markdown("## 🐾
|
| 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()
|