Files
langgraph-vertex/rag_import.py

53 lines
1.9 KiB
Python
Raw Normal View History

2026-04-10 10:15:37 +00:00
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()