File size: 1,096 Bytes
870aead
 
 
 
83f5412
870aead
 
 
 
 
83f5412
870aead
 
 
 
 
 
a8a6be3
870aead
 
 
 
 
 
 
 
 
 
 
 
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
# app.py
import numpy as np
from sentence_transformers import SentenceTransformer
import faiss

# Загрузка индекса и фрагментов
def load_index_and_passages(index_path="vectorstore/index.faiss", passage_path="vectorstore/passages.npy"):
    index = faiss.read_index(index_path)
    passages = np.load(passage_path, allow_pickle=True)
    return index, passages

# Получить наиболее релевантный фрагмент
def retrieve_answer(question, index, passages, top_k=1):
    model = SentenceTransformer('bert-base-multilingual-cased')
    question_emb = model.encode([question])
    D, I = index.search(question_emb, top_k)
    return [passages[i] for i in I[0]]

# Простая функция-интерфейс
def ask_qa():
    index, passages = load_index_and_passages()
    while True:
        question = input("Сұрақ: ")
        if question.lower() in ["exit", "шығу"]:
            break
        answers = retrieve_answer(question, index, passages)
        print("Жауап:", answers[0])

if __name__ == "__main__":
    ask_qa()