SergeyO7 commited on
Commit
95f27d6
·
verified ·
1 Parent(s): 52af776

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -1
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