División por caracteres
Un proceso clave en la implementación de la generación aumentada por recuperación (RAG) es dividir los documentos en fragmentos para almacenarlos en una base de datos vectorial.
Hay varias estrategias de división disponibles en LangChain, algunas con rutinas más complejas que otras. En este ejercicio, implementarás un divisor de texto por caracteres, que divide los documentos en función de los caracteres y mide la longitud de los fragmentos por el número de caracteres.
Recuerda que no existe una estrategia de división ideal, es posible que tengas que probar varias hasta encontrar la más adecuada para tu caso concreto.
Este ejercicio forma parte del curso
Desarrollo de aplicaciones LLM con LangChain
Instrucciones del ejercicio
- Importa la clase
CharacterTextSplitterdelangchain_text_splitters. - Crea una instancia de
CharacterTextSplitterconseparator="\n",chunk_size=24ychunk_overlap=10. - Utiliza el método
.split_text()para dividirquotee imprimir los fragmentos y sus longitudes.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Import the character splitter
from langchain_text_splitters import ____
quote = 'Words are flowing out like endless rain into a paper cup,\nthey slither while they pass,\nthey slip away across the universe.'
chunk_size = 24
chunk_overlap = 10
# Create an instance of the splitter class
splitter = CharacterTextSplitter(
separator=____,
chunk_size=____,
chunk_overlap=____)
# Split the string and print the chunks
docs = splitter.____(quote)
print(docs)
print([len(doc) for doc in docs])