Spaces:
Sleeping
Sleeping
| import itertools | |
| import gradio as gr | |
| import requests | |
| import os | |
| from gradio.themes.utils import sizes | |
| import json | |
| import pandas as pd | |
| import base64 | |
| import io | |
| from PIL import Image | |
| import numpy as np | |
| def respond(message, history): | |
| if len(message.strip()) == 0: | |
| return "質問を入力してください" | |
| local_token = os.getenv('API_TOKEN') | |
| local_endpoint = os.getenv('API_ENDPOINT') | |
| if local_token is None or local_endpoint is None: | |
| return "ERROR missing env variables" | |
| # Add your API token to the headers | |
| headers = { | |
| 'Content-Type': 'application/json', | |
| 'Authorization': f'Bearer {local_token}' | |
| } | |
| #prompt = list(itertools.chain.from_iterable(history)) | |
| #prompt.append(message) | |
| # プロンプトの作成 | |
| prompt = pd.DataFrame( | |
| {"query": [message]} | |
| ) | |
| print(prompt) | |
| ds_dict = {"dataframe_split": prompt.to_dict(orient="split")} | |
| data_json = json.dumps(ds_dict, allow_nan=True) | |
| try: | |
| # モデルサービングエンドポイントに問い合わせ | |
| response = requests.request(method="POST", headers=headers, url=local_endpoint, data=data_json) | |
| response_data = response.json() | |
| print(response_data) | |
| except Exception as error: | |
| response_data = f"ERROR status_code: {type(error).__name__}" | |
| #+ str(response.status_code) + " response:" + response.text | |
| return response_data["predictions"][0] | |
| theme = gr.themes.Soft( | |
| text_size=sizes.text_sm,radius_size=sizes.radius_sm, spacing_size=sizes.spacing_sm, | |
| ) | |
| demo = gr.ChatInterface( | |
| respond, | |
| chatbot=gr.Chatbot(show_label=False, container=False, show_copy_button=True, bubble_full_width=True), | |
| textbox=gr.Textbox(placeholder="質問を入力してください", | |
| container=False, scale=7), | |
| title="Databricks QAチャットボット", | |
| description="TBD", | |
| examples=[["Databricksクラスターとは?"], | |
| ["Unity Catalogの有効化方法"], | |
| ["リネージの保持期間"],], | |
| cache_examples=False, | |
| theme=theme, | |
| retry_btn=None, | |
| undo_btn=None, | |
| clear_btn="Clear", | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |