Junhui Ji commited on
Commit
876d086
·
1 Parent(s): 8d97833
Files changed (3) hide show
  1. main.py +22 -0
  2. static/feedback.html +1 -1
  3. static/script.js +5 -6
main.py CHANGED
@@ -55,6 +55,10 @@ class OptimizationRequest(BaseModel):
55
  suggestions: List[str]
56
  request_model_id: str = 'gpt-image-1'
57
 
 
 
 
 
58
  class TextOptimizationRequest(BaseModel):
59
  original_feedback: str
60
  user_input: str
@@ -202,6 +206,24 @@ async def optimize_text(request: TextOptimizationRequest):
202
  logging.error(f'Error: {e}, traceback: {traceback.format_exc()}')
203
  raise HTTPException(status_code=500, detail=f'Error: {e}, traceback: {traceback.format_exc()}')
204
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
205
  @app.post("/api/search")
206
  async def search_design_examples(request: SearchRequest):
207
  try:
 
55
  suggestions: List[str]
56
  request_model_id: str = 'gpt-image-1'
57
 
58
+ class CaseStudyRequest(BaseModel):
59
+ user_input: str
60
+ request_model_id: str = 'gpt-4.1-mini'
61
+
62
  class TextOptimizationRequest(BaseModel):
63
  original_feedback: str
64
  user_input: str
 
206
  logging.error(f'Error: {e}, traceback: {traceback.format_exc()}')
207
  raise HTTPException(status_code=500, detail=f'Error: {e}, traceback: {traceback.format_exc()}')
208
 
209
+
210
+ @app.post("/api/analyze-case-study")
211
+ async def analyze_case_study(request: CaseStudyRequest):
212
+ try:
213
+ response = await call_openai_api(
214
+ system_prompt="你是一个专业的案例分析助手,你需要根据用户需求进行案例分析。",
215
+ user_content=[{
216
+ "type": "input_text",
217
+ "text": request.user_input
218
+ }],
219
+ request_model_id=request.request_model_id
220
+ )
221
+
222
+ return JSONResponse(response)
223
+ except Exception as e:
224
+ logging.error(f'Error: {e}, traceback: {traceback.format_exc()}')
225
+ raise HTTPException(status_code=500, detail=f'Error: {e}, traceback: {traceback.format_exc()}')
226
+
227
  @app.post("/api/search")
228
  async def search_design_examples(request: SearchRequest):
229
  try:
static/feedback.html CHANGED
@@ -108,7 +108,7 @@
108
  </section>
109
 
110
  <div class="button-container">
111
- <button type="button" class="generate-button" id="generateBtn">生成</button>
112
  </div>
113
 
114
  <!-- Toast提示 -->
 
108
  </section>
109
 
110
  <div class="button-container">
111
+ <button type="button" class="generate-button" id="generateBtn">启动求生欲滤镜</button>
112
  </div>
113
 
114
  <!-- Toast提示 -->
static/script.js CHANGED
@@ -430,6 +430,7 @@ document.addEventListener('DOMContentLoaded', function() {
430
  try {
431
  // 使用split提取修改建议部分
432
  const suggestionsText = analysisResult.split('修改建议:')[1].split('搜索内容:')[0];
 
433
 
434
  if (suggestionsText) {
435
  // 提取三个建议
@@ -520,7 +521,7 @@ document.addEventListener('DOMContentLoaded', function() {
520
  const desc = card.querySelector('.example-desc');
521
  const sourceLink = card.querySelector('.example-source a');
522
 
523
- if (img) img.src = '';
524
  if (desc) desc.textContent = '正在搜索设计参考案例...';
525
  if (sourceLink) {
526
  sourceLink.href = '#';
@@ -529,8 +530,7 @@ document.addEventListener('DOMContentLoaded', function() {
529
  });
530
 
531
  // 获取原始反馈文本和上传的图片
532
- const uploadedText = sessionStorage.getItem('uploadedText') || '';
533
- const uploadedImage = sessionStorage.getItem('uploadedImage');
534
 
535
  // 调用后端搜索API
536
  const response = await fetch(`${BASE_URL}api/search`, {
@@ -566,14 +566,13 @@ document.addEventListener('DOMContentLoaded', function() {
566
  for (let i = 0; i < examples.length; i++) {
567
  const example = examples[i];
568
  try {
569
- const response = await fetch(`${BASE_URL}api/optimize-text`, {
570
  method: 'POST',
571
  headers: {
572
  'Content-Type': 'application/json'
573
  },
574
  body: JSON.stringify({
575
- original_feedback: uploadedText,
576
- user_input: `请分析这个设计案例:${example.title}\n${example.description}\n\n基于原始设计反馈和修改建议,详细分析为什么这个设计案例可以解决用户面临的设计问题。描述要专业、具体,并关注设计细节。你只需要简单介绍案例内容和特点,然后简要分析即可,不要输出其他内容。`,
577
  request_model_id: 'gpt-4.1-mini'
578
  })
579
  });
 
430
  try {
431
  // 使用split提取修改建议部分
432
  const suggestionsText = analysisResult.split('修改建议:')[1].split('搜索内容:')[0];
433
+ sessionStorage.setItem('suggestionsText', suggestionsText)
434
 
435
  if (suggestionsText) {
436
  // 提取三个建议
 
521
  const desc = card.querySelector('.example-desc');
522
  const sourceLink = card.querySelector('.example-source a');
523
 
524
+ if (img) img.src = '/static/assets/loading.gif';
525
  if (desc) desc.textContent = '正在搜索设计参考案例...';
526
  if (sourceLink) {
527
  sourceLink.href = '#';
 
530
  });
531
 
532
  // 获取原始反馈文本和上传的图片
533
+ const suggestionsText = sessionStorage.getItem('suggestionsText') || '';
 
534
 
535
  // 调用后端搜索API
536
  const response = await fetch(`${BASE_URL}api/search`, {
 
566
  for (let i = 0; i < examples.length; i++) {
567
  const example = examples[i];
568
  try {
569
+ const response = await fetch(`${BASE_URL}api/analyze-case-study`, {
570
  method: 'POST',
571
  headers: {
572
  'Content-Type': 'application/json'
573
  },
574
  body: JSON.stringify({
575
+ user_input: `请分析这个设计案例:${example.title}\n${example.description}\n修改建议:${suggestionsText}\n基于原始设计反馈和修改建议,详细分析为什么这个设计案例可以解决用户面临的设计问题。描述要专业、具体,并关注设计细节。你只需要简单介绍案例内容和特点,然后简要分析即可,不要输出其他内容。`,
 
576
  request_model_id: 'gpt-4.1-mini'
577
  })
578
  });