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

Utility chains

7/37
Recursos

Aportes 11

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Algo que me ha servido mucho para entender mejor este tema *(por que igual es complejo), es separar los procesos por pasos:* 1\. pasar el pdf a Document de Langchain 2\. hacer un resumen previo para cada pagina 3\. hacer el prompt-template 4\. hacer resumen en espa帽ol mexicano. Creo que puede ser 煤til.
El c贸digo usado en este video ya est谩 obsoleto (21-2-24). Por ejemplo el m茅todo run ya no se aplica. Hay prevista alguna actualizaci贸n de los videos? Lo digo porque ahora mismo ya no sirve. Gracias.

鉀擄笍 Cadenas (Chains)

Utilizar un LLM de forma aislada est谩 bien para aplicaciones sencillas, pero las aplicaciones m谩s complejas requieren encadenar LLM, ya sea entre s铆 o con otros componentes.
.
LangChain proporciona la interfaz Chain para generar aplicaciones m谩s espec铆ficas. Ya que la idea de componer componentes en cadena, simplifica dr谩sticamente su especificaci贸n, haciendo m谩s modular la implementaci贸n de aplicaciones complejas, lo que a su vez facilita mucho la depuraci贸n, el mantenimiento y la mejora de nuestras aplicaciones.
.

馃摑 Resumen (Summarization)

Se puede utilizar una cadena de resumen para resumir (summarize) m煤ltiples documentos. Una forma es introducir m煤ltiples documentos m谩s peque帽os, despu茅s de haberlos dividido en trozos, y operar sobre ellos con una MapReduceDocumentsChain. Tambi茅n puede elegir que la cadena que realiza el resumen sea una cadena StuffDocumentsChain o una cadena RefineDocumentsChain.
.
Supongamos una conversaci贸n en formato .txt:

Elena: Perfect, Carlos, Ana, Juan, thank you for your feedback. Regarding priorities, we continue to focus on completing the search functionality as it is essential for the launch. Carlos, can you talk to Ana later to review the design changes?

Carlos: Of course, Elena, I will be happy to do that.

Ana: Carlos, I will send you a meeting request for that.

Juan: Regarding the implementation of the search function, I have some doubts about the integration with the third-party API we discussed yesterday. Could we go over that before we start?

Elena: Certainly, Juan. What time would be convenient for you?

Juan: Could it be at 10:30? I would have time to review the documentation before the meeting.

Elena: Sure, lets schedule the meeting for 10:30 then. Also, remember that today at 3 PM, we will have our weekly project update meeting, so lets make sure we are prepared to update the whole team.

Ana: Understood, I will be ready for that meeting.

Carlos: Same here, I will be ready to provide a solid update.

Juan: I will be ready too and hope to have some answers about the integration by then.

Elena: Perfect, that sounds great. In summary, today we will focus on the search functionality, review the design changes, and clarify any doubts about the integration with the third-party API. Lets work with energy and efficiency, team!
import { PromptTemplate } from 'langchain/prompts'

const llm = new OpenAI({
	// code ...
})

const chain = loadSummarizationChain(llm, { type: 'map_reduce' })
const summarize = await chain.call({
    input_documents: docs,
})
console.log(summarize)
{
  text: "Elena, Carlos, Ana, and Juan discussed their ongoing project, focusing on the completion of the search functionality. Carlos agreed to review design changes with Ana, while Juan expressed concerns about integrating a third-party API. A meeting was scheduled for 10:30 to discuss this. Elena reminded the team about a project update meeting at 3 PM, and everyone confirmed their readiness to provide updates. The team agreed to focus on the search functionality, design changes, and API integration issues.",
  __run: undefined
}
Like 鉂わ笍 si lo le铆ste como chilango la cadena\_que\_resume\_con\_salng\_mx XD
Para los que quieren probar todo lo de la clase con PDFs distintos, pueden usar el siguiente sitio para que carguen los PDF de manera temporal y solo cambien la url <https://tmpfiles.org/>
El `vectorstore` que se crea en esta clase no se uso para ninguno de los ejemplos...
Buenas, no me parece tan grave que el codigo no este actualizado, en la vida profesional nos toca leer documentacion, es muy sencillo entrar a la documentacion y readaptar el codigo, no hay que ser genio para ello. Animos!
Al final para que se usa estas l铆neas de c贸digo en el contexto de esta clase? porque yo veo que se usa es la variable "data" ```js embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents(data, embeddings) ```embeddings = OpenAIEmbeddings()vectorstore = Chroma.from\_documents(data, embeddings)
La verdad muy mal que tengan c贸digo que NO es funcional, uno pierde m谩s tiempo tratanto de arreglar cosas que realmente aprendiendo. Les recomiendo pagar la suscripci贸n a Medium, que estar perdiendo el tiempo aqu铆.
![](https://static.platzi.com/media/user_upload/image-4764ec96-a0ef-4e87-a328-e2efe0f3fbdb.jpg)

Aqune algo complejo, veo mucho potencial en lo que podemos lograr con LangChain 馃鉀