Spaces:
Paused
Paused
# qdrant_manager.py | |
from langchain_qdrant import Qdrant | |
from langchain_openai import OpenAIEmbeddings | |
from typing import List, Dict, Any | |
import logging | |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') | |
class QdrantManager: | |
def __init__(self, api_url: str, api_key: str, collection_name: str): | |
self.embeddings = OpenAIEmbeddings(model="text-embedding-3-small") | |
self.qdrant = Qdrant.from_documents( | |
[], | |
self.embeddings, | |
url=api_url, | |
api_key=api_key, | |
collection_name=collection_name, | |
) | |
def add_texts(self, chunks: List[str], metadata: Dict[str, Any]): | |
try: | |
self.qdrant.add_texts(chunks, metadatas=[metadata] * len(chunks)) | |
logging.info(f"Added {len(chunks)} chunks to Qdrant for document: {metadata['title']}") | |
except Exception as e: | |
logging.error(f"Error adding to Qdrant: {str(e)}") | |
def get_embeddings(self, text: str) -> List[float]: | |
return self.embeddings.embed_query(text) | |