Skip to content

Commit dfb9266

Browse files
authored
Update LangChain imports to use langchain-elasticsearch (#196)
* Update LangChain imports to use `langchain-elasticsearch` the new partner integration package: https://pypi.org/project/langchain-elasticsearch/ * update chatbot-rag-app
1 parent 0eb5301 commit dfb9266

18 files changed

+62
-49
lines changed

example-apps/chatbot-rag-app/api/chat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from langchain.vectorstores import ElasticsearchStore
1+
from langchain_elasticsearch import ElasticsearchStore
22
from llm_integrations import get_llm
33
from elasticsearch_client import (
44
elasticsearch_client,

example-apps/chatbot-rag-app/api/elasticsearch_client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from elasticsearch import Elasticsearch
2-
from langchain.memory import ElasticsearchChatMessageHistory
2+
from langchain_elasticsearch import ElasticsearchChatMessageHistory
33

44
import os
55

example-apps/chatbot-rag-app/data/index_data.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from elasticsearch import Elasticsearch, NotFoundError
2-
from langchain.vectorstores import ElasticsearchStore
2+
from langchain_elasticsearch import ElasticsearchStore
33
from langchain.docstore.document import Document
44
from langchain.text_splitter import RecursiveCharacterTextSplitter
55
from dotenv import load_dotenv

example-apps/chatbot-rag-app/requirements.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ pip-tools
44
# core dependencies
55
elasticsearch
66
langchain
7+
langchain-elasticsearch
78
tiktoken
89
flask
910
flask-cors

example-apps/chatbot-rag-app/requirements.txt

Lines changed: 32 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ aiosignal==1.3.1
1313
annotated-types==0.5.0
1414
# via pydantic
1515
anyio==3.7.1
16-
# via langchain
16+
# via
17+
# langchain
18+
# langchain-core
1719
async-timeout==4.0.3
1820
# via aiohttp
1921
attrs==23.1.0
@@ -27,9 +29,7 @@ botocore==1.31.61
2729
# boto3
2830
# s3transfer
2931
build==1.0.3
30-
# via
31-
# -r requirements.in
32-
# pip-tools
32+
# via pip-tools
3333
cachetools==5.3.1
3434
# via google-auth
3535
certifi==2023.7.22
@@ -48,8 +48,10 @@ dataclasses-json==0.5.14
4848
# via langchain
4949
elastic-transport==8.4.0
5050
# via elasticsearch
51-
elasticsearch==8.9.0
52-
# via -r requirements.in
51+
elasticsearch==8.12.1
52+
# via
53+
# -r requirements.in
54+
# langchain-elasticsearch
5355
exceptiongroup==1.2.0
5456
# via -r requirements.in
5557
flask==2.3.3
@@ -126,13 +128,21 @@ jmespath==1.0.1
126128
# boto3
127129
# botocore
128130
jsonpatch==1.33
129-
# via langchain
131+
# via
132+
# langchain
133+
# langchain-core
130134
jsonpointer==2.4
131135
# via jsonpatch
132136
langchain==0.0.333
133137
# via -r requirements.in
134-
langsmith==0.0.65
135-
# via langchain
138+
langchain-core==0.1.23
139+
# via langchain-elasticsearch
140+
langchain-elasticsearch==0.1.0
141+
# via -r requirements.in
142+
langsmith==0.0.87
143+
# via
144+
# langchain
145+
# langchain-core
136146
markupsafe==2.1.3
137147
# via
138148
# jinja2
@@ -150,15 +160,17 @@ numexpr==2.8.5
150160
numpy==1.25.2
151161
# via
152162
# langchain
163+
# langchain-elasticsearch
153164
# numexpr
154165
# shapely
155166
openai==0.27.9
156167
# via -r requirements.in
157-
packaging==23.1
168+
packaging==23.2
158169
# via
159170
# build
160171
# google-cloud-aiplatform
161172
# google-cloud-bigquery
173+
# langchain-core
162174
# marshmallow
163175
pip-tools==7.3.0
164176
# via -r requirements.in
@@ -186,21 +198,22 @@ pyasn1-modules==0.3.0
186198
pydantic==2.3.0
187199
# via
188200
# langchain
201+
# langchain-core
189202
# langsmith
190203
pydantic-core==2.6.3
191204
# via pydantic
192205
pyproject-hooks==1.0.0
193-
# via
194-
# -r requirements.in
195-
# build
206+
# via build
196207
python-dateutil==2.8.2
197208
# via
198209
# botocore
199210
# google-cloud-bigquery
200211
python-dotenv==1.0.0
201212
# via -r requirements.in
202213
pyyaml==6.0.1
203-
# via langchain
214+
# via
215+
# langchain
216+
# langchain-core
204217
regex==2023.10.3
205218
# via tiktoken
206219
requests==2.31.0
@@ -209,6 +222,7 @@ requests==2.31.0
209222
# google-cloud-bigquery
210223
# google-cloud-storage
211224
# langchain
225+
# langchain-core
212226
# langsmith
213227
# openai
214228
# tiktoken
@@ -225,7 +239,9 @@ sniffio==1.3.0
225239
sqlalchemy==2.0.20
226240
# via langchain
227241
tenacity==8.2.3
228-
# via langchain
242+
# via
243+
# langchain
244+
# langchain-core
229245
tiktoken==0.5.1
230246
# via -r requirements.in
231247
tqdm==4.66.1
@@ -250,9 +266,7 @@ wheel==0.41.3
250266
yarl==1.9.2
251267
# via aiohttp
252268
zipp==3.17.0
253-
# via
254-
# -r requirements.in
255-
# importlib-metadata
269+
# via importlib-metadata
256270

257271
# The following packages are considered to be unsafe in a requirements file:
258272
# pip

notebooks/document-chunking/with-langchain-splitters.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"metadata": {},
3232
"outputs": [],
3333
"source": [
34-
"!python3 -m pip install -qU langchain elasticsearch eland jq"
34+
"!python3 -m pip install -qU langchain langchain-elasticsearch elasticsearch eland jq"
3535
]
3636
},
3737
{
@@ -548,7 +548,7 @@
548548
}
549549
],
550550
"source": [
551-
"from langchain.vectorstores.elasticsearch import (\n",
551+
"from langchain_elasticsearch import (\n",
552552
" ElasticsearchStore,\n",
553553
" ApproxRetrievalStrategy,\n",
554554
")\n",

notebooks/generative-ai/chatbot.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@
7474
}
7575
],
7676
"source": [
77-
"%pip install -qU langchain openai elasticsearch tiktoken"
77+
"%pip install -qU langchain openai langchain-elasticsearch tiktoken"
7878
]
7979
},
8080
{
@@ -195,7 +195,7 @@
195195
"metadata": {},
196196
"outputs": [],
197197
"source": [
198-
"from langchain.vectorstores import ElasticsearchStore\n",
198+
"from langchain_elasticsearch import ElasticsearchStore\n",
199199
"from langchain.embeddings import OpenAIEmbeddings\n",
200200
"\n",
201201
"embeddings = OpenAIEmbeddings(openai_api_key=OPENAI_API_KEY)\n",

notebooks/generative-ai/question-answering.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
}
5050
],
5151
"source": [
52-
"!python3 -m pip install -qU langchain openai==0.28.1 elasticsearch tiktoken jq"
52+
"!python3 -m pip install -qU langchain langchain-elasticsearch openai==0.28.1 tiktoken jq"
5353
]
5454
},
5555
{
@@ -77,7 +77,7 @@
7777
},
7878
"outputs": [],
7979
"source": [
80-
"from langchain.vectorstores import ElasticsearchStore\n",
80+
"from langchain_elasticsearch import ElasticsearchStore\n",
8181
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
8282
"from getpass import getpass\n",
8383
"\n",

notebooks/integrations/amazon-bedrock/langchain-qa-example.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@
3333
"outputs": [],
3434
"source": [
3535
"# install packages\n",
36-
"!python3 -m pip install -qU langchain elasticsearch boto3\n",
36+
"!python3 -m pip install -qU langchain langchain-elasticsearch boto3\n",
3737
"\n",
3838
"# import modules\n",
3939
"from getpass import getpass\n",
4040
"from urllib.request import urlopen\n",
41-
"from langchain.vectorstores import ElasticsearchStore\n",
41+
"from langchain_elasticsearch import ElasticsearchStore\n",
4242
"from langchain.embeddings.bedrock import BedrockEmbeddings\n",
4343
"from langchain.llms import Bedrock\n",
4444
"from langchain.chains import RetrievalQA\n",

notebooks/integrations/gemini/qa-langchain-gemini-elasticsearch.ipynb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"metadata": {},
3838
"outputs": [],
3939
"source": [
40-
"pip install -q -U google-generativeai elasticsearch langchain langchain_google_genai"
40+
"pip install -q -U google-generativeai langchain-elasticsearch langchain langchain_google_genai"
4141
]
4242
},
4343
{
@@ -60,8 +60,7 @@
6060
"from getpass import getpass\n",
6161
"from urllib.request import urlopen\n",
6262
"\n",
63-
"from elasticsearch import Elasticsearch, helpers\n",
64-
"from langchain.vectorstores import ElasticsearchStore\n",
63+
"from langchain_elasticsearch import ElasticsearchStore\n",
6564
"from langchain.text_splitter import CharacterTextSplitter\n",
6665
"from langchain_google_genai import GoogleGenerativeAIEmbeddings\n",
6766
"from langchain_google_genai import ChatGoogleGenerativeAI\n",

notebooks/langchain/langchain-using-own-model.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@
3030
"metadata": {},
3131
"outputs": [],
3232
"source": [
33-
"!python3 -m pip install -qU langchain elasticsearch tiktoken sentence-transformers eland transformers\n",
33+
"!python3 -m pip install -qU langchain langchain-elasticsearch tiktoken sentence-transformers eland transformers\n",
3434
"\n",
3535
"from getpass import getpass\n",
36-
"from langchain.vectorstores import ElasticsearchStore\n",
36+
"from langchain_elasticsearch import ElasticsearchStore\n",
3737
"from urllib.request import urlopen\n",
3838
"from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
3939
"import json"

notebooks/langchain/langchain-vector-store-using-elser.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,11 @@
3333
"outputs": [],
3434
"source": [
3535
"# install packages\n",
36-
"!python3 -m pip install -qU langchain openai elasticsearch tiktoken\n",
36+
"!python3 -m pip install -qU langchain langchain-elasticsearch openai tiktoken\n",
3737
"\n",
3838
"# import modules\n",
3939
"from getpass import getpass\n",
40-
"from langchain.vectorstores import ElasticsearchStore\n",
40+
"from langchain_elasticsearch import ElasticsearchStore\n",
4141
"from urllib.request import urlopen\n",
4242
"from langchain.text_splitter import RecursiveCharacterTextSplitter\n",
4343
"import json"

notebooks/langchain/langchain-vector-store.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
"outputs": [],
2626
"source": [
2727
"# install packages\n",
28-
"!python3 -m pip install -qU langchain openai elasticsearch tiktoken\n",
28+
"!python3 -m pip install -qU langchain langchain-elasticsearch openai tiktoken\n",
2929
"\n",
3030
"# import modules\n",
3131
"from getpass import getpass\n",
32-
"from langchain.vectorstores import ElasticsearchStore\n",
32+
"from langchain_elasticsearch import ElasticsearchStore\n",
3333
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
3434
"from urllib.request import urlopen\n",
3535
"from langchain.text_splitter import RecursiveCharacterTextSplitter\n",

notebooks/langchain/multi-query-retriever-examples/chatbot-with-multi-query-retriever.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@
3737
}
3838
],
3939
"source": [
40-
"!python3 -m pip install -qU jq lark elasticsearch langchain_openai tiktoken\n",
40+
"!python3 -m pip install -qU jq lark langchain langchain-elasticsearch langchain_openai tiktoken\n",
4141
"\n",
4242
"from langchain_openai.embeddings import OpenAIEmbeddings\n",
43-
"from langchain.vectorstores import ElasticsearchStore\n",
43+
"from langchain_elasticsearch import ElasticsearchStore\n",
4444
"from langchain_openai.llms import OpenAI\n",
4545
"from langchain.retrievers.multi_query import MultiQueryRetriever\n",
4646
"from getpass import getpass"

notebooks/langchain/multi-query-retriever-examples/langchain-multi-query-retriever.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@
3838
}
3939
],
4040
"source": [
41-
"!python3 -m pip install -qU lark elasticsearch langchain_openai tiktoken\n",
41+
"!python3 -m pip install -qU lark langchain langchain-elasticsearh langchain_openai tiktoken\n",
4242
"\n",
4343
"from langchain.schema import Document\n",
4444
"from langchain_openai.embeddings import OpenAIEmbeddings\n",
45-
"from langchain.vectorstores import ElasticsearchStore\n",
45+
"from langchain_elasticsearch import ElasticsearchStore\n",
4646
"from langchain_openai.chat_models import ChatOpenAI\n",
4747
"from langchain.retrievers.multi_query import MultiQueryRetriever\n",
4848
"from getpass import getpass"

notebooks/langchain/self-query-retriever-examples/chatbot-example.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@
3838
}
3939
],
4040
"source": [
41-
"!python3 -m pip install -qU lark elasticsearch langchain openai\n",
41+
"!python3 -m pip install -qU lark elasticsearch langchain langchain-elasticsearch openai\n",
4242
"\n",
4343
"from langchain.schema import Document\n",
4444
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
45-
"from langchain.vectorstores import ElasticsearchStore\n",
45+
"from langchain_elasticsearch import ElasticsearchStore\n",
4646
"from langchain.llms import OpenAI\n",
4747
"from langchain.retrievers.self_query.base import SelfQueryRetriever\n",
4848
"from langchain.chains.query_constructor.base import AttributeInfo\n",

notebooks/langchain/self-query-retriever-examples/chatbot-with-bm25-only-example.ipynb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
}
4040
],
4141
"source": [
42-
"!python3 -m pip install -qU lark elasticsearch langchain openai"
42+
"!python3 -m pip install -qU lark elasticsearch langchain langchain-elasticsearch openai"
4343
]
4444
},
4545
{
@@ -209,12 +209,11 @@
209209
"metadata": {},
210210
"outputs": [],
211211
"source": [
212-
"from langchain.vectorstores.elasticsearch import ApproxRetrievalStrategy\n",
213212
"from typing import List, Union\n",
214213
"from langchain.retrievers.self_query.base import SelfQueryRetriever\n",
215214
"from langchain.chains.query_constructor.base import AttributeInfo\n",
216215
"from langchain.llms import OpenAI\n",
217-
"from langchain.vectorstores.elasticsearch import ElasticsearchStore\n",
216+
"from langchain_elasticsearch import ApproxRetrievalStrategy, ElasticsearchStore\n",
218217
"\n",
219218
"# Add details about metadata fields\n",
220219
"metadata_field_info = [\n",

notebooks/langchain/self-query-retriever-examples/langchain-self-query-retriever.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@
3838
}
3939
],
4040
"source": [
41-
"!python3 -m pip install -qU lark elasticsearch langchain openai\n",
41+
"!python3 -m pip install -qU lark langchain langchain-elasticsearch openai\n",
4242
"\n",
4343
"from langchain.schema import Document\n",
4444
"from langchain.embeddings.openai import OpenAIEmbeddings\n",
45-
"from langchain.vectorstores import ElasticsearchStore\n",
45+
"from langchain_elasticsearch import ElasticsearchStore\n",
4646
"from langchain.llms import OpenAI\n",
4747
"from langchain.retrievers.self_query.base import SelfQueryRetriever\n",
4848
"from langchain.chains.query_constructor.base import AttributeInfo\n",

0 commit comments

Comments
 (0)