MJ-Prod commited on
Commit
cd25eff
·
1 Parent(s): be1a1c0

updated RAG_4

Browse files
Files changed (1) hide show
  1. fiscal.py +27 -11
fiscal.py CHANGED
@@ -26,24 +26,40 @@ except ImportError:
26
  # ---------- Embeddings ----------
27
  _embed_lock = threading.Lock()
28
 
29
- embeddings = HuggingFaceEmbeddings(
30
  model_name="nomic-ai/nomic-embed-text-v1",
31
  model_kwargs={"trust_remote_code": True},
32
  )
33
 
34
- _orig_embed_query = embeddings.embed_query
35
- _orig_embed_documents = embeddings.embed_documents
36
 
37
- def _locked_embed_query(text):
38
- with _embed_lock:
39
- return _orig_embed_query(text)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
 
41
- def _locked_embed_documents(texts):
42
- with _embed_lock:
43
- return _orig_embed_documents(texts)
44
 
45
- embeddings.embed_query = _locked_embed_query
46
- embeddings.embed_documents = _locked_embed_documents
47
 
48
  # ---------- Vector store ----------
49
  vectorstore = Chroma(
 
26
  # ---------- Embeddings ----------
27
  _embed_lock = threading.Lock()
28
 
29
+ _raw_embeddings = HuggingFaceEmbeddings(
30
  model_name="nomic-ai/nomic-embed-text-v1",
31
  model_kwargs={"trust_remote_code": True},
32
  )
33
 
 
 
34
 
35
+ class LockedEmbeddings:
36
+ """Serializes access to the underlying embedding model.
37
+
38
+ The Nomic model caches rotary cos/sin buffers on itself and resizes them
39
+ in place, which is not safe when two requests embed concurrently.
40
+ """
41
+
42
+ def __init__(self, inner):
43
+ self._inner = inner
44
+
45
+ def embed_query(self, text):
46
+ with _embed_lock:
47
+ return self._inner.embed_query(text)
48
+
49
+ def embed_documents(self, texts):
50
+ with _embed_lock:
51
+ return self._inner.embed_documents(texts)
52
+
53
+ async def aembed_query(self, text):
54
+ with _embed_lock:
55
+ return self._inner.embed_query(text)
56
+
57
+ async def aembed_documents(self, texts):
58
+ with _embed_lock:
59
+ return self._inner.embed_documents(texts)
60
 
 
 
 
61
 
62
+ embeddings = LockedEmbeddings(_raw_embeddings)
 
63
 
64
  # ---------- Vector store ----------
65
  vectorstore = Chroma(