IngestDocument
This plugin is currently in beta. While it is considered safe for use, please be aware that its API could change in ways that are not compatible with earlier versions in future releases, or it might become unsupported.
Ingest documents into an embedding store.
Only text documents (TXT, HTML, Markdown) are supported for now.
type: "io.kestra.plugin.langchain4j.rag.IngestDocument"
Ingest documents into a KV embedding store.\nWARNING: the KV embedding store is for quick prototyping only, as it stores the embedding vectors in a K/V Store and load them all in memory.
id: document-ingestion
namespace: company.team
tasks:
- id: ingest
type: io.kestra.plugin.langchain4j.rag.IngestDocument
provider:
type: io.kestra.plugin.langchain4j.provider.GoogleGemini
modelName: gemini-embedding-exp-03-07
apiKey: "{{ secret('GEMINI_API_KEY') }}"
embeddings:
type: io.kestra.plugin.langchain4j.embeddings.KestraKVStore
drop: true
fromExternalURLs:
- https://raw.githubusercontent.com/kestra-io/docs/refs/heads/main/content/blogs/release-0-22.md
NO
Embedding Store Provider
NO
Language Model Provider
This provider must be configured with an embedding model.
NO
The document splitter
NO
false
Whether to drop the store before ingestion. Useful for testing purpose.
YES
A list of document URLs from external sources
YES
A list of internal storage URIs representing documents
YES
A path inside the task working directory that contains documents to ingest
Each document inside the directory will be ingested into the embedding store. This is recursive and protected from being path traversal (CWE-22).
YES
Additional metadata that will be added to all ingested documents
Additional outputs from the embedding store.
The number of ingested documents
The input token count
The output token count
The total token count
YES
Endpoint URL
YES
Project location
YES
Model name
YES
Project ID
NO
YES
API endpoint
The Azure OpenAI endpoint in the format: https://{resource}.openai.azure.com/
YES
Model name
NO
YES
API Key
YES
Client ID
YES
Client secret
YES
API version
YES
Tenant ID
YES
API Key
YES
Model name
NO
YES
https://api.deepseek.com/v1
API base URL
YES
1
List of HTTP ElasticSearch servers.
Must be an URI like https://elasticsearch.com: 9200
with scheme and port.
NO
Basic auth configuration.
YES
List of HTTP headers to be send on every request.
Must be a string with key value separated with :
, ex: Authorization: Token XYZ
.
YES
Sets the path's prefix for every request used by the HTTP client.
For example, if this is set to /my/path
, then any client request will become /my/path/
+ endpoint.
In essence, every request's endpoint is prefixed by this pathPrefix
.
The path prefix is useful for when ElasticSearch is behind a proxy that provides a base path or a proxy that requires all paths to start with '/'; it is not intended for other purposes and it should not be supplied in other scenarios.
NO
Whether the REST client should return any response containing at least one warning header as a failure.
NO
Trust all SSL CA certificates.
Use this if the server is using a self signed SSL certificate.
YES
API Key
YES
Model name
NO
YES
API Key
YES
Model name
NO
YES
API base URL
YES
Model endpoint
YES
Model name
NO
YES
Basic auth password.
YES
Basic auth username.
NO
YES
{{flow.id}}-embedding-store
The name of the K/V entry to use
YES
API Key
YES
Model name
NO
YES
AWS Access Key ID
YES
Model name
YES
AWS Secret Access Key
NO
YES
COHERE
COHERE
TITAN
Amazon Bedrock Embedding Model Type
YES
The content of the document
YES
The metadata of the document
YES
The database name
YES
The database server host
YES
The database password
NO
The database server port
YES
The table to store embeddings in
NO
YES
The database user
NO
false
Whether to use use an IVFFlat index
An IVFFlat index divides vectors into lists, and then searches a subset of those lists closest to the query vector. It has faster build times and uses less memory than HNSW but has lower query performance (in terms of speed-recall tradeoff).
YES
API Key
YES
Model name
NO
YES
API base URL
NO
The maximum size of the overlap, defined in characters. Only full sentences are considered for the overlap.
NO
The maximum size of the segment, defined in characters.
NO
RECURSIVE
RECURSIVE
PARAGRAPH
LINE
SENTENCE
WORD
Title the type of the DocumentSplitter
We recommend using a RECURSIVE DocumentSplitter for generic text. It tries to split the document into paragraphs first and fits as many paragraphs into a single TextSegment as possible. If some paragraphs are too long, they are recursively split into lines, then sentences, then words, and then characters until they fit into a segment.
NO
YES
The name of the index to store embeddings
NO