File size: 1,119 Bytes
85b9c71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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 "현재 상황에 대한 자막을 찾을 수 없습니다."