football_analysis / retriever /generate_commentary.py
yugangee's picture
Upload 6 files
85b9c71 verified
import pickle
from sentence_transformers import SentenceTransformer
import numpy as np
import faiss
def search_similar_commentary(query, vector_store_path, top_k=3):
# 전달된 경로 확인용 출력
print("📂 전달된 벡터 저장소 경로:", vector_store_path)
# 저장된 FAISS index, 문장 목록, 모델 로드
with open(vector_store_path, "rb") as f:
index, docs, model = pickle.load(f)
# 입력 쿼리 임베딩
query_embedding = model.encode([query])
query_embedding = np.array(query_embedding).astype("float32")
# FAISS 유사도 검색
distances, indices = index.search(query_embedding, top_k)
# 가장 유사한 문장들 반환
top_sentences = [docs[i] for i in indices[0]]
return top_sentences
def generate_commentary(query, vector_store_path):
similar_sentences = search_similar_commentary(query, vector_store_path)
if similar_sentences:
return similar_sentences[0] # 가장 유사한 문장만 사용
else:
return "현재 상황에 대한 자막을 찾을 수 없습니다."