@@ -128,6 +128,50 @@ def render_sequence(sequence: List[str]) -> str:
128128 # 프리셋에서는 QUERY_MAKER 자동 포함
129129 use_query_maker = True
130130
131+ # GET_TABLE_INFO 설정
132+ st .subheader ("GET_TABLE_INFO 설정" )
133+ _prev_cfg = st .session_state .get ("graph_config" , {})
134+
135+ _retriever_options = {
136+ "기본" : "벡터 검색 (기본)" ,
137+ "Reranker" : "Reranker 검색 (정확도 향상)" ,
138+ }
139+ _retriever_keys = list (_retriever_options .keys ())
140+ _retriever_default = _prev_cfg .get ("retriever_name" , "기본" )
141+ _retriever_index = (
142+ _retriever_keys .index (_retriever_default )
143+ if _retriever_default in _retriever_keys
144+ else 0
145+ )
146+
147+ retriever_name = st .selectbox (
148+ "테이블 검색기" ,
149+ options = _retriever_keys ,
150+ format_func = lambda x : _retriever_options [x ],
151+ index = _retriever_index ,
152+ )
153+
154+ top_n = st .slider (
155+ "검색할 테이블 정보 개수" ,
156+ min_value = 1 ,
157+ max_value = 20 ,
158+ value = int (_prev_cfg .get ("top_n" , 5 )),
159+ step = 1 ,
160+ )
161+
162+ _device_options = ["cpu" , "cuda" ]
163+ _device_default = _prev_cfg .get ("device" , "cpu" )
164+ _device_index = (
165+ _device_options .index (_device_default )
166+ if _device_default in _device_options
167+ else 0
168+ )
169+ device = st .selectbox (
170+ "모델 실행 장치" ,
171+ options = _device_options ,
172+ index = _device_index ,
173+ )
174+
131175
132176def build_sequence_with_qm (
133177 preset : str , use_profile : bool , use_context : bool , use_qm : bool
@@ -166,6 +210,9 @@ def build_sequence_with_qm(
166210 "use_profile" : use_profile ,
167211 "use_context" : use_context ,
168212 "use_query_maker" : use_query_maker ,
213+ "retriever_name" : retriever_name ,
214+ "top_n" : top_n ,
215+ "device" : device ,
169216}
170217
171218# 선택이 바뀌면 자동으로 세션 그래프 갱신
@@ -174,13 +221,20 @@ def build_sequence_with_qm(
174221 _builder = build_state_graph (sequence )
175222 st .session_state ["graph" ] = _builder .compile ()
176223 st .session_state ["graph_config" ] = config
224+ # Lang2SQL 메인 UI에서 기본값으로 사용할 옵션 전달
225+ st .session_state ["default_retriever_name" ] = retriever_name
226+ st .session_state ["default_top_n" ] = top_n
227+ st .session_state ["default_device" ] = device
177228 st .info ("그래프가 세션에 적용되었습니다." )
178229
179230# 수동 새로고침 버튼
180231if st .button ("세션 그래프 새로고침" ):
181232 _builder = build_state_graph (sequence )
182233 st .session_state ["graph" ] = _builder .compile ()
183234 st .session_state ["graph_config" ] = config
235+ st .session_state ["default_retriever_name" ] = retriever_name
236+ st .session_state ["default_top_n" ] = top_n
237+ st .session_state ["default_device" ] = device
184238 st .success ("세션 그래프가 새로고침되었습니다." )
185239
186240with st .expander ("현재 세션 그래프 설정" ):
0 commit comments