Junhui Ji commited on
Commit
28d483e
·
1 Parent(s): 0abb400

update package

Browse files
Files changed (1) hide show
  1. main.py +16 -10
main.py CHANGED
@@ -71,6 +71,7 @@ app.mount("/screenshots", StaticFiles(directory=CACHE_DIR), name="screenshots")
71
  app.mount("/static", StaticFiles(directory="static"), name="static")
72
 
73
  # API Keys
 
74
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
75
  OPENAI_API_IMAGE_EDIT_KEY = os.getenv("OPENAI_API_IMAGE_EDIT_KEY")
76
  GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
@@ -194,17 +195,16 @@ def index() -> FileResponse:
194
  @app.post("/api/analyze")
195
  async def analyze_feedback(request: AnalysisRequest):
196
  try:
197
- context = "以下是老板对设计的反馈内容:\n" + request.text
198
-
199
- if request.image_data:
200
- context += "\n\n用户还上传了设计图片作为参考:"
201
-
202
  # 调用OpenAI API进行分析
203
  response = await call_openai_api(
204
- system_prompt='你是一位专业的设计顾问,擅长分析客户反馈,提取关键信息,并提供专业建议。请根据老板的反馈分析情绪值(用emoji表示),并结合给出的设计稿,给出三个具体的修改建议。每个建议应该包含一个标题和详细描述。首先你需要对老板的情绪进行解读,使用"情绪值:"开头并分为五类:1. 非常满意-😊😊😊 2. 比较满意-🙂🙂🙂 3. 一般般-😐😐😐 4. 不太满意-🙁🙁🙁 5. 非常不满意-😠😠😠,然后在下一行用一句话分析老板的情绪,以"情绪分析:"开头。随后,请以"修改建议:\n"开头,并以有序列表分三行说明三个具体建议,并以\n\n分隔,比如:"1. 提高对比度:xxx\n\n 2. ...\n\n 3. ...\n\n"。记得结合图片进行分析和提出修改建议。最后,你需要使用网页搜索来获取合适的参考UI设计案例,来为修改当前案例提供参考。请在新的一行以"搜索内容:"开头,给出合适的搜索内容,以获取合适的参考设计案例,注意,你只能搜索UI界面或虚拟形象设计相关的案例。',
205
  user_content=[
206
- {"type": "input_text", "text": context},
207
- *([{"type": "input_image", "image_url": request.image_data}] if request.image_data else [])
208
  ],
209
  request_model_id=request.request_model_id
210
  )
@@ -216,7 +216,7 @@ async def analyze_feedback(request: AnalysisRequest):
216
  def decrypt_user_key(encrypted_key: str) -> str:
217
  try:
218
  # 使用与前端相同的私钥
219
- private_key = 'wangyuejunhui'
220
 
221
  # 创建RSA解密对象
222
  cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
@@ -291,7 +291,13 @@ async def optimize_design(request: OptimizationRequest):
291
  status_code=400,
292
  detail="无效的用户密钥"
293
  )
294
- user_info = eval(user_key)
 
 
 
 
 
 
295
 
296
  credit_data = {
297
  "user_key": request.user_key,
 
71
  app.mount("/static", StaticFiles(directory="static"), name="static")
72
 
73
  # API Keys
74
+ SECRET_KEY = os.getenv("SECRET_KEY", "wangyue")
75
  OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
76
  OPENAI_API_IMAGE_EDIT_KEY = os.getenv("OPENAI_API_IMAGE_EDIT_KEY")
77
  GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
 
195
  @app.post("/api/analyze")
196
  async def analyze_feedback(request: AnalysisRequest):
197
  try:
198
+ context = "这是用户上传的设计图。" if request.image_data else ''
199
+ context += "以下是老板对设计的反馈内容:\n" + request.text
200
+ context += '\n请根据老板的反馈分析情绪值(用emoji表示),并结合给出的设计图稿,给出三个具体的修改建议,最后给出合适的搜索关键词,以获取合适的参考设计案例。每个建议应该包含一个标题和详细描述。首先你需要对老板的情绪进行解读,使用"情绪值:"开头并分为五类:1. 非常满意-😊😊😊 2. 比较满意-🙂🙂🙂 3. 一般般-😐😐😐 4. 不太满意-🙁🙁🙁 5. 非常不满意-😠😠😠,然后在下一行用一句话分析老板的情绪,以"情绪分析:"开头。随后,请以"修改建议:\n"开头,并以有序列表分三行说明三个具体建议,并以"\n\n"分隔,比如:"1. 提高对比度:xxx\n\n 2. ...\n\n 3. ...\n\n"。记得结合图片进行分析和提出修改建议。最后,你需要使用网页搜索来获取合适的参考UI设计案例,来为修改当前案例提供参考。请在新的一行以"搜索内容:"开头,给出合适的搜索内容,以获取合适的参考设计案例,注意,你只能搜索UI界面或虚拟形象设计相关的案例。'
201
+
 
202
  # 调用OpenAI API进行分析
203
  response = await call_openai_api(
204
+ system_prompt='你是一位专业的设计顾问,擅长分析客户反馈,提取关键信息,并提供专业建议,你需要严格遵循用户给出的输出格式要求。',
205
  user_content=[
206
+ *([{"type": "input_image", "image_url": request.image_data}] if request.image_data else []),
207
+ {"type": "input_text", "text": context}
208
  ],
209
  request_model_id=request.request_model_id
210
  )
 
216
  def decrypt_user_key(encrypted_key: str) -> str:
217
  try:
218
  # 使用与前端相同的私钥
219
+ private_key = SECRET_KEY
220
 
221
  # 创建RSA解密对象
222
  cipher = PKCS1_OAEP.new(RSA.import_key(private_key))
 
291
  status_code=400,
292
  detail="无效的用户密钥"
293
  )
294
+ try:
295
+ user_info = eval(user_key)
296
+ except:
297
+ raise HTTPException(
298
+ status_code=400,
299
+ detail="无效的用户密钥"
300
+ )
301
 
302
  credit_data = {
303
  "user_key": request.user_key,