tregu0458 commited on
Commit
e88bef3
·
verified ·
1 Parent(s): 4ff34c6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -68
app.py CHANGED
@@ -44,7 +44,7 @@ def run_workflow(message,language='en'):
44
  "knowledge": raw_text
45
  }
46
 
47
- yield raw_text, "loading...", {"login":login}
48
 
49
  # APIエンドポイントURL
50
  url = DIFY_BASE_URL + "/workflows/run"
@@ -91,72 +91,54 @@ def run_workflow(message,language='en'):
91
  print(f"Error: {error_message}")
92
  return "error", error_message, {}
93
 
94
-
95
- with gr.Blocks() as demo:
96
- with gr.Column():
97
- loginButton = gr.LoginButton()
98
- clearButton = gr.ClearButton()
99
- submitButton = gr.Button()
100
- # Gradioインターフェイスの設定
101
- submitButton.click(
102
- fn=run_workflow,
103
- inputs=[gr.MultimodalTextbox(label="PDFファイルをアップロード", file_types=[".pdf"], interactive=True),
104
- gr.Dropdown(label="Language",value="ja",choices=["en","en-US", "ja", "fr","de","it"],allow_custom_value=True)],
105
- outputs=[
106
- gr.Textbox(label="生テキスト", show_copy_button=True, max_lines=5),
107
- gr.Markdown(),
108
- gr.JSON()
109
- ])
110
-
111
- gr.Markdown(value="""
112
-
113
- © 2024 @tregu0458. All rights reserved.
114
-
115
- # PDF、YouTube、Web URLを入力としたDifyワークフロー
116
-
117
- このGradioインターフェイスでは、PDFファイル、YouTube動画、Webページを入力として受け取り、Dify APIワークフローを使用して処理することができます。PDFファイルをアップロードするか、YouTube URLを提供するか、Web URLを入力するだけで、ワークフローがテキストコンテンツを抽出し、Dify APIを使用して処理します。
118
-
119
- ## 特徴
120
- - PDFファイル、YouTube動画、Webページを入力として対応
121
- - `langchain_community.document_loaders`の`UnstructuredPDFLoader`と`OnlinePDFLoader`を使用してPDFファイルからテキストを抽出
122
- - `langchain_community.document_loaders`の`YoutubeLoader`を使用してYouTube動画からテキストを抽出
123
- - `langchain_community.document_loaders`の`WebBaseLoader`を使用してWebページからテキストを抽出
124
- - 抽出されたテキストをDify APIワークフローで処理
125
- - リアルタイム更新のためのストリーミングレスポンス処理
126
- - 生テキスト、処理されたテキスト、JSON出力の表示
127
-
128
- ## 使用方法
129
- 1. 入力フィールドにPDFファイルをアップロードするか、YouTube URLを提供するか、Web URLを入力します。
130
- 2. ドロップダウンから希望の言語を選択します(デフォルトは "ja")。
131
- 3. "Submit"ボタンをクリックして処理を開始します。
132
- 4. インターフェイスには、入力から抽出された生テキスト、Dify APIから処理されたテキスト、JSON出力が表示されます。
133
-
134
- ## 使用コンポーネント
135
- - Dify API
136
- - Gradio
137
- - langchain_community.document_loaders
138
-
139
- ## ワークフローの仕様
140
- ### 入力
141
- - Knowledge
142
- ### 出力
143
- - Result
144
- - Raw Content
145
- ### LLM
146
- - gemini-1.5-flash-latest
147
-
148
- ## 注意事項
149
- - 処理は非同期的に実行され、ワークフローの進行に合わせてリアルタイムで結果が表示されます。
150
- - `yield`文を使用して、処理の途中経過を表示しながら、最終的な結果を返します。
151
- - エラー処理は、処理中に発生する可能性のある例外をキャッチして表示するように実装されています。
152
- `run_workflow`関数は、入力メッセージを受け取り、指定された言語でDify APIワークフローを使用して処理を実行します。関数内では、入力タイプ(PDFファイル、YouTube URL、Web URL)に応じて適切なローダーを使用してテキストを抽出し、Dify APIにリクエストを送信して処理を行います。処理の進行状況に応じて、`yield`文を使用して中間結果を表示し、最終的な結果を返します。エラーが発生した場合は、例外をキャッチして適切なエラーメッセージを表示します。
153
- """
154
- )
155
- def hola(profile: gr.OAuthProfile | None) -> str:
156
- if profile is None:
157
- return ""
158
- return f"Hola, {profile.name}!"
159
- demo.load(hola,inputs=None,outputs=gr.Textbox())
160
 
161
  if __name__ == "__main__":
162
- demo.queue().launch()
 
44
  "knowledge": raw_text
45
  }
46
 
47
+ yield raw_text, "loading...", {}
48
 
49
  # APIエンドポイントURL
50
  url = DIFY_BASE_URL + "/workflows/run"
 
91
  print(f"Error: {error_message}")
92
  return "error", error_message, {}
93
 
94
+ # Gradioインターフェイスの設定
95
+ iface = gr.Interface(
96
+ fn=run_workflow,
97
+ inputs=[gr.MultimodalTextbox(label="PDFファイルをアップロード", file_types=[".pdf"], interactive=True),
98
+ gr.Dropdown(label="Language",value="ja",choices=["en","en-US", "ja", "fr","de","it"],allow_custom_value=True)],
99
+ outputs=[
100
+ gr.Textbox(label="生テキスト", show_copy_button=True, max_lines=5),
101
+ gr.Markdown(),
102
+ gr.JSON()
103
+ ],
104
+ title="Documnet to Dify Workflow",
105
+ description="このGradioインターフェイスでは、PDFファイル、YouTube���画、Webページを入力として受け取り、Dify APIワークフローを使用して処理することができます。",
106
+ article="""
107
+ © 2024 @tregu0458. All rights reserved.
108
+ # PDF、YouTube、Web URLを入力としたDifyワークフロー
109
+ このGradioインターフェイスでは、PDFファイル、YouTube動画、Webページを入力として受け取り、Dify APIワークフローを使用して処理することができます。PDFファイルをアップロードするか、YouTube URLを提供するか、Web URLを入力するだけで、ワークフローがテキストコンテンツを抽出し、Dify APIを使用して処理します。
110
+ ## 特徴
111
+ - PDFファイル、YouTube動画、Webページを入力として対応
112
+ - `langchain_community.document_loaders`の`UnstructuredPDFLoader`と`OnlinePDFLoader`を使用してPDFファイルからテキストを抽出
113
+ - `langchain_community.document_loaders`の`YoutubeLoader`を使用してYouTube動画からテキストを抽出
114
+ - `langchain_community.document_loaders`の`WebBaseLoader`を使用してWebページからテキストを抽出
115
+ - 抽出されたテキストをDify APIワークフローで処理
116
+ - リアルタイム更新のためのストリーミングレスポンス処理
117
+ - 生テキスト、処理されたテキスト、JSON出力の表示
118
+ ## 使用方法
119
+ 1. 入力フィールドにPDFファイルをアップロードするか、YouTube URLを提供するか、Web URLを入力します。
120
+ 2. ドロップダウンから希望の言語を選択します(デフォルトは "ja")。
121
+ 3. "Submit"ボタンをクリックして処理を開始します。
122
+ 4. インターフェイスには、入力から抽出された生テキスト、Dify APIから処理されたテキスト、JSON出力が表示されます。
123
+ ## 使用コンポーネント
124
+ - Dify API
125
+ - Gradio
126
+ - langchain_community.document_loaders
127
+ ## ワークフローの仕様
128
+ ### 入力
129
+ - Knowledge
130
+ ### 出力
131
+ - Result
132
+ - Raw Content
133
+ ### LLM
134
+ - gemini-1.5-flash-latest
135
+ ## 注意事項
136
+ - 処理は非同期的に実行され、ワークフローの進行に合わせてリアルタイムで結果が表示されます。
137
+ - `yield`文を使用して、処理の途中経過を表示しながら、最終的な結果を返します。
138
+ - エラー処理は、処理中に発生する可能性のある例外をキャッチして表示するように実装されています。
139
+ `run_workflow`関数は、入力メッセージを受け取り、指定された言語でDify APIワークフローを使用して処理を実行します。関数内では、入力タイプ(PDFファイル、YouTube URL、Web URL)に応じて適切なローダーを使用してテキストを抽出し、Dify APIにリクエストを送信して処理を行います。処理の進行状況に応じて、`yield`文を使用して中間結果を表示し、最終的な結果を返します。エラーが発生した場合は、例外をキャッチして適切なエラーメッセージを表示します。
140
+ """
141
+ )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
  if __name__ == "__main__":
144
+ iface.queue().launch()