seawolf2357 commited on
Commit
a9108e0
ยท
verified ยท
1 Parent(s): 2120b7d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +65 -2
app.py CHANGED
@@ -793,6 +793,66 @@ def deploy_to_huggingface(code: str):
793
  except Exception as e:
794
  return f"๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}"
795
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
796
 
797
  # Demo ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
798
  demo_instance = Demo()
@@ -982,14 +1042,17 @@ with gr.Blocks(css_paths="app.css",theme=theme) as demo:
982
  outputs=[history]
983
  )
984
 
985
- # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ถ”๊ฐ€
 
 
986
  deploy_btn.click(
987
- fn=lambda code: deploy_to_huggingface(remove_code_block(code)) if code else "์ฝ”๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.",
988
  inputs=[code_output],
989
  outputs=[deploy_result]
990
  )
991
 
992
 
 
993
  if __name__ == "__main__":
994
  try:
995
  demo_instance = Demo()
 
793
  except Exception as e:
794
  return f"๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}"
795
 
796
+
797
+ def deploy_to_vercel(code: str):
798
+ """Vercel์— ์ฝ”๋“œ ๋ฐฐํฌ"""
799
+ try:
800
+ token = "A8IFZmgW2cqA4yUNlLPnci0N"
801
+ if not token:
802
+ return "Vercel ํ† ํฐ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค."
803
+
804
+ # ํ”„๋กœ์ ํŠธ ์ด๋ฆ„ ์ƒ์„ฑ
805
+ project_name = ''.join(random.choice(string.ascii_lowercase) for i in range(6))
806
+
807
+ # Vercel API ์—”๋“œํฌ์ธํŠธ
808
+ api_url = "https://api.vercel.com/v9/projects"
809
+ deploy_url = "https://api.vercel.com/v13/deployments"
810
+
811
+ # ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ
812
+ headers = {
813
+ "Authorization": f"Bearer {token}",
814
+ "Content-Type": "application/json"
815
+ }
816
+
817
+ project_data = {
818
+ "name": project_name,
819
+ "framework": "static"
820
+ }
821
+
822
+ project_response = requests.post(api_url, headers=headers, json=project_data)
823
+
824
+ if project_response.status_code != 200:
825
+ return f"ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹คํŒจ: {project_response.text}"
826
+
827
+ # index.html ํŒŒ์ผ ์ƒ์„ฑ
828
+ files = {
829
+ "index.html": {
830
+ "content": code
831
+ }
832
+ }
833
+
834
+ # ๋ฐฐํฌ ์š”์ฒญ
835
+ deploy_data = {
836
+ "name": project_name,
837
+ "files": files,
838
+ "projectId": project_response.json()["id"],
839
+ "target": "production"
840
+ }
841
+
842
+ deploy_response = requests.post(deploy_url, headers=headers, json=deploy_data)
843
+
844
+ if deploy_response.status_code != 200:
845
+ return f"๋ฐฐํฌ ์‹คํŒจ: {deploy_response.text}"
846
+
847
+ # ๋ฐฐํฌ URL ์ƒ์„ฑ
848
+ deployment_url = f"https://{project_name}.vercel.app"
849
+
850
+ return f"""๋ฐฐํฌ ์™„๋ฃŒ! <a href="{deployment_url}" target="_blank" style="color: #1890ff; text-decoration: underline; cursor: pointer;">์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์—ฌ ์—ด๊ธฐ</a>"""
851
+
852
+ except Exception as e:
853
+ return f"๋ฐฐํฌ ์ค‘ ์˜ค๋ฅ˜ ๋ฐœ์ƒ: {str(e)}"
854
+
855
+
856
 
857
  # Demo ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ
858
  demo_instance = Demo()
 
1042
  outputs=[history]
1043
  )
1044
 
1045
+
1046
+
1047
+ # ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ์ˆ˜์ •
1048
  deploy_btn.click(
1049
+ fn=lambda code: deploy_to_vercel(remove_code_block(code)) if code else "์ฝ”๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.",
1050
  inputs=[code_output],
1051
  outputs=[deploy_result]
1052
  )
1053
 
1054
 
1055
+
1056
  if __name__ == "__main__":
1057
  try:
1058
  demo_instance = Demo()