mirror of
https://github.com/hwchase17/langchain
synced 2024-11-10 01:10:59 +00:00
81e9ab6e3a
Update Elasticsearch README with information on how to start a deployment. Also make some cosmetic changes to the [Elasticsearch docs](https://python.langchain.com/docs/integrations/vectorstores/elasticsearch). Follow up on https://github.com/langchain-ai/langchain/pull/17467
82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# langchain-elasticsearch
|
|
|
|
This package contains the LangChain integration with Elasticsearch.
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
pip install -U langchain-elasticsearch
|
|
```
|
|
|
|
## Elasticsearch setup
|
|
|
|
### Elastic Cloud
|
|
|
|
You need a running Elasticsearch deployment. The easiest way to start one is through [Elastic Cloud](https://cloud.elastic.co/).
|
|
You can sign up for a [free trial](https://www.elastic.co/cloud/cloud-trial-overview).
|
|
|
|
1. [Create a deployment](https://www.elastic.co/guide/en/cloud/current/ec-create-deployment.html)
|
|
2. Get your Cloud ID:
|
|
1. In the [Elastic Cloud console](https://cloud.elastic.co), click "Manage" next to your deployment
|
|
2. Copy the Cloud ID and paste it into the `es_cloud_id` parameter below
|
|
3. Create an API key:
|
|
1. In the [Elastic Cloud console](https://cloud.elastic.co), click "Open" next to your deployment
|
|
2. In the left-hand side menu, go to "Stack Management", then to "API Keys"
|
|
3. Click "Create API key"
|
|
4. Enter a name for the API key and click "Create"
|
|
5. Copy the API key and paste it into the `es_api_key` parameter below
|
|
|
|
### Elastic Cloud
|
|
|
|
Alternatively, you can run Elasticsearch via Docker as described in the [docs](https://python.langchain.com/docs/integrations/vectorstores/elasticsearch).
|
|
|
|
## Usage
|
|
|
|
### ElasticsearchStore
|
|
|
|
The `ElasticsearchStore` class exposes Elasticsearch as a vector store.
|
|
|
|
```python
|
|
from langchain_elasticsearch import ElasticsearchStore
|
|
|
|
embeddings = ... # use a LangChain Embeddings class or ElasticsearchEmbeddings
|
|
|
|
vectorstore = ElasticsearchStore(
|
|
es_cloud_id="your-cloud-id",
|
|
es_api_key="your-api-key",
|
|
index_name="your-index-name",
|
|
embeddings=embeddings,
|
|
)
|
|
```
|
|
|
|
### ElasticsearchEmbeddings
|
|
|
|
The `ElasticsearchEmbeddings` class provides an interface to generate embeddings using a model
|
|
deployed in an Elasticsearch cluster.
|
|
|
|
```python
|
|
from langchain_elasticsearch import ElasticsearchEmbeddings
|
|
|
|
embeddings = ElasticsearchEmbeddings.from_credentials(
|
|
model_id="your-model-id",
|
|
input_field="your-input-field",
|
|
es_cloud_id="your-cloud-id",
|
|
es_api_key="your-api-key",
|
|
)
|
|
```
|
|
|
|
### ElasticsearchChatMessageHistory
|
|
|
|
The `ElasticsearchChatMessageHistory` class stores chat histories in Elasticsearch.
|
|
|
|
```python
|
|
from langchain_elasticsearch import ElasticsearchChatMessageHistory
|
|
|
|
chat_history = ElasticsearchChatMessageHistory(
|
|
index="your-index-name",
|
|
session_id="your-session-id",
|
|
es_cloud_id="your-cloud-id",
|
|
es_api_key="your-api-key",
|
|
)
|
|
```
|