def text_to_sql(input_str: str,
prompt_template: Optional[PromptTemplate] = None,
data_source_schemas: Optional[list[DataSourceSchema]] = None,
parameters: Optional[dict[str, str]] = None,
model: Optional[str] = None,
model_configuration: Optional[dict[str, object]] = None,
workspace_data_source_alias: Optional[str] = None,
dataframe: Optional[pd.DataFrame] = None,
system: Optional[str] = None
):
"""
テキストをSQLに変換
パラメータ:
input_str (str): 入力文字列
data_source_schemas (list[DataSourceSchema]): データソーススキーマのリスト
prompt_template (PromptTemplate): プロンプトテンプレート
parameters (dict[str, str]): パラメータ
model (str): モデル名
model_configuration (dict[str, object]): モデル設定
workspace_data_source_alias (str): ワークスペースに関連付けられたデータソーススキーマのエイリアス
dataframe (pd.DataFrame): Pandasデータフレーム
system (str): モデルへのプロンプトに含まれるデフォルトのシステム命令のオプションオーバーライド。
戻り値:
text_ai_response: TextAiResponse
""" if workspace_data_source_alias is not None:
data_source_schemas = [
DataSourceSchema.from_optional_list(domojupyter.io.get_schema_from_datasource(workspace_data_source_alias).get('schema'),
workspace_data_source_alias)]
elif dataframe is not None:
schema = domojupyter.io.get_schema_from_dataframe(dataframe)
data_source_schemas = [
DataSourceSchema.from_optional_list(schema,
dataframe.name)]
text_to_sql_request = TextToSQLRequest(input_str, data_source_schemas, prompt_template, parameters, model,
model_configuration, system)
sql_response = _jupyterhub.text_to_sql(text_to_sql_request.to_json())
text_ai_response = TextAIResponse(sql_response['prompt'], sql_response['choices'])
return text_ai_response