Sakalti commited on
Commit
3b42b0c
1 Parent(s): 2f02185

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +53 -0
app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 必要なライブラリのインストール
2
+ # !pip install gradio huggingface_hub requests
3
+
4
+ import gradio as gr
5
+ import requests
6
+ import os
7
+ from huggingface_hub import HfApi, HfFolder
8
+
9
+ def download_and_upload(download_url, hf_write_token, model_name):
10
+ # ファイル名を取得
11
+ file_name = download_url.split("/")[-1]
12
+ save_path = file_name
13
+
14
+ # ファイルをダウンロード
15
+ try:
16
+ response = requests.get(download_url, stream=True)
17
+ response.raise_for_status()
18
+ with open(save_path, 'wb') as f:
19
+ for chunk in response.iter_content(chunk_size=8192):
20
+ f.write(chunk)
21
+ except requests.exceptions.RequestException as e:
22
+ return f"ファイルのダウンロード中にエラーが発生しました: {e}"
23
+
24
+ # ファイルをHugging Faceにアップロード
25
+ try:
26
+ api = HfApi()
27
+ HfFolder.save_token(hf_write_token)
28
+ api.upload_file(
29
+ path_or_fileobj=save_path,
30
+ path_in_repo=file_name, # ダウンロードしたファイル名をそのまま使用
31
+ repo_id=model_name,
32
+ repo_type="model"
33
+ )
34
+ return f"ファイルを {model_name} に正常にアップロードしました。"
35
+ except Exception as e:
36
+ return f"ファイルのアップロード中にエラーが発生しました: {e}"
37
+
38
+ # Gradioインターフェース
39
+ with gr.Blocks() as demo:
40
+ gr.Markdown("#ファイルアップローダー")
41
+
42
+ download_url = gr.Textbox(label="ダウンロードURL", placeholder="ファイルのダウンロードリンクを入力してください")
43
+ hf_write_token = gr.Textbox(label="Hugging Face Write Token", placeholder="Hugging Faceの書き込みトークンを入力してください", type="password")
44
+ model_name = gr.Textbox(label="モデル名", placeholder="モデル名を入力してください(例:ユーザー名/モデル名)")
45
+
46
+ output = gr.Textbox(label="出力")
47
+
48
+ upload_button = gr.Button("ダウンロードしてアップロード")
49
+
50
+ upload_button.click(download_and_upload, inputs=[download_url, hf_write_token, model_name], outputs=output)
51
+
52
+ # アプリの実行
53
+ demo.launch()