| import gradio as gr |
| import requests |
| import json |
| |
| def upload_text_to_server(text, url, fname): |
| try: |
| |
| payload = {"content": text, "filename": fname} |
| response = requests.post(url, data=payload) |
|
|
| |
| response.raise_for_status() |
| return response.status_code, response.text |
|
|
| except requests.exceptions.RequestException as e: |
| |
| print(f"Error occurred during the request: {e}") |
| return None, str(e) |
|
|
| |
| def json_to_text(outname, param_array, tablename): |
| parms = eval(param_array) |
| |
| dataid = requests.get("https://www.ryhintl.com/dbjson/getjson?sqlcmd=select * from "+tablename) |
|
|
| |
| data_str = dataid.content.decode('utf-8') |
| data = json.loads(data_str) |
|
|
| final_context = "" |
| for item in data: |
| text = "" |
| |
| for param in parms: |
| if param in item: |
| text += f"{param}: {item[param]}\n" |
| else: |
| text += f"{param}: [値が見つかりません]\n" |
| final_context += text + "\n" |
|
|
| |
| file_name = outname |
| with open(file_name, "w", encoding="utf-8") as file: |
| file.write(final_context) |
|
|
| |
| server_url = "https://www.ryhintl.com/company_matters.php" |
|
|
| |
| status, response_text = upload_text_to_server(final_context, server_url, outname) |
|
|
| data = json.loads(response_text) |
|
|
| |
| message = data.get("message", "") |
|
|
| print(f"アップロードのステータス: {status}") |
| print(f"レスポンス: {message}") |
| |
| |
| return message |
|
|
|
|
| |
| def search(outname,params,tablename): |
| result = json_to_text(outname,params,tablename) |
| return result |
|
|
| |
| interface = gr.Interface( |
| css="footer {visibility: hidden;}", |
| theme=gr.themes.Glass(), |
| fn=search, |
| inputs=[gr.Textbox(label="出力ファイル名",value="cm_output.html"), gr.Textbox(label="パラメーター",value="['caption','title','content','date']"), gr.Textbox(label="テーブル名",value="company_matters")], |
| outputs=gr.Textbox(label="結果"), |
| title="DB HTML", |
| description="MySQLのテーブルからデータを取得し、Agent用のHTMLを生成します。", |
| submit_btn="実行", |
| stop_btn="中止", |
| clear_btn="クリア", |
| flagging_mode="never" |
| ) |
|
|
| |
| if __name__ == "__main__": |
| interface.launch() |
|
|