Introducción a LangChain

1

Desarrollo de aplicaciones con LLM utilizando LangChain

2

Estructura y módulos de LangChain

3

Uso de modelos Open Source de Hugging Face

4

Uso de modelos de OpenAI API

5

Prompt templates de LangChain

6

Cadenas en LangChain

7

Utility chains

8

RetrievalQA chain

9

Foundational chains

Quiz: Introducción a LangChain

Casos de uso de LangChain

10

Casos de uso de LangChain

11

¿Cómo utilizar LangChain en mi equipo?

Quiz: Casos de uso de LangChain

Manejo de documentos con índices

12

¿Cómo manejar documentos con índices en LangChain?

13

La clase Document

14

Document Loaders: PDF

15

Document Loaders: CSV con Pandas DataFrames

16

Document Loaders: JSONL

17

Document Transformers: TextSplitters

18

Proyecto de Chatbot: configuración de entorno para LangChain y obtención de datos

19

Proyecto de Chatbot: creación de documents de Hugging Face

Quiz: Manejo de documentos con índices

Embeddings y bases de datos vectoriales

20

Uso de embeddings y bases de datos vectoriales con LangChain

21

¿Cómo usar embeddings de OpenAI en LangChain?

22

¿Cómo usar embeddings de Hugging Face en LangChaing?

23

Chroma vector store en LangChain

24

Proyecto de Chatbot: ingesta de documents en Chroma

25

RetrievalQA: cadena para preguntar

26

Proyecto de Chatbot: cadena de conversación

27

Proyecto de Chatbot: RetrievalQA chain

Quiz: Embeddings y bases de datos vectoriales

Chats y memoria con LangChain

28

¿Para qué sirve la memoria en cadenas y chats?

29

Uso de modelos de chat con LangChain

30

Chat prompt templates

31

ConversationBufferMemory

32

ConversationBufferWindowMemory

33

ConversationSummaryMemory

34

ConversationSummaryBufferMemory

35

Entity memory

36

Proyecto de Chatbot: chat history con ConversationalRetrievalChain

Quiz: Chats y memoria con LangChain

Evolución del uso de LLM

37

LangChain y LLM en evolución constante

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

11 Días
18 Hrs
50 Min
42 Seg
Curso de LangChain

Curso de LangChain

Omar Espejel

Omar Espejel

LangChain y LLM en evolución constante

37/37
Recursos

Créditos del Curso: Curso de Desarrollo de Aplicaciones de IA con LangChain: Chatbots
Profe: Omar Espejel
School Owner: Carlos Alarcón
Course Director: Miguel Torres
Audiovisual Creator: Candela Ocaranza
Editor: Pablo Valès
Post de audio: Santiago Guarín Suárez
Diseño: Amelia Amórtegui

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

¡Excelente curso!

Me encantó

Por favor el

Curso de construcción de herramientas customizadas en base a LLM open source (no API)

El aumento de este semestre me lo gane por Platzi, este curso es oro puro, diria que mas.

El mejor curso de IA para dev de Platzi. Gracias!

teest resppuestas
Resumen
1.
Al considerar el uso de los modelos LangChain, ¿qué implicaciones prácticas tendría para su proyecto el cambio entre diferentes modelos?
Gracias a la interfaz consistente de los modelos LangChain, se puede cambiar entre diferentes modelos con facilidad. Lo que permite adaptar el sistema a las necesidades cambiantes.
2.
Al diseñar aplicaciones de IA, ¿cuáles son las diferencias fundamentales entre los modelos de código abierto de Hugging Face y los modelos ofrecidos por proveedores como OpenAI o Cohere?

Los de Hugging Face se ejecutan en la máquina del usuario o en el hardware que defina, lo que puede ser lento sin el hardware adecuado, mientras que los remotos de proveedores como OpenAI se ejecutan en sus servidores.
3.
Dado que LangChain facilita el proceso al enviar preguntas directamente al pipeline de Hugging Face para generar texto, ¿qué implicaciones tendría el uso de ‘temperature’: 0 en model_kwargs?

La ‘temperature’: 0 haría que el modelo no genere ninguna respuesta, ya que esta configuración apaga completamente el modelo al usar LangChain.
REPASAR CLASE
4.
¿Cómo podría afectar el parámetro “n” en la clase OpenAI de langchain al resultado de las consultas realizadas?

El parámetro “n” determina la cantidad de respuestas generadas por el modelo, por lo que un valor mayor de “n” proporciona más opciones de respuestas a una consulta.
5.
¿Por qué puede ser importante y necesario utilizar función get_num_tokens de tiktoken al trabajar con modelos de embeddings?

Permite estimar el número de tokens utilizados en una entrada, lo cual es valioso para controlar el número total de tokens y gestionar costos asociados con el uso del modelo de OpenAI.
6.
¿Qué clase y modelo debe usarse en el siguiente código en Python para cargar un LLM de OpenAI con LangChain?

llm= (
model_name="
_________",
n=1,
temperature=0.2
)

ModelOpenAI y davinci-002
REPASAR CLASE
7.
Dentro del siguiente prompt template de LangChain, ¿qué deben recibir las variables input_variables y template?

template_product = “”"Escribe una descripción técnica del producto para distribuidores. Utiliza la ficha técnica siguiente:

{ficha_tecnica}

Respuesta (escribe una lista con detalles de cada característica): “”"

prompt_template_product = PromptTemplate(
input_variables=,
template=
_____
)
[“ficha_tecnica”] y template_product
8.
¿Qué es una cadena en LangChain y cómo se utiliza?
LangChain proporciona la interfaz Chain para aplicaciones “encadenadas”. Definimos una Chain o cadena de manera muy genérica como una secuencia de llamadas a componentes, que pueden incluir otras cadenas
9.
¿Qué ocurre si se trata de generar un resumen utilizando load_summarize_chain de LangChain con una chain_type=“stuff”?

Se puede incluir un propio prompt/plantilla, pero solo caben el máximo de tokens permitidos por el modelo y no documentos largos.
10.
Al utilizar el objeto RetrievalQA de LangChain, ¿qué sucede cuando se le pasa una pregunta?

Se utiliza el modelo de lenguaje y el objeto retriever para buscar información relacionada con la pregunta y generar una respuesta.
11.
¿Qué es un Retriever de LangChain?
Un componente que localiza y devuelve documentos relevantes según una consulta específica.
12.
Dentro de una SequentialChain de LangChain, ¿qué debe recibir en chains, output_variables e input_variables?

cadena_secuencial = SequentialChain(
chains=[__________________],
input_variables=[],
output_variables=[
]
)
En chains, las cadenas se pasan en el orden consecutivo en el que se utilizarán. input_variables se refiere a las variables de entrada que reciben las cadenas. output_variables designa lo que retorna la última cadena.

¿A qué nos referimos con los “índices” en el contexto de los sistemas de procesamiento de lenguaje natural?
A las formas de estructurar documentos para que los modelos de lenguaje puedan obtener nueva información.
14.
¿Cuál es la función de un Document Loader en LangChain?
Cargar datos y convertirlos al formato Document de LangChain.

¿Qué clase de LangChain se debe usar en el siguiente código para cargar un PDF que mantenga las páginas del documento PDF?

from langchain.document_loaders import _______

loader = _________("./document.pdf")
data = loader.load()
PyPDFLoader
16.
Imagina que estás utilizando el RecursiveCharacterTextSplitter de LangChain para dividir un conjunto de textos. En este proceso, te das cuenta de que algunos de los fragmentos resultantes son más grandes de lo que puede manejar el modelo para generar embeddings. ¿Cómo podrías abordar este problema?

Puedes ajustar el número de caracteres que utiliza el RecursiveCharacterTextSplitter para la división de texto, disminuyendo el número.
17.
Trabajas con una empresa de análisis de texto y tu equipo necesita implementar un sistema para dividir grandes cantidades de texto en fragmentos manejables. ¿Por qué podrías considerar útil el parámetro de superposición o chunk_overlap en este proceso?

La superposición ayuda a mantener el contexto entre fragmentos contiguos, actuando como una pequeña ventana de memoria que se traslada de un fragmento a otro.
18.
¿Por qué deberías considerar útil trabajar con la clase Embeddings de LangChain en una aplicación que integre NLP?
La clase Embeddings de LangChain da una interfaz para trabajar con modelos de embeddings con la que puedes interactuar con varios modelos, sin importar si su proveedor es OpenAI, Cohere, Hugging Face u otro.
19.
En el siguiente código de Python, ¿qué deben recibir los métodos OpenAIEmbeddings() y para qué sirve el método embed_documents().

embedding_openai = OpenAIEmbeddings(__________)

incrustaciones = embedding_openai.embed_documents(documents_to_embed)
Debe recibir un nombre de modelo de embedding de OpenAI. El método embed_documents recibe los Document de LangChain para convertirlos a embeding usando el modelo previamente definido.
20.
¿Por qué es necesario utilizar .client al crear embeddings con modelos de Hugging Face usando LangChain?

Ayuda a medir el tamaño de los embedding a utilizar para no exceder los límites de tamaño de tokens de los modelos.
21.
¿Cómo funciona el proceso de LangChain para que un LLM pueda obtener nueva información de una base de datos vectorial?
Se utiliza un retriever que busca dentro de la base de datos vectorial los textos más parecidos a la solicitud de información. Este retriever se activa con una cadena RetrievalQA que consulta la base de datos usando un LLM.
22.
En el contexto de una conversación con un asistente digital, ¿por qué sería problemático tener una conversación extensa con modelos de lenguaje como GPT-4?
Debido a que los modelos de lenguaje como GPT-4 tienen un límite de tokens (los que ingresamos en el prompt), las conversaciones largas pueden exceder este límite, por ello se debe agregar un componente de memoria.
23.
¿Para qué se utilizan SystemMessage, HumanMessage, AIMessageal definir el schema de los mensajes de una aplicación de chat con LangChain?

SystemMessage es la indicación de contexto que debe seguir el modelo, HumanMessage es el mensaje del humano, AIMessage es la respuesta del modelo.
24.
¿Qué clase y modelo debe usarse en el siguiente código en Python para cargar un modelo de Chat de OpenAI con LangChain?

chat = (
model="
_________",
temperature=0.6
)
ChatOpenAI y ‘gpt-4’.
25.
¿Por qué es importante utilizar el SystemMessage en los chatbots?

Porque permite establecer el comportamiento y los objetivos del modelo de lenguaje, proporcionando instrucciones específicas.
26.
Cuando se utiliza la ConversationBufferWindowMemory en LangChain, ¿cuál es una de las implicaciones de ajustar el parámetro max_token_limit?

El max_token_limit determina la capacidad de la memoria para almacenar interacciones sin necesidad de sintetizarlas. Al superar este límite, la memoria genera automáticamente un resumen de las interacciones previas

Ver menos

Increible el curso! Felicitaciones Omar, sos un gran profesor!
A emprender con AI @emayaml
A emprender con AI!
Este fue un gran curso, el profesor explica muy bien, gracias
def process\_memory\_query\_resume(query, retriever, llm):    memory = ConversationSummaryBufferMemory(llm=OpenAI(), max\_token\_limit=40, k=2)    conversation=ConversationChain(         llm=llm,        memory=memory,        verbose=True,        retriever=retriever    )    console.print("\[yellow]La IA está pensando...\[/yellow]")  return conversation.predict(input=query) File "pydantic/main.py", line 341, in pydantic.main.BaseModel.\_\_init\_\_ pydantic.error\_wrappers.ValidationError: 1 validation error for ConversationChain retriever extra fields not permitted (type=value\_error.extra) Hola amigos, alguna idea con este error, el resto del codigo está corriendo pero cuando trato de usar ConversationSummaryBufferMemory me dice que tengo un problema con retriever, gracias.
### ¡Excelente curso!
Increible curso, sin duda uno de los mejores y mas avanzados de platzi, el docente es de primera.

WAOOOO, sin palabras… increible. El mejor curso que he tomado en Platzi. Excelente y felicitaciones profe