cnp-ai commited on
Commit
9bcc136
·
verified ·
1 Parent(s): da116eb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -19
app.py CHANGED
@@ -69,14 +69,8 @@ def filter_semantically_similar_texts_by_embedding(df, embedding_field='embeddin
69
 
70
  return df.iloc[filtered_indices].reset_index(drop=True)
71
 
72
- def find_ori_num(list_number):
73
- if not (5 <= list_number <= 15):
74
- return "5~15사이의 값을 입력해주세요"
75
- if list_number:
76
- ori_num = 15 - list_number
77
- return ori_num
78
-
79
- def search_kpi(kpi_query, val=None):
80
  results = kpi_pool.similarity_search_with_relevance_scores(kpi_query, k=50)
81
 
82
  # 메타데이터 + 점수 추출
@@ -85,16 +79,11 @@ def search_kpi(kpi_query, val=None):
85
  for doc, score in results
86
  ]
87
 
 
88
  df = pd.DataFrame(records)
89
- df['embedding'] = df['지표명']+" "+df['정의']
90
-
91
- # 다양성 필터링 (텍스트 임베딩 기반)
92
- min_num = find_ori_num(val)
93
- if val:
94
- df = filter_semantically_similar_texts_by_embedding(df, embedding_field='embedding', similarity_threshold=0.8)
95
- df = df.iloc[min_num:15]
96
- else:
97
- df = filter_semantically_similar_texts_by_embedding(df, embedding_field='embedding', similarity_threshold=0.8).head(15)
98
 
99
  # 카테고리 생성 (BSC 관점 + 전략방향)
100
  df['카테고리'] = df['BSC 관점'] + " > " + df['전략방향']
@@ -238,7 +227,7 @@ with gr.Blocks(css=css) as demo:
238
  kpi_query = gr.Textbox(scale=30, submit_btn=True,
239
  label= "성과평가를 진행할 [핵심업무 or 핵심성공요인]을 입력해주세요😊! (검색 키워드는 직무기술서 또는 NCS 능력단위 참고)",
240
  placeholder="예: 자금계획수립 정확성, 자금조달 적시성, 재무위험관리 효과성 등")
241
- val_num = gr.Slider(label="KPI 출력 개수", value = 10, minimum=5, maximum=15, step=1, scale=7)
242
 
243
  copyright = gr.Markdown(guide, visible=True, elem_classes="custom-markdown")
244
 
@@ -260,7 +249,7 @@ with gr.Blocks(css=css) as demo:
260
 
261
  file_download = gr.Files(label="Download", interactive=False, visible=False)
262
 
263
- kpi_query.submit(search_kpi, inputs = [kpi_query,val_num], outputs = [output_area, kpi_checkbox, kpi_table, df_state, check_state, copyright])
264
  select_button.click(fn=toggle_selection, inputs=[kpi_checkbox, check_state], outputs=kpi_checkbox, show_progress='hidden')
265
  download_button.click(
266
  generate_excel,
 
69
 
70
  return df.iloc[filtered_indices].reset_index(drop=True)
71
 
72
+
73
+ def search_kpi(kpi_query, kpi_count):
 
 
 
 
 
 
74
  results = kpi_pool.similarity_search_with_relevance_scores(kpi_query, k=50)
75
 
76
  # 메타데이터 + 점수 추출
 
79
  for doc, score in results
80
  ]
81
 
82
+ # DataFrame으로 변환
83
  df = pd.DataFrame(records)
84
+ df['카테고리'] = df['BSC 관점'] + " > " + df['전략방향']
85
+ df = df.drop_duplicates(subset=['정의', '산식']).head(15)
86
+ df = df.iloc[:kpi_count]
 
 
 
 
 
 
87
 
88
  # 카테고리 생성 (BSC 관점 + 전략방향)
89
  df['카테고리'] = df['BSC 관점'] + " > " + df['전략방향']
 
227
  kpi_query = gr.Textbox(scale=30, submit_btn=True,
228
  label= "성과평가를 진행할 [핵심업무 or 핵심성공요인]을 입력해주세요😊! (검색 키워드는 직무기술서 또는 NCS 능력단위 참고)",
229
  placeholder="예: 자금계획수립 정확성, 자금조달 적시성, 재무위험관리 효과성 등")
230
+ kpi_count = gr.Slider(label="KPI 출력 개수", value = 15, minimum=5, maximum=15, step=1, scale=7)
231
 
232
  copyright = gr.Markdown(guide, visible=True, elem_classes="custom-markdown")
233
 
 
249
 
250
  file_download = gr.Files(label="Download", interactive=False, visible=False)
251
 
252
+ kpi_query.submit(search_kpi, inputs = [kpi_query, kpi_count], outputs = [output_area, kpi_checkbox, kpi_table, df_state, check_state, copyright])
253
  select_button.click(fn=toggle_selection, inputs=[kpi_checkbox, check_state], outputs=kpi_checkbox, show_progress='hidden')
254
  download_button.click(
255
  generate_excel,