yaml
type: "io.kestra.plugin.ai.rag.chatcompletion"
Examples
yaml
id: rag
namespace: company.ai
tasks:
- id: ingest
type: io.kestra.plugin.ai.rag.IngestDocument
provider:
type: io.kestra.plugin.ai.provider.GoogleGemini
modelName: gemini-embedding-exp-03-07
apiKey: "{{ kv('GEMINI_API_KEY') }}"
embeddings:
type: io.kestra.plugin.ai.embeddings.KestraKVStore
drop: true
fromExternalURLs:
- https://raw.githubusercontent.com/kestra-io/docs/refs/heads/main/content/blogs/release-0-24.md
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
tasks:
- id: chat_without_rag
type: io.kestra.plugin.ai.completion.ChatCompletion
provider:
type: io.kestra.plugin.ai.provider.GoogleGemini
messages:
- type: USER
content: Which features were released in Kestra 0.24?
- id: chat_with_rag
type: io.kestra.plugin.ai.rag.ChatCompletion
chatProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
embeddingProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
modelName: gemini-embedding-exp-03-07
embeddings:
type: io.kestra.plugin.ai.embeddings.KestraKVStore
systemMessage: You are a helpful assistant that can answer questions about Kestra.
prompt: Which features were released in Kestra 0.24?
pluginDefaults:
- type: io.kestra.plugin.ai.provider.GoogleGemini
values:
apiKey: "{{ kv('GEMINI_API_KEY') }}"
modelName: gemini-2.5-flash
yaml
id: rag_with_websearch_content_retriever
namespace: company.ai
tasks:
- id: chat_with_rag_and_websearch_content_retriever
type: io.kestra.plugin.ai.rag.ChatCompletion
chatProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
modelName: gemini-2.5-flash
apiKey: "{{ kv('GEMINI_API_KEY') }}"
contentRetrievers:
- type: io.kestra.plugin.ai.retriever.TavilyWebSearch
apiKey: "{{ kv('TAVILY_API_KEY') }}"
systemMessage: You are a helpful assistant that can answer questions about Kestra.
prompt: What is the latest release of Kestra?
yaml
id: chat_with_memory
namespace: company.ai
inputs:
- id: first
type: STRING
defaults: Hello, my name is John and I'm from Paris
- id: second
type: STRING
defaults: What's my name and where do I live?
tasks:
- id: first
type: io.kestra.plugin.ai.rag.ChatCompletion
chatProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
embeddingProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
modelName: gemini-embedding-exp-03-07
embeddings:
type: io.kestra.plugin.ai.embeddings.KestraKVStore
memory:
type: io.kestra.plugin.ai.memory.KestraKVStore
ttl: PT1M
systemMessage: You are a helpful assistant, answer concisely
prompt: "{{inputs.first}}"
- id: second
type: io.kestra.plugin.ai.rag.ChatCompletion
chatProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
embeddingProvider:
type: io.kestra.plugin.ai.provider.GoogleGemini
modelName: gemini-embedding-exp-03-07
embeddings:
type: io.kestra.plugin.ai.embeddings.KestraKVStore
memory:
type: io.kestra.plugin.ai.memory.KestraKVStore
systemMessage: You are a helpful assistant, answer concisely
prompt: "{{inputs.second}}"
pluginDefaults:
- type: io.kestra.plugin.ai.provider.GoogleGemini
values:
apiKey: "{{ kv('GEMINI_API_KEY') }}"
modelName: gemini-2.5-flash
yaml
id: chat_with_structured_output
namespace: company.ai
tasks:
- id: categorize_releases
type: io.kestra.plugin.ai.rag.ChatCompletion
chatProvider:
type: io.kestra.plugin.ai.provider.MistralAI
apiKey: "{{ kv('MISTRAL_API_KEY') }}"
modelName: open-mistral-7b
contentRetrievers:
- type: io.kestra.plugin.ai.retriever.TavilyWebSearch
apiKey: "{{ kv('TAVILY_API_KEY') }}"
maxResults: 8
chatConfiguration:
responseFormat:
type: JSON
jsonSchema:
type: object
required: ["releases"]
properties:
releases:
type: array
minItems: 1
items:
type: object
additionalProperties: false
required: ["version", "date", "semver"]
properties:
version:
type: string
description: "Release tag, e.g., 0.24.0"
date:
type: string
description: "Release date"
semver:
type: string
enum: ["MINOR", "PATCH"]
summary:
type: string
description: "Short plain-text summary (optional)"
systemMessage: |
You are a release analyst. Use the Tavily web retriever to find recent Kestra releases.
Determine each release's SemVer category:
- MINOR: new features, no major breaking changes (y in x.Y.z)
- PATCH: bug fixes/patches only (z in x.y.Z)
Return ONLY valid JSON matching the schema. No prose, no extra keys.
prompt: |
Find most recent Kestra releases (within the last ~6 months).
Output their version, release date, semver category, and a one-line summary.
Properties
chatProvider *RequiredNon-dynamicAmazonBedrockAnthropicAzureOpenAIDeepSeekGoogleGeminiGoogleVertexAIMistralAIOllamaOpenAI
prompt *Requiredstring
chatConfiguration Non-dynamicChatConfiguration
Default
{}
contentRetrieverConfiguration Non-dynamicChatCompletion-ContentRetrieverConfiguration
Default
{
"maxResults": 3,
"minScore": 0
}
contentRetrievers GoogleCustomWebSearchTavilyWebSearch
embeddingProvider Non-dynamicAmazonBedrockAnthropicAzureOpenAIDeepSeekGoogleGeminiGoogleVertexAIMistralAIOllamaOpenAI
embeddings Non-dynamicChromaElasticsearchKestraKVStoreMilvusMongoDBAtlasPGVectorPineconeQdrantRedisWeaviate
memory Non-dynamicKestraKVStoreRedis
systemMessage string
Outputs
finishReason string
Possible Values
STOP
LENGTH
TOOL_EXECUTION
CONTENT_FILTER
OTHER
jsonOutput object
outputFiles object
SubType string
requestDuration integer
textOutput string
tokenUsage TokenUsage
Definitions
PGVector Embedding Store
database *Requiredstring
host *Requiredstring
password *Requiredstring
port *Requiredintegerstring
table *Requiredstring
type *Requiredobject
user *Requiredstring
useIndex booleanstring
Default
false
MongoDB Atlas Embedding Store
collectionName *Requiredstring
host *Requiredstring
indexName *Requiredstring
scheme *Requiredstring
type *Requiredobject
createIndex booleanstring
database string
metadataFieldNames array
SubType string
options object
password string
username string
Mistral AI Model Provider
apiKey *Requiredstring
modelName *Requiredstring
type *Requiredobject
baseUrl string
Model Context Protocol (MCP) Stdio client tool
command *Requiredarray
SubType string
type *Requiredobject
env object
SubType string
logEvents booleanstring
Default
false
Chroma Embedding Store
baseUrl *Requiredstring
collectionName *Requiredstring
type *Requiredobject
Redis Embedding Store
host *Requiredstring
port *Requiredintegerstring
type *Requiredobject
indexName string
Default
embedding-index
Call a Kestra flow as a tool
type *Requiredobject
description string
flowId string
inheritLabels booleanstring
Default
false
inputs object
labels arrayobject
namespace string
revision integerstring
scheduleDate string
Format
date-time
io.kestra.plugin.ai.embeddings.Elasticsearch-ElasticsearchConnection-BasicAuth
password string
username string
Model Context Protocol (MCP) SSE client tool
type *Requiredobject
url *Requiredstring
headers object
SubType string
logRequests booleanstring
Default
false
logResponses booleanstring
Default
false
timeout string
Format
duration
io.kestra.plugin.ai.domain.AIOutput-ToolExecution
requestArguments object
requestId string
requestName string
result string
Deepseek Model Provider
apiKey *Requiredstring
modelName *Requiredstring
type *Requiredobject
baseUrl string
Default
https://api.deepseek.com/v1
Pinecone Embedding Store
apiKey *Requiredstring
cloud *Requiredstring
index *Requiredstring
region *Requiredstring
type *Requiredobject
namespace string
io.kestra.plugin.ai.domain.AIOutput-AIResponse
completion string
finishReason string
Possible Values
STOP
LENGTH
TOOL_EXECUTION
CONTENT_FILTER
OTHER
id string
requestDuration integer
tokenUsage TokenUsage
io.kestra.plugin.ai.domain.ChatConfiguration-ResponseFormat
jsonSchema object
jsonSchemaDescription string
type string
Default
TEXT
Possible Values
TEXT
JSON
Model Context Protocol (MCP) Docker client tool
image *Requiredstring
type *Requiredobject
apiVersion string
binds array
SubType string
command array
SubType string
dockerCertPath string
dockerConfig string
dockerContext string
dockerHost string
dockerTlsVerify booleanstring
env object
SubType string
logEvents booleanstring
Default
false
registryEmail string
registryPassword string
registryUrl string
registryUsername string
Google Custom Search web tool
apiKey *Requiredstring
csi *Requiredstring
type *Requiredobject
Ollama Model Provider
endpoint *Requiredstring
modelName *Requiredstring
type *Requiredobject
Code execution tool using Judge0
apiKey *Requiredstring
type *Requiredobject
OpenAI Model Provider
apiKey *Requiredstring
modelName *Requiredstring
type *Requiredobject
baseUrl string
Web search content retriever for Google Custom Search
apiKey *Requiredstring
csi *Requiredstring
type *Requiredobject
maxResults integerstring
Default
3
io.kestra.plugin.ai.domain.ChatConfiguration
logRequests booleanstring
logResponses booleanstring
responseFormat ChatConfiguration-ResponseFormat
seed integerstring
temperature numberstring
topK integerstring
topP numberstring
io.kestra.plugin.ai.domain.TokenUsage
inputTokenCount integer
outputTokenCount integer
totalTokenCount integer
Elasticsearch Embedding Store
connection *RequiredElasticsearch-ElasticsearchConnection
indexName *Requiredstring
type *Requiredobject
io.kestra.plugin.ai.rag.ChatCompletion-ContentRetrieverConfiguration
maxResults integer
Default
3
minScore number
Default
0
io.kestra.plugin.ai.domain.AIOutput-AIResponse-ToolExecutionRequest
arguments object
id string
name string
Azure OpenAI Model Provider
endpoint *Requiredstring
modelName *Requiredstring
type *Requiredobject
apiKey string
clientId string
clientSecret string
serviceVersion string
tenantId string
Qdrant Embedding Store
apiKey *Requiredstring
collectionName *Requiredstring
host *Requiredstring
port *Requiredintegerstring
type *Requiredobject
Google VertexAI Model Provider
endpoint *Requiredstring
location *Requiredstring
modelName *Requiredstring
project *Requiredstring
type *Requiredobject
Google Gemini Model Provider
apiKey *Requiredstring
modelName *Requiredstring
type *Requiredobject
In-memory embedding store that stores data as Kestra KV pairs
type *Requiredobject
kvName string
Default
{{flow.id}}-embedding-store
Model Context Protocol (MCP) SSE client tool
sseUrl *Requiredstring
type *Requiredobject
headers object
SubType string
logRequests booleanstring
Default
false
logResponses booleanstring
Default
false
timeout string
Format
duration
WebSearch content retriever for Tavily Search
apiKey *Requiredstring
type *Requiredobject
maxResults integerstring
Default
3
Chat Memory backed by Redis
host *Requiredstring
type *Requiredobject
drop string
Default
NEVER
Possible Values
NEVER
BEFORE_TASKRUN
AFTER_TASKRUN
memoryId string
Default
{{ labels.system.correlationId }}
messages integerstring
Default
10
port integerstring
Default
6379
ttl string
Default
PT1H
Format
duration
Milvus Embedding Store
token *Requiredstring
type *Requiredobject
autoFlushOnDelete booleanstring
autoFlushOnInsert booleanstring
collectionName string
consistencyLevel string
databaseName string
host string
idFieldName string
indexType string
metadataFieldName string
metricType string
password string
port integerstring
retrieveEmbeddingsOnSearch booleanstring
textFieldName string
uri string
username string
vectorFieldName string
Anthropic AI Model Provider
apiKey *Requiredstring
modelName *Requiredstring
type *Requiredobject
WebSearch tool for Tavily Search
apiKey *Requiredstring
type *Requiredobject
In-memory Chat Memory that stores its data as Kestra KV pairs
type *Requiredobject
drop string
Default
NEVER
Possible Values
NEVER
BEFORE_TASKRUN
AFTER_TASKRUN
memoryId string
Default
{{ labels.system.correlationId }}
messages integerstring
Default
10
ttl string
Default
PT1H
Format
duration
Weaviate Embedding Store
apiKey *Requiredstring
host *Requiredstring
type *Requiredobject
avoidDups booleanstring
consistencyLevel string
Possible Values
ONE
QUORUM
ALL
grpcPort integerstring
metadataFieldName string
metadataKeys array
SubType string
objectClass string
port integerstring
scheme string
securedGrpc booleanstring
useGrpcForInserts booleanstring
io.kestra.plugin.ai.embeddings.Elasticsearch-ElasticsearchConnection
hosts *Requiredarray
SubType string
Min items
1
headers array
SubType string
pathPrefix string
strictDeprecationMode booleanstring
trustAllSsl booleanstring
Amazon Bedrock Model Provider
accessKeyId *Requiredstring
modelName *Requiredstring
secretAccessKey *Requiredstring
type *Requiredobject
modelType string
Default
COHERE
Possible Values
COHERE
TITAN