File size: 1,077 Bytes
84deff7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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)