tregu0458 commited on
Commit
a84ce2f
·
verified ·
1 Parent(s): fdd751e

Update app.py

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