some langchain llm call
This commit is contained in:
53
rag_import.py
Normal file
53
rag_import.py
Normal file
@@ -0,0 +1,53 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user