in src/zgoog_i_demo_nl2sql_imp.prog.abap [0:0]
METHOD execute.
DATA:
lv_prompt TYPE string,
lt_text_response TYPE soli_tab,
lo_nl2sql TYPE REF TO ZGOOG_CL_NL2SQL_CDS_VIEW,
lv_response TYPE string,
lv_error TYPE abap_bool,
lo_cx_sdk TYPE REF TO /goog/cx_sdk,
lo_out TYPE REF TO if_demo_output,
lv_msg TYPE string.
FIELD-SYMBOLS:
<ls_text_sysins> TYPE soli,
<ls_text_prompt> TYPE soli.
gr_text_response->delete_text( ).
gr_text_prompt->get_text_as_stream( IMPORTING text = gt_text_prompt
EXCEPTIONS error_cntl_call_method = 1
OTHERS = 3 ).
LOOP AT gt_text_prompt ASSIGNING <ls_text_prompt>.
IF lv_prompt IS INITIAL.
lv_prompt = <ls_text_prompt>.
ELSE.
CONCATENATE lv_prompt <ls_text_prompt> INTO lv_prompt
SEPARATED BY space.
ENDIF.
ENDLOOP.
TRY.
CREATE OBJECT lo_nl2sql
EXPORTING
iv_model_key = p_model_key.
lv_response = lo_nl2sql->GENERATE_SQL(
IV_PROMPT = lv_prompt
IV_CDS_VIEW = p_cds_view ).
IF lv_response IS NOT INITIAL.
CALL METHOD convert_string_to_table
EXPORTING
iv_response = lv_response
IMPORTING
et_text_response = lt_text_response.
gr_text_response->set_text_as_stream( lt_text_response ).
CLEAR:
lv_response,
lt_text_response.
ENDIF.
CATCH /goog/cx_sdk INTO lo_cx_sdk.
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.