Spaces:
Configuration error
Configuration error
Download app.py from Tadashiro/difyapplicationfortraining: direct link, hf CLI and curl.
- Browser
- Download file 3.3 kB
-
https://huggingface.co/spaces/Tadashiro/difyapplicationfortraining/resolve/main/app.py
- Command line
-
hf download hf://spaces/Tadashiro/difyapplicationfortraining/app.py
-
curl -L -o app.py https://huggingface.co/spaces/Tadashiro/difyapplicationfortraining/resolve/main/app.py
3.3 kB
| from logging import getLogger, DEBUG, StreamHandler | |
| from dotenv import load_dotenv | |
| import os | |
| import requests | |
| import json | |
| import pandas as pd | |
| import gradio as gr | |
| import openai | |
| load_dotenv() | |
| logger = getLogger() | |
| logger.setLevel(DEBUG) | |
| handler = StreamHandler() | |
| handler.setLevel(DEBUG) | |
| logger.addHandler(handler) | |
| dify_api_key = os.environ["DIFY_API_KEY"] | |
| def voice_to_text(voice_file): | |
| # 処理記述 | |
| return "仮の返答" | |
| def make_minutes(voice_to_text_output): | |
| # 処理記述 | |
| return "仮の返答" | |
| # def get_QA(): | |
| # url = 'https://api.dify.ai/v1/workflows/run' | |
| # headers = { | |
| # 'Authorization': 'Bearer {dify_api_key}', | |
| # 'Content-Type': 'application/json' | |
| # } | |
| # data = { | |
| # "inputs": { | |
| # { | |
| # "campany_web_url": "https://www.meiji.co.jp/", | |
| # "question_num": 2, | |
| # "sys.files": [], | |
| # "sys.user_id": "90f2bdbf-5004-49a5-bbec-158429971705" | |
| # } | |
| # }, | |
| # "response_mode": "streaming", | |
| # "user": "abc-123" | |
| # } | |
| # response = requests.post(url, headers=headers, json=data) | |
| # # レスポンスの確認 | |
| # print(response.status_code) | |
| # print(response.text) | |
| # return response.data.outputs | |
| def get_QA_table(url, number): | |
| url = 'https://api.dify.ai/v1/workflows/run' | |
| headers = { | |
| 'Authorization': f'Bearer {dify_api_key}', | |
| 'Content-Type': 'application/json' | |
| } | |
| data = { | |
| "inputs": { | |
| "campany_web_url": url, | |
| "question_num": number, | |
| }, | |
| "response_mode": "blocking", | |
| "user": "abc-123" | |
| } | |
| response = requests.post(url, headers=headers, data=json.dumps(data)) | |
| # res.textがJSON形式の文字列であることを仮定 | |
| try: | |
| res_dict = json.loads(response.text) # JSON文字列を辞書に変換 | |
| logger.info(f"response dict:{res_dict}") | |
| res_output = res_dict["data"]["outputs"]["result"] | |
| except json.JSONDecodeError as e: | |
| print(f"JSONDecodeError: {e}") | |
| q_list = res_output["q_list"] | |
| a_list = res_output["a_list"] | |
| # 仮にデータを作成(ここではURLや数字に基づいて動的にデータを生成できる) | |
| # データフレームを作成 | |
| df = pd.DataFrame({ | |
| 'Question': q_list, | |
| 'Answer': a_list | |
| }) | |
| # 表をHTMLに変換して返す | |
| return df.to_html() | |
| # Gradioのインターフェースを定義 | |
| with gr.Blocks() as demo: | |
| gr.Markdown("営業想定質問&回答生成ツール") | |
| # URL入力ボックス | |
| url_input = gr.Textbox(label="営業先URLを入力", placeholder="https://example.com") | |
| # 数字入力ボックス | |
| number_input = gr.Number(label="質問数を入力", value=1) | |
| # 実行ボタン | |
| submit_button = gr.Button("実行") | |
| # 表の出力エリア | |
| table_output = gr.HTML() | |
| # 実行ボタンが押されたときのアクションを定義 | |
| submit_button.click( | |
| fn=get_QA_table, # 実行される関数 | |
| inputs=[url_input, number_input], # 関数の入力 | |
| outputs=table_output # 関数の出力 | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch(show_api=False, server_name="0.0.0.0") |