seawolf2357 commited on
Commit
52e5ce1
ยท
verified ยท
1 Parent(s): f837c9b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +84 -14
app.py CHANGED
@@ -755,17 +755,16 @@ def generate_space_name():
755
  letters = string.ascii_lowercase
756
  return ''.join(random.choice(letters) for i in range(6))
757
 
758
-
759
  def deploy_to_vercel(code: str):
760
- """Vercel์— ์ฝ”๋“œ ๋ฐฐํฌ"""
761
  try:
762
  token = "A8IFZmgW2cqA4yUNlLPnci0N"
763
  if not token:
764
  return "Vercel ํ† ํฐ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."
765
 
766
- # ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์ƒ์„ฑ
767
  project_name = ''.join(random.choice(string.ascii_lowercase) for i in range(6))
768
 
 
769
  # Vercel API ์—”๋“œํฌ์ธํŠธ
770
  deploy_url = "https://api.vercel.com/v13/deployments"
771
 
@@ -818,23 +817,87 @@ def deploy_to_vercel(code: str):
818
  "projectSettings": project_settings
819
  }
820
 
 
821
  deploy_response = requests.post(deploy_url, headers=headers, json=deploy_data)
822
 
823
  if deploy_response.status_code != 200:
824
  return f"๋ฐฐํฌ ์‹คํŒจ: {deploy_response.text}"
825
 
826
- # ์‘๋‹ต์—์„œ ์‹ค์ œ URL ๊ฐ€์ ธ์˜ค๊ธฐ
827
- response_data = deploy_response.json()
828
- deployment_url = response_data.get('url', f"{project_name}.vercel.app")
829
 
830
- # ๋ฐฐํฌ ์ƒํƒœ ํ™•์ธ์„ ์œ„ํ•œ ๋Œ€๊ธฐ
831
- time.sleep(5) # ๋ฐฐํฌ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ž ์‹œ ๋Œ€๊ธฐ
832
 
833
- return f"""๋ฐฐํฌ ์™„๋ฃŒ! <a href="https://{deployment_url}" target="_blank" style="color: #1890ff; text-decoration: underline; cursor: pointer;">์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์—ด๊ธฐ</a>"""
834
 
835
  except Exception as e:
836
  return f"๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}"
837
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838
 
839
  # Demo ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
840
  demo_instance = Demo()
@@ -899,15 +962,17 @@ with gr.Blocks(css_paths="app.css",theme=theme) as demo:
899
  allow_clear=True,
900
  placeholder=random.choice(DEMO_LIST)['description']
901
  )
902
-
903
-
904
- # UI ์ˆ˜์ • ๋ถ€๋ถ„ - antd.Col(span=24, md=8) ๋‚ด๋ถ€์˜ ๋ฒ„ํŠผ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌ ๋ฒ„ํŠผ ์ถ”๊ฐ€:
905
  with antd.Flex(gap="small", justify="space-between"):
906
  btn = antd.Button("Send", type="primary", size="large")
 
907
  execute_btn = antd.Button("Code ์‹คํ–‰", type="default", size="large")
908
- deploy_btn = antd.Button("๋ฐฐํฌํ•˜๊ธฐ", type="default", size="large") # ์ถ”๊ฐ€
909
  clear_btn = antd.Button("Clear", type="default", size="large")
910
 
 
 
 
911
  # ๋ฐฐํฌ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•  ํ…์ŠคํŠธ ์˜์—ญ ์ถ”๊ฐ€
912
 
913
  deploy_result = gr.HTML(label="๋ฐฐํฌ ๊ฒฐ๊ณผ")
@@ -1024,7 +1089,12 @@ with gr.Blocks(css_paths="app.css",theme=theme) as demo:
1024
  outputs=[history]
1025
  )
1026
 
1027
-
 
 
 
 
 
1028
 
1029
  # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ˆ˜์ •
1030
  deploy_btn.click(
 
755
  letters = string.ascii_lowercase
756
  return ''.join(random.choice(letters) for i in range(6))
757
 
 
758
  def deploy_to_vercel(code: str):
 
759
  try:
760
  token = "A8IFZmgW2cqA4yUNlLPnci0N"
761
  if not token:
762
  return "Vercel ํ† ํฐ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."
763
 
764
+ # 6์ž๋ฆฌ ์˜๋ฌธ ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์ƒ์„ฑ
765
  project_name = ''.join(random.choice(string.ascii_lowercase) for i in range(6))
766
 
767
+
768
  # Vercel API ์—”๋“œํฌ์ธํŠธ
769
  deploy_url = "https://api.vercel.com/v13/deployments"
770
 
 
817
  "projectSettings": project_settings
818
  }
819
 
820
+
821
  deploy_response = requests.post(deploy_url, headers=headers, json=deploy_data)
822
 
823
  if deploy_response.status_code != 200:
824
  return f"๋ฐฐํฌ ์‹คํŒจ: {deploy_response.text}"
825
 
826
+ # URL ํ˜•์‹ ์ˆ˜์ • - 6์ž๋ฆฌ.vercel.app ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜
827
+ deployment_url = f"{project_name}.vercel.app"
 
828
 
829
+ time.sleep(5)
 
830
 
831
+ return f"""๋ฐฐํฌ ์™„๋ฃŒ! <a href="https://{deployment_url}" target="_blank" style="color: #1890ff; text-decoration: underline; cursor: pointer;">https://{deployment_url}</a>"""
832
 
833
  except Exception as e:
834
  return f"๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}"
835
 
836
+
837
+ # ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ• ํ•จ์ˆ˜ ์ˆ˜์ •
838
+ async def boost_prompt(prompt: str) -> str:
839
+ if not prompt:
840
+ return ""
841
+
842
+ # ์ฆ๊ฐ•์„ ์œ„ํ•œ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ
843
+ boost_system_prompt = """
844
+ ๋‹น์‹ ์€ ์›น ๊ฐœ๋ฐœ ํ”„๋กฌํ”„ํŠธ ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค.
845
+ ์ฃผ์–ด์ง„ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋” ์ƒ์„ธํ•˜๊ณ  ์ „๋ฌธ์ ์ธ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ ํ™•์žฅํ•˜๋˜,
846
+ ์›๋ž˜ ์˜๋„์™€ ๋ชฉ์ ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ ๋‹ค์Œ ๊ด€์ ๋“ค์„ ๊ณ ๋ คํ•˜์—ฌ ์ฆ๊ฐ•ํ•˜์‹ญ์‹œ์˜ค:
847
+
848
+ 1. ๊ธฐ์ˆ ์  ๊ตฌํ˜„ ์ƒ์„ธ
849
+ 2. UI/UX ๋””์ž์ธ ์š”์†Œ
850
+ 3. ์‚ฌ์šฉ์ž ๊ฒฝํ—˜ ์ตœ์ ํ™”
851
+ 4. ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ
852
+ 5. ์ ‘๊ทผ์„ฑ๊ณผ ํ˜ธํ™˜์„ฑ
853
+
854
+ ๊ธฐ์กด SystemPrompt์˜ ๋ชจ๋“  ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜๋ฉด์„œ ์ฆ๊ฐ•๋œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.
855
+ """
856
+
857
+ try:
858
+ # Claude API ์‹œ๋„
859
+ try:
860
+ response = await claude_client.messages.create(
861
+ model="claude-3-5-sonnet-20241022",
862
+ max_tokens=2000,
863
+ system=boost_system_prompt,
864
+ messages=[{
865
+ "role": "user",
866
+ "content": f"๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ฆ๊ฐ•ํ•˜์‹œ์˜ค: {prompt}"
867
+ }]
868
+ )
869
+ return response.content[0].text
870
+
871
+ except Exception as claude_error:
872
+ print(f"Claude API ์—๋Ÿฌ, OpenAI๋กœ ์ „ํ™˜: {str(claude_error)}")
873
+
874
+ # OpenAI API ์‹œ๋„
875
+ response = await openai_client.chat.completions.create(
876
+ model="gpt-4",
877
+ messages=[
878
+ {"role": "system", "content": boost_system_prompt},
879
+ {"role": "user", "content": f"๋‹ค์Œ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ฆ๊ฐ•ํ•˜์‹œ์˜ค: {prompt}"}
880
+ ],
881
+ max_tokens=2000,
882
+ temperature=0.7
883
+ )
884
+ return response.choices[0].message.content
885
+
886
+ except Exception as e:
887
+ print(f"ํ”„๋กฌํ”„ํŠธ ์ฆ๊ฐ• ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}")
888
+ return prompt # ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ์›๋ณธ ํ”„๋กฌํ”„ํŠธ ๋ฐ˜ํ™˜
889
+
890
+ # Boost ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ˆ˜์ •
891
+ async def handle_boost(prompt: str):
892
+ try:
893
+ boosted_prompt = await boost_prompt(prompt)
894
+ return boosted_prompt, gr.update(active_key="empty")
895
+ except Exception as e:
896
+ print(f"Boost ์ฒ˜๋ฆฌ ์ค‘ ์˜ค๋ฅ˜: {str(e)}")
897
+ return prompt, gr.update(active_key="empty")
898
+
899
+
900
+
901
 
902
  # Demo ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
903
  demo_instance = Demo()
 
962
  allow_clear=True,
963
  placeholder=random.choice(DEMO_LIST)['description']
964
  )
965
+
 
 
966
  with antd.Flex(gap="small", justify="space-between"):
967
  btn = antd.Button("Send", type="primary", size="large")
968
+ boost_btn = antd.Button("Boost", type="default", size="large") # Boost ๋ฒ„ํŠผ ์ถ”๊ฐ€
969
  execute_btn = antd.Button("Code ์‹คํ–‰", type="default", size="large")
970
+ deploy_btn = antd.Button("๋ฐฐํฌํ•˜๊ธฐ", type="default", size="large")
971
  clear_btn = antd.Button("Clear", type="default", size="large")
972
 
973
+ deploy_result = gr.HTML(label="๋ฐฐํฌ ๊ฒฐ๊ณผ")
974
+
975
+
976
  # ๋ฐฐํฌ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•  ํ…์ŠคํŠธ ์˜์—ญ ์ถ”๊ฐ€
977
 
978
  deploy_result = gr.HTML(label="๋ฐฐํฌ ๊ฒฐ๊ณผ")
 
1089
  outputs=[history]
1090
  )
1091
 
1092
+ # UI์˜ Boost ๋ฒ„ํŠผ ์ด๋ฒคํŠธ ์—ฐ๊ฒฐ ์ˆ˜์ •
1093
+ boost_btn.click(
1094
+ fn=handle_boost,
1095
+ inputs=[input],
1096
+ outputs=[input, state_tab]
1097
+ )
1098
 
1099
  # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ˆ˜์ •
1100
  deploy_btn.click(