Skip to content

Commit 2edf12b

Browse files
committed
add Qdrant
1 parent 855cd44 commit 2edf12b

File tree

2 files changed

+32
-19
lines changed

2 files changed

+32
-19
lines changed

answer/routes/base.py

Lines changed: 31 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -124,30 +124,43 @@ async def init_resources():
124124

125125
app.state.embedder = init_embedder()
126126

127-
# Заглушка для тестирования
128-
app.state.qdrant_client = None
129-
130-
# Создаем мок-документы для тестирования
131-
from langchain.schema import Document
132-
133-
documents = [
134-
Document(
135-
page_content="Тестовый документ о стипендиях", metadata={"source": "Стипендии", "key_words": "стипендия"}
136-
)
137-
]
127+
app.state.qdrant_client = QdrantClient(
128+
url="http://qdrant.profcomff.com:6333",
129+
api_key=settings.QDRANT_API_KEY
130+
)
131+
132+
documents = get_documents_from_qdrant(
133+
client=app.state.qdrant_client,
134+
collection_name=settings.collection_name,
135+
page_content_field="page_content",
136+
metadata_field="metadata"
137+
)
138138

139139
app.state.bm25_retriever = BM25Retriever.from_documents(
140140
documents, preprocess_func=preprocess_stem, k=settings.retrivier_k
141141
)
142142

143-
# Заглушка для vector_store
144-
app.state.vector_store = None
143+
app.state.vector_store = QdrantVectorStore(
144+
client=app.state.qdrant_client,
145+
collection_name=settings.collection_name,
146+
embedding=app.state.embedder,
147+
)
148+
149+
app.state.vector_retriever = app.state.vector_store.as_retriever(search_kwargs={"k": settings.retrivier_k})
150+
151+
app.state.ensemble_retriever = EnsembleRetriever(retrievers=[app.state.bm25_retriever, app.state.vector_retriever],
152+
weights=[0.5, 0.5])
153+
154+
app.state.filtered_ensemble_retriever = FilteredEnsembleRetriever(app.state.vector_store,
155+
app.state.bm25_retriever,
156+
retriever_k=settings.retrivier_k,
157+
ensemble_k=settings.ensemble_k)
158+
159+
app.state.keywords_dict = generate_keywords_dict(
160+
vector_store=app.state.vector_store,
161+
output_json_path="file/key_words_dict.json"
162+
)
145163

146-
# Заглушки для ретриверов
147-
app.state.vector_retriever = None
148-
app.state.ensemble_retriever = None
149-
app.state.filtered_ensemble_retriever = None
150-
app.state.keywords_dict = {}
151164

152165
app_state_dict = {
153166
"credentials": app.state.credentials,

answer/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class Settings(BaseSettings):
3535
retrivier_k: int = 10
3636
MAX_BUTTONS: int = 5
3737
max_length: int = 200
38-
collection_name: str = 'number_id_collect'
38+
collection_name: str = 'bookstack_v0'
3939
warning_message: str = ' Ответ сгенерирован ИИ и может содержать неточности.'
4040

4141

0 commit comments

Comments
 (0)