mxiean commited on
Commit
b0a51cb
·
verified ·
1 Parent(s): 635c1d2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -38
app.py CHANGED
@@ -1,58 +1,35 @@
1
  import gradio as gr
2
  from transformers import pipeline
3
- from datasets import load_dataset
4
 
5
- # 加载数据集(使用更小的样本集)
6
  try:
7
- dataset = load_dataset("AntZet/home_decoration_objects_images", streaming=True)
8
- dataset = dataset['train'].take(50) # 只取50个样本加快加载
9
  except Exception as e:
10
- print(f"加载数据集失败: {e}")
11
- dataset = []
12
 
13
- # 初始化模型(使用更小的模型)
14
- try:
15
- style_advisor = pipeline("text-generation", model="distilgpt2") # 改用更小的distilgpt2
16
- except Exception as e:
17
- print(f"加载模型失败: {e}")
18
- style_advisor = None
19
-
20
- def get_advice(style):
21
- if not dataset or not style_advisor:
22
- return "系统初始化失败,请检查后台日志", []
23
 
 
24
  try:
25
- # 从数据集中找出匹配风格的例子
26
- examples = [ex for ex in dataset if ex['style'].lower() == style.lower()]
27
-
28
- if not examples:
29
- return "未找到该风格,请尝试:工业风、北欧风等", []
30
-
31
- # 生成建议
32
- prompt = f"如何将Airbnb房间装修成{style}风格?请给出3条具体建议"
33
- advice = style_advisor(prompt, max_length=150)[0]['generated_text']
34
-
35
- # 获取示例图片
36
- example_images = [ex['image'] for ex in examples[:3]]
37
-
38
- return advice, example_images
39
  except Exception as e:
40
- return f"生成建议时出错: {str(e)}", []
41
 
42
- # 创建界面
43
  with gr.Blocks() as demo:
44
  gr.Markdown("## 🏡 Airbnb装修助手")
45
  style_input = gr.Textbox(label="输入想要的风格")
46
  submit_btn = gr.Button("生成建议")
47
-
48
- with gr.Row():
49
- advice_output = gr.Textbox(label="装修建议")
50
- gallery = gr.Gallery(label="风格示例")
51
 
52
  submit_btn.click(
53
- fn=get_advice,
54
  inputs=style_input,
55
- outputs=[advice_output, gallery]
56
  )
57
 
58
  if __name__ == "__main__":
 
1
  import gradio as gr
2
  from transformers import pipeline
 
3
 
4
+ # 初始化文本生成管道
5
  try:
6
+ generator = pipeline("text-generation", model="distilgpt2")
 
7
  except Exception as e:
8
+ print(f"模型加载失败: {e}")
9
+ generator = None
10
 
11
+ def generate_advice(style):
12
+ if not generator:
13
+ return "系统初始化失败,请检查transformers库是否安装", ""
 
 
 
 
 
 
 
14
 
15
+ prompt = f"如何将Airbnb房间装修成{style}风格?请给出3条具体建议"
16
  try:
17
+ result = generator(prompt, max_length=200)
18
+ return result[0]["generated_text"], ""
 
 
 
 
 
 
 
 
 
 
 
 
19
  except Exception as e:
20
+ return f"生成建议时出错: {str(e)}", ""
21
 
22
+ # 创建简单界面
23
  with gr.Blocks() as demo:
24
  gr.Markdown("## 🏡 Airbnb装修助手")
25
  style_input = gr.Textbox(label="输入想要的风格")
26
  submit_btn = gr.Button("生成建议")
27
+ advice_output = gr.Textbox(label="装修建议")
 
 
 
28
 
29
  submit_btn.click(
30
+ fn=generate_advice,
31
  inputs=style_input,
32
+ outputs=advice_output
33
  )
34
 
35
  if __name__ == "__main__":