WEBVTT

00:00.660 --> 00:02.880
-: Hey there, Eden here, and today I want

00:02.880 --> 00:05.460
to talk to you about the difference and similarities

00:05.460 --> 00:08.640
between LangChain and LlamaIndex.

00:08.640 --> 00:13.170
I'll start by saying that both frameworks are very similar,

00:13.170 --> 00:15.840
and if you want to develop an LLM application,

00:15.840 --> 00:17.490
you can do it with LangChain,

00:17.490 --> 00:20.460
and you can probably do it with LlamaIndex as well.

00:20.460 --> 00:23.670
Both of these frameworks offers us utilities and tools

00:23.670 --> 00:25.920
in order to build our LLM application.

00:25.920 --> 00:27.780
LangChain is more popular.

00:27.780 --> 00:30.330
It has more adoptions among developers.

00:30.330 --> 00:32.220
In LlamaIndex, there is adoption as well,

00:32.220 --> 00:33.600
but not as much as LangChain.

00:33.600 --> 00:37.350
I would say that LlamaIndex is more focused on data,

00:37.350 --> 00:40.110
retrieval augmentation, integrating external data

00:40.110 --> 00:44.310
into LLM applications, and it's more data-oriented,

00:44.310 --> 00:46.650
while LangChain does offer all

00:46.650 --> 00:48.630
of those feature I just mentioned.

00:48.630 --> 00:50.480
And the support for retrieval augmentation

00:50.480 --> 00:52.860
in LangChain has gotten a lot better,

00:52.860 --> 00:55.260
where they introduce the abstraction

00:55.260 --> 00:56.970
of LangChain Expression Language,

00:56.970 --> 00:59.070
which offers a lot of flexibility

00:59.070 --> 01:01.470
when building retrieval augmentation systems.

01:01.470 --> 01:04.680
In my opinion, LLM applications are usually divided

01:04.680 --> 01:07.530
into retrieval augmentation generation applications,

01:07.530 --> 01:09.240
where you chat with your data,

01:09.240 --> 01:12.990
connect to some external data, and agentic applications,

01:12.990 --> 01:15.600
where those are applications where we leverage

01:15.600 --> 01:18.960
the reasoning power of an LLM to choose a correct set

01:18.960 --> 01:21.720
of tools to use and to invoke them,

01:21.720 --> 01:24.420
and, by that, run non-deterministic actions.

01:24.420 --> 01:27.860
And while LlamaIndex does have support for agents,

01:27.860 --> 01:29.790
it has an implementation, for example,

01:29.790 --> 01:32.460
for the React algorithm,

01:32.460 --> 01:34.950
most of their agent offering is revolving

01:34.950 --> 01:38.250
around retrieval and search, and, in my opinion,

01:38.250 --> 01:41.220
the LangChain offering regarding agents is

01:41.220 --> 01:44.460
much more robust and much more comprehensive.

01:44.460 --> 01:45.780
So in LangChain,

01:45.780 --> 01:48.120
they made a lot of changes in their framework

01:48.120 --> 01:51.600
where we have now with the LangChain Expression Language

01:51.600 --> 01:55.260
a lot of flexibility of how to run our agents

01:55.260 --> 01:57.840
and how to determine which tools to select.

01:57.840 --> 02:00.960
And I do see in LangChain a lot more research

02:00.960 --> 02:04.050
and a lot more activity in that area.

02:04.050 --> 02:06.030
It seems that they are much more up to date

02:06.030 --> 02:07.710
with current research when it comes

02:07.710 --> 02:10.068
to developing LLM agents.

02:10.068 --> 02:10.901
(screen whizzing)

02:10.901 --> 02:14.580
To summarize this video, both frameworks are very similar.

02:14.580 --> 02:17.370
However, in my opinion, I would go with LangChain

02:17.370 --> 02:19.590
when it comes to develop an LLM application.

02:19.590 --> 02:22.560
Even if my application is very focused on data,

02:22.560 --> 02:25.437
and it has a lot of retrieval augmentation

02:25.437 --> 02:28.350
and a lot of usage of external data sources,

02:28.350 --> 02:30.570
I would still go with LangChain because,

02:30.570 --> 02:32.100
I would still go with LangChain

02:32.100 --> 02:35.310
because it will answer those needs as well.

02:35.310 --> 02:37.800
If I were to go to build and agentic application,

02:37.800 --> 02:39.390
of course, I would go to LangChain

02:39.390 --> 02:42.630
because it has a much more robust ecosystem

02:42.630 --> 02:45.243
for building generative AI agents.
