Spaces:
Configuration error
Configuration error
File size: 3,297 Bytes
e84a884 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | 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") |