Spaces:
Starting
on
T4
Starting
on
T4
Update app.py
Browse files
app.py
CHANGED
@@ -16,7 +16,7 @@ from statistical_chunker import StatisticalChunker
|
|
16 |
from optimum_encoder import OptimumEncoder
|
17 |
from scipy.sparse import csr_matrix, save_npz, load_npz, vstack
|
18 |
from langchain_community.document_loaders import WikipediaLoader, WebBaseLoader
|
19 |
-
from fastembed import SparseEmbedding
|
20 |
from unstructured.partition.auto import partition
|
21 |
import onnxruntime as ort
|
22 |
from pymilvus import (
|
@@ -44,7 +44,7 @@ def query_hybrid_search(col: Collection, query: str, dense_model: OptimumEncoder
|
|
44 |
data = query_sparse.values
|
45 |
sparse_matrix = vstack(csr_matrix(data, query_sparse.indices, np.array([0, len(data)]), shape=(1, max_index + 1))).tocsr()
|
46 |
|
47 |
-
sparse_req = AnnSearchRequest(
|
48 |
dense_req = AnnSearchRequest(query_dense_embeddings, "dense_vector", {"metric_type": "COSINE"}, limit=10)
|
49 |
|
50 |
res = col.hybrid_search([sparse_req, dense_req], rerank=RRFRanker(), limit=3, output_fields=["text"])
|
@@ -122,7 +122,7 @@ def load_models_and_documents():
|
|
122 |
cache_dir=os.getenv('HF_HOME')
|
123 |
)
|
124 |
|
125 |
-
sparse_model =
|
126 |
'Qdrant/all_miniLM_L6_v2_with_attentions',
|
127 |
cache_dir=os.getenv('HF_HOME'),
|
128 |
providers=['CUDAExecutionProvider']
|
@@ -143,10 +143,15 @@ def load_models_and_documents():
|
|
143 |
schema = CollectionSchema(fields, "")
|
144 |
col = Collection(collection_name, schema)
|
145 |
|
146 |
-
sparse_index = {"index_type": "
|
147 |
-
dense_index = {"index_type": "
|
148 |
col.create_index("sparse_vector", sparse_index)
|
149 |
col.create_index("dense_vector", dense_index)
|
|
|
|
|
|
|
|
|
|
|
150 |
|
151 |
with st.spinner('Parse and chunk documents...'):
|
152 |
name = 'action_rpg'
|
|
|
16 |
from optimum_encoder import OptimumEncoder
|
17 |
from scipy.sparse import csr_matrix, save_npz, load_npz, vstack
|
18 |
from langchain_community.document_loaders import WikipediaLoader, WebBaseLoader
|
19 |
+
from fastembed import SparseEmbedding, SparseTextEmbedding
|
20 |
from unstructured.partition.auto import partition
|
21 |
import onnxruntime as ort
|
22 |
from pymilvus import (
|
|
|
44 |
data = query_sparse.values
|
45 |
sparse_matrix = vstack(csr_matrix(data, query_sparse.indices, np.array([0, len(data)]), shape=(1, max_index + 1))).tocsr()
|
46 |
|
47 |
+
sparse_req = AnnSearchRequest(sparse_matrix, "sparse_vector", {"metric_type": "IP"}, limit=10)
|
48 |
dense_req = AnnSearchRequest(query_dense_embeddings, "dense_vector", {"metric_type": "COSINE"}, limit=10)
|
49 |
|
50 |
res = col.hybrid_search([sparse_req, dense_req], rerank=RRFRanker(), limit=3, output_fields=["text"])
|
|
|
122 |
cache_dir=os.getenv('HF_HOME')
|
123 |
)
|
124 |
|
125 |
+
sparse_model = SparseTextEmbedding(
|
126 |
'Qdrant/all_miniLM_L6_v2_with_attentions',
|
127 |
cache_dir=os.getenv('HF_HOME'),
|
128 |
providers=['CUDAExecutionProvider']
|
|
|
143 |
schema = CollectionSchema(fields, "")
|
144 |
col = Collection(collection_name, schema)
|
145 |
|
146 |
+
sparse_index = {"index_type": "SPARSE_INVERTED_INDEX", "metric_type": "IP"}
|
147 |
+
dense_index = {"index_type": "HNSW", "metric_type": "COSINE"}
|
148 |
col.create_index("sparse_vector", sparse_index)
|
149 |
col.create_index("dense_vector", dense_index)
|
150 |
+
|
151 |
+
col.alter_index(
|
152 |
+
index_name=("dense_vector"),
|
153 |
+
extra_params={"mmap.enabled": True}
|
154 |
+
)
|
155 |
|
156 |
with st.spinner('Parse and chunk documents...'):
|
157 |
name = 'action_rpg'
|