import os from dotenv import load_dotenv #from langchain_community.document_loaders import TextLoader from langchain_community.document_loaders import Docx2txtLoader from langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_google_genai import GoogleGenerativeAIEmbeddings from langchain_qdrant import QdrantVectorStore # 1. Chargement de la clé API load_dotenv() api_key = os.getenv("GOOGLE_API_KEY") def inserer_documents(): print("1. Chargement du document...") # Assurez-vous d'avoir un fichier mon_document.txt à côté de ce script #loader = TextLoader("resources/cv.docx", encoding="utf-8") loader = Docx2txtLoader("resources/cv.docx") documents = loader.load() print("2. Découpage du texte en morceaux...") # On coupe le texte par blocs de 500 caractères, avec un chevauchement de 50 caractères # (Le chevauchement évite de couper une phrase importante au milieu) text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50 ) morceaux = text_splitter.split_documents(documents) print(f"-> Le document a été découpé en {len(morceaux)} morceau(x).") print("3. Connexion au modèle d'Embedding...") # C'EST CRUCIAL : C'est le même modèle que dans votre script de recherche ! embeddings = GoogleGenerativeAIEmbeddings(model="models/gemini-embedding-001") print("4. Envoi vers Qdrant...") # On utilise la méthode "from_documents" qui va tout faire d'un coup : # Créer la collection (si elle n'existe pas), vectoriser, et sauvegarder. qdrant_url = "http://qdrant:6333" nom_collection = "rag-1" QdrantVectorStore.from_documents( documents=morceaux, embedding=embeddings, url=qdrant_url, collection_name=nom_collection, ) print("✅ Succès ! Les données sont dans Qdrant.") if __name__ == "__main__": inserer_documents()