Spaces:
Running
Running
| """ | |
| embedding_text 품질 수정. | |
| SCR_2042 청산내역: 잔고 관련 keyword stuffing 제거 (유지) | |
| SCR_1300 국내잔고: 구어체 문장 하드코딩 제거 → 원래 좋은 내용으로 원복 | |
| 원칙: embedding_text는 메뉴 설명이어야 함. 특정 쿼리를 하드코딩하면 다른 쿼리가 망가짐. | |
| 시스템 수준(Weighted RRF + use_reranker=True)으로 해결. | |
| """ | |
| import sys, io | |
| sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') | |
| sys.path.insert(0, '.') | |
| import json | |
| from pathlib import Path | |
| from config import GENERATED_DIR | |
| JSONL_PATH = GENERATED_DIR / "menu_descriptions.jsonl" | |
| FIXES = { | |
| # ── SCR_2042 청산내역: 잔고 반복 제거 → CFD 청산 특화 키워드로 교체 ── | |
| "SCR_2042": ( | |
| "사용자는 국내CFD 계좌에서 거래를 마친 후 청산된 내역과 실현 손익을 정확히 " | |
| "확인하고자 할 때 이 메뉴를 찾습니다. 특히 매입가, 청산가, 수수료, 세금 등 " | |
| "거래별 상세 정보를 조회하거나 예약매매 후 청산 내역과 미체결 주문 내역의 " | |
| "차이를 파악하려는 상황에서 필요합니다. 청산내역 메뉴는 국내CFD 계좌에서 " | |
| "이미 청산된 거래 기록과 실현 손익을 조회할 수 있습니다. " | |
| "국내CFD 청산내역 청산가 매입가 실현손익 수수료 세금 체결내역 주문내역 " | |
| "거래내역 예약매매 미체결 CFD포지션 CFD거래 CFD계좌 CFD청산" | |
| ), | |
| # ── SCR_1300 국내잔고: 구어체 하드코딩 제거 → 원래 내용으로 원복 ── | |
| # 원칙: embedding_text는 메뉴 설명이어야 함. | |
| # 특정 쿼리를 하드코딩하면 다른 쿼리에서 노이즈가 됨. | |
| # "잔고 확인하러 왔어" 매칭은 use_reranker=True + Weighted RRF로 해결. | |
| "SCR_1300": ( | |
| "사용자가 국내주식 계좌 내 보유 주식의 실시간 잔고와 수익 현황을 확인하고자 " | |
| "할 때 이 메뉴를 찾습니다. 특히 키움 잔고와 타사 잔고를 비교하거나 " | |
| "국내주식잔고조회, 국내주식실시간잔고를 통해 정확한 정보를 얻으려는 상황입니다. " | |
| "국내잔고 메뉴는 국내주식의 실시간 잔고와 수익 정보를 제공하며, 사용자가 " | |
| "자신의 계좌 상태를 빠르고 편리하게 확인할 수 있도록 설계되어 있습니다. " | |
| "키움 잔고 타사 잔고 국내주식잔고조회 국내주식실시간잔고 수익 잔고 조회 " | |
| "국내주식 잔고 주식잔고 계좌잔고 실시간 잔고 수익률 평가손익 지정가 시장가 " | |
| "체결 미체결 잔고 수익률 평가손익 계좌잔고 주문내역 예약매매 " | |
| "등의 키워드가 포함되어 다양한 검색 의도를 포괄합니다." | |
| ), | |
| } | |
| def main(): | |
| lines = JSONL_PATH.read_text(encoding="utf-8").splitlines() | |
| updated = 0 | |
| new_lines = [] | |
| for line in lines: | |
| if not line.strip(): | |
| new_lines.append(line) | |
| continue | |
| obj = json.loads(line) | |
| mid = obj.get("menu_id", "") | |
| if mid in FIXES: | |
| obj["embedding_text"] = FIXES[mid] | |
| new_lines.append(json.dumps(obj, ensure_ascii=False)) | |
| print(f"[수정] {mid}: {obj.get('menu_name','')}") | |
| updated += 1 | |
| else: | |
| new_lines.append(line) | |
| JSONL_PATH.write_text("\n".join(new_lines), encoding="utf-8") | |
| print(f"\n[완료] {updated}개 수정됨 → {JSONL_PATH}") | |
| if __name__ == "__main__": | |
| main() | |