Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -3,10 +3,13 @@ from langchain.text_splitter import RecursiveCharacterTextSplitter
|
|
3 |
from langchain_core.documents import Document # Updated import
|
4 |
# from langchain_openai import OpenAIEmbeddings
|
5 |
from langchain_huggingface import HuggingFaceEmbeddings # Updated import
|
|
|
6 |
from langchain_community.vectorstores import Chroma
|
7 |
from dotenv import load_dotenv
|
8 |
import os
|
9 |
import shutil # Added import
|
|
|
|
|
10 |
|
11 |
# Load environment variables
|
12 |
load_dotenv()
|
@@ -23,6 +26,46 @@ def main():
|
|
23 |
|
24 |
generate_data_store()
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
def generate_data_store():
|
27 |
documents = load_documents()
|
28 |
if documents:
|
@@ -62,7 +105,8 @@ def save_to_chroma(chunks: list[Document]):
|
|
62 |
|
63 |
# Initialize embeddings with cache
|
64 |
embeddings = HuggingFaceEmbeddings(
|
65 |
-
model_name="BAAI/bge-m3",
|
|
|
66 |
cache_folder="model_cache" # Правильное место для кэша
|
67 |
)
|
68 |
|
|
|
3 |
from langchain_core.documents import Document # Updated import
|
4 |
# from langchain_openai import OpenAIEmbeddings
|
5 |
from langchain_huggingface import HuggingFaceEmbeddings # Updated import
|
6 |
+
from langchain.evaluation import load_evaluator
|
7 |
from langchain_community.vectorstores import Chroma
|
8 |
from dotenv import load_dotenv
|
9 |
import os
|
10 |
import shutil # Added import
|
11 |
+
import numpy as np
|
12 |
+
|
13 |
|
14 |
# Load environment variables
|
15 |
load_dotenv()
|
|
|
26 |
|
27 |
generate_data_store()
|
28 |
|
29 |
+
# Инициализация модели для эмбеддингов
|
30 |
+
embedding_function = HuggingFaceEmbeddings(
|
31 |
+
model_name="sentence-transformers/all-MiniLM-L6-v2"
|
32 |
+
)
|
33 |
+
|
34 |
+
# Получение эмбеддинга для слова
|
35 |
+
vector = embedding_function.embed_query("управитель")
|
36 |
+
print(f"Вектор для 'управитель' (первые 5 значений): {vector[:5]}")
|
37 |
+
print(f"Длина вектора: {len(vector)}")
|
38 |
+
|
39 |
+
# Сравнение векторов двух слов
|
40 |
+
evaluator = load_evaluator("pairwise_embedding_distance")
|
41 |
+
words = ("управитель", "альмутен")
|
42 |
+
result = evaluator.evaluate_string_pairs(
|
43 |
+
prediction=words[0],
|
44 |
+
prediction_b=words[1]
|
45 |
+
)
|
46 |
+
|
47 |
+
print(f"\nСравнение ({words[0]}, {words[1]}):")
|
48 |
+
print(f"Расстояние между векторами: {result['score']:.4f}")
|
49 |
+
print(f"Интерпретация: чем меньше значение, тем более похожи векторы")
|
50 |
+
|
51 |
+
# Получение эмбеддинга для слова
|
52 |
+
vector = embedding_function.embed_query("Сатурн")
|
53 |
+
print(f"Вектор для 'управитель' (первые 5 значений): {vector[:5]}")
|
54 |
+
print(f"Длина вектора: {len(vector)}")
|
55 |
+
|
56 |
+
# Сравнение векторов двух слов
|
57 |
+
evaluator = load_evaluator("pairwise_embedding_distance")
|
58 |
+
words = ("Сатурн", "Венера")
|
59 |
+
result = evaluator.evaluate_string_pairs(
|
60 |
+
prediction=words[0],
|
61 |
+
prediction_b=words[1]
|
62 |
+
)
|
63 |
+
|
64 |
+
print(f"\nСравнение ({words[0]}, {words[1]}):")
|
65 |
+
print(f"Расстояние между векторами: {result['score']:.4f}")
|
66 |
+
print(f"Интерпретация: чем меньше значение, тем более похожи векторы")
|
67 |
+
|
68 |
+
|
69 |
def generate_data_store():
|
70 |
documents = load_documents()
|
71 |
if documents:
|
|
|
105 |
|
106 |
# Initialize embeddings with cache
|
107 |
embeddings = HuggingFaceEmbeddings(
|
108 |
+
# model_name="BAAI/bge-m3", # 2.27Gb
|
109 |
+
model_name="sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2", #133Mb
|
110 |
cache_folder="model_cache" # Правильное место для кэша
|
111 |
)
|
112 |
|