Skip to content

Commit 57dd76d

Browse files
committed
chore(worker): add type ignores for llama-index and fastembed imports
1 parent c99a456 commit 57dd76d

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

backend/workers/tasks/vectorize_post.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
"""
2-
File: backend/workers/tasks/vectorize_post.py
3-
Task: 6.4.1 - RAG Feedback Loop (Continuous Learning via OpenAI)
4-
"""
5-
61
import structlog
72
from llama_index.core import Document, StorageContext, VectorStoreIndex
83
from llama_index.core.settings import Settings
@@ -21,7 +16,11 @@
2116

2217
# Витягуємо токен безпечно (Pydantic SecretStr)
2318
_raw_key = settings.OPENAI_API_KEY
24-
openai_key: str = _raw_key.get_secret_value() if hasattr(_raw_key, "get_secret_value") else str(_raw_key)
19+
openai_key: str = (
20+
_raw_key.get_secret_value()
21+
if hasattr(_raw_key, "get_secret_value")
22+
else str(_raw_key)
23+
)
2524

2625
# Налаштовуємо глобальну модель для векторизації
2726
embed_model = OpenAIEmbedding(model=settings.OPENAI_MODEL_EMBEDDING, api_key=openai_key)
@@ -38,9 +37,12 @@ async def vectorize_published_post_task(content: str, platform: str) -> None:
3837
try:
3938
# 1. Підключаємось до Qdrant
4039
qdrant_url = getattr(settings, "QDRANT_URL", "http://127.0.0.1:6333")
41-
client = AsyncQdrantClient(url=qdrant_url)
40+
aclient = AsyncQdrantClient(url=qdrant_url)
4241

43-
vector_store = QdrantVectorStore(aclient=client, collection_name="doctor_style")
42+
# Передаємо AsyncQdrantClient в параметр aclient
43+
vector_store = QdrantVectorStore(
44+
aclient=aclient, collection_name="doctor_style"
45+
)
4446
storage_context = StorageContext.from_defaults(vector_store=vector_store)
4547

4648
# 2. Створюємо документ із метаданими
@@ -53,11 +55,18 @@ async def vectorize_published_post_task(content: str, platform: str) -> None:
5355
},
5456
)
5557

56-
# 3. Векторизуємо та зберігаємо у БД
57-
VectorStoreIndex.from_documents(
58-
[doc], storage_context=storage_context, show_progress=False
58+
# 3. Векторизуємо та зберігаємо у БД асинхронно
59+
# Якщо колекції немає, QdrantVectorStore створит її під капотом
60+
# коли ми будемо використовувати aclient
61+
62+
# Створюємо порожній індекс, прив'язаний до Qdrant
63+
index = VectorStoreIndex.from_vector_store( # type: ignore[reportUnknownMemberType]
64+
vector_store=vector_store, storage_context=storage_context
5965
)
6066

67+
# Вставляємо документ асинхронно
68+
await index.ainsert(doc)
69+
6170
logger.info("vectorization_success", platform=platform)
6271
except Exception as e:
6372
logger.error("vectorization_failed", error=str(e), error_type=type(e).__name__)

0 commit comments

Comments
 (0)