Feature pack to provide AI integration for WildFly
<dependency>
<groupId>org.wildfly.generative-ai</groupId>
<artifactId>wildfly-ai-feature-pack</artifactId>
<version>0.9.0</version>
</dependency>
<feature-pack>
<location>org.wildfly.generative-ai:wildfly-ai-feature-pack:0.9.0</location>
</feature-pack>
Support for LangChain4j Integration
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai"
}
}
}
Support for ChatMemory
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"chat-memory" : {
"chat-memory" : {
"_address" : "/subsystem=ai/chat-memory=*",
"attributes" : [ {
"name" : "size",
"value" : "${org.wildfly.ai.chat-memory.size,env.CHAT_MEMORY_SIZE:5}",
"_address" : "/subsystem=ai/chat-memory=*@@@size"
}, {
"name" : "type",
"value" : "${org.wildfly.ai.chat-memory.type,env.CHAT_MEMORY_TYPE:MESSAGE}",
"_address" : "/subsystem=ai/chat-memory=*@@@type"
}, {
"name" : "use-http-session",
"value" : "${org.wildfly.ai.chat-memory.session,env.CHAT_MEMORY_SESSION:true}",
"_address" : "/subsystem=ai/chat-memory=*@@@use-http-session"
} ]
}
}
}
}
}
Support for ChromaDB as an embedding store
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"chroma-embedding-store" : {
"chroma" : {
"_address" : "/subsystem=ai/chroma-embedding-store=*",
"attributes" : [ {
"name" : "api-version",
"value" : "${org.wildfly.ai.chroma.api-version,env.CHROMA_API_VERSION:V2}",
"_address" : "/subsystem=ai/chroma-embedding-store=*@@@api-version"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.chroma.url,env.CHROMA_URL:http://localhost:8000}",
"_address" : "/subsystem=ai/chroma-embedding-store=*@@@base-url"
}, {
"name" : "connect-timeout",
"value" : "${org.wildfly.ai.chroma.timeout,env.CHROMA_TIMEOUT:20000}",
"_address" : "/subsystem=ai/chroma-embedding-store=*@@@connect-timeout"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.chroma.log.request,env.CHROMA_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/chroma-embedding-store=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.chroma.log.response,env.CHROMA_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/chroma-embedding-store=*@@@log-responses"
} ]
}
}
}
}
}
Support for a default embedding content retriever using in memory embedding store and all-minilm-l6-v2 embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"embedding-store-content-retriever" : {
"embedding-store-retriever" : {
"_address" : "/subsystem=ai/embedding-store-content-retriever=*",
"attributes" : [ {
"name" : "embedding-model",
"value" : "all-minilm-l6-v2",
"_address" : "/subsystem=ai/embedding-store-content-retriever=*@@@embedding-model"
}, {
"name" : "embedding-store",
"value" : "in-memory",
"_address" : "/subsystem=ai/embedding-store-content-retriever=*@@@embedding-store"
}, {
"name" : "max-results",
"value" : "${org.wildfly.ai.embedding.retriever.max.results,env.EMBEDDING_RETRIEVER_MAX_RESULTS:2}",
"_address" : "/subsystem=ai/embedding-store-content-retriever=*@@@max-results"
}, {
"name" : "min-score",
"value" : "${org.wildfly.ai.embedding.retriever.min.score,env.EMBEDDING_RETRIEVER_MIN_SCORE:0.7}",
"_address" : "/subsystem=ai/embedding-store-content-retriever=*@@@min-score"
} ]
}
}
}
}
}
Support for Gemini chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"gemini-chat-model" : {
"gemini" : {
"_address" : "/subsystem=ai/gemini-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GEMINI_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@api-key"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.gemini.chat.log,env.GEMINI_CHAT_LOG:true}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.gemini.chat.log,env.GEMINI_CHAT_LOG:true}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.gemini.chat.model.name,env.GEMINI_CHAT_MODEL_NAME:gemini-2.5-flash}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Gemini streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"gemini-chat-model" : {
"streaming-gemini" : {
"_address" : "/subsystem=ai/gemini-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GEMINI_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@api-key"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.gemini.chat.log,env.GEMINI_CHAT_LOG:true}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.gemini.chat.log,env.GEMINI_CHAT_LOG:true}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.gemini.chat.model.name,env.GEMINI_CHAT_MODEL_NAME:gemini-2.5-flash}",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/gemini-chat-model=*@@@streaming"
} ]
}
}
}
}
}
Support for Github chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"github-chat-model" : {
"github" : {
"_address" : "/subsystem=ai/github-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GITHUB_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/github-chat-model=*@@@api-key"
}, {
"name" : "endpoint",
"value" : "${org.wildfly.ai.github.chat.url,env.GITHUB_CHAT_URL:https://models.inference.ai.azure.com}",
"_address" : "/subsystem=ai/github-chat-model=*@@@endpoint"
}, {
"name" : "log-requests-responses",
"value" : "${org.wildfly.ai.github.chat.log,env.GITHUB_CHAT_LOG:true}",
"_address" : "/subsystem=ai/github-chat-model=*@@@log-requests-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.github.chat.model.name,env.GITHUB_CHAT_MODEL_NAME:gpt-4o-mini}",
"_address" : "/subsystem=ai/github-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Github streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"github-chat-model" : {
"streaming-github" : {
"_address" : "/subsystem=ai/github-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GITHUB_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/github-chat-model=*@@@api-key"
}, {
"name" : "endpoint",
"value" : "${org.wildfly.ai.github.chat.url,env.GITHUB_CHAT_URL:https://models.inference.ai.azure.com}",
"_address" : "/subsystem=ai/github-chat-model=*@@@endpoint"
}, {
"name" : "log-requests-responses",
"value" : "${org.wildfly.ai.github.chat.log,env.GITHUB_CHAT_LOG:true}",
"_address" : "/subsystem=ai/github-chat-model=*@@@log-requests-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.github.chat.model.name,env.GITHUB_CHAT_MODEL_NAME:gpt-4o-mini}",
"_address" : "/subsystem=ai/github-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/github-chat-model=*@@@streaming"
} ]
}
}
},
"logging" : {
"_address" : "/subsystem=logging",
"logger" : {
"com.azure" : {
"_address" : "/subsystem=logging/logger=*",
"attributes" : [ {
"name" : "level",
"value" : "OFF",
"_address" : "/subsystem=logging/logger=*@@@level"
} ]
}
}
}
}
}
Support for Groq chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"openai-chat-model" : {
"groq" : {
"_address" : "/subsystem=ai/openai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GROQ_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.openai.chat.url,env.GROQ_CHAT_URL:https://api.groq.com/openai/v1}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.groq.chat.log.request,env.GROQ_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.groq.chat.log.response,env.GROQ_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.groq.chat.model.name,env.GROQ_CHAT_MODEL_NAME:llama3-8b-8192}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Groq streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"openai-chat-model" : {
"streaming-groq" : {
"_address" : "/subsystem=ai/openai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.GROQ_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.groq.chat.url,env.GROQ_CHAT_URL:https://api.groq.com/openai/v1}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.groq.chat.log.request,env.GROQ_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.groq.chat.log.response,env.GROQ_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.groq.chat.model.name,env.GROQ_CHAT_MODEL_NAME:llama3-8b-8192}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/openai-chat-model=*@@@streaming"
} ]
}
}
}
}
}
Support for all-minilm-l6-v2 in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"all-minilm-l6-v2" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.allminilml6v2.AllMiniLmL6V2EmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.all-minilm-l6-v2",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for all-minilm-l6-v2-q in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"all-minilm-l6-v2-q" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.allminilml6v2q.AllMiniLmL6V2QuantizedEmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.all-minilm-l6-v2-q",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for abge-small-en in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"bge-small-en" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.bgesmallen.BgeSmallEnEmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.bge-small-en",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for all-bge-small-en-q in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"bge-small-en" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.bgesmallenq.BgeSmallEnQuantizedEmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.bge-small-en-q",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for bge-small-env15 in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"bge-small-en-v15" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.bgesmallenv15.BgeSmallEnV15EmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.bge-small-en-v15",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for bge-small-en-v15-q in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"bge-small-en-v15-q" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.bgesmallenv15q.BgeSmallEnV15QuantizedEmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.bge-small-en-v15-q",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for e5-small-v2 in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"e5-small-v2" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.e5smallv2.E5SmallV2EmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.e5-small-v2",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support for e5-small-v2-q in memory embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-model" : {
"e5-small-v2-q" : {
"_address" : "/subsystem=ai/in-memory-embedding-model=*",
"attributes" : [ {
"name" : "embedding-class",
"value" : "dev.langchain4j.model.embedding.onnx.e5smallv2q.E5SmallV2QuantizedEmbeddingModel",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@embedding-class"
}, {
"name" : "module",
"value" : "dev.langchain4j.embeddings.e5-small-v2-q",
"_address" : "/subsystem=ai/in-memory-embedding-model=*@@@module"
} ]
}
}
}
}
}
Support In Memory embedding store.
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"in-memory-embedding-store" : {
"in-memory" : {
"_address" : "/subsystem=ai/in-memory-embedding-store=*",
"attributes" : [ {
"name" : "path",
"value" : "${org.wildfly.ai.in-memory.embedding.file,env.IN_MEMORY_EMBEDDING_FILE:embeddings.json}",
"_address" : "/subsystem=ai/in-memory-embedding-store=*@@@path"
}, {
"name" : "relative-to",
"value" : "jboss.server.config.dir",
"_address" : "/subsystem=ai/in-memory-embedding-store=*@@@relative-to"
} ]
}
}
}
}
}
Support for MCP subsystem
{
"subsystem" : {
"mcp" : {
"_address" : "/subsystem=mcp"
}
}
}
ee-concurrency
- required
Support for MCP SSE client
{
"socket-binding-group" : {
"standard-sockets" : {
"_address" : "/socket-binding-group=*",
"remote-destination-outbound-socket-binding" : {
"mcp-sse" : {
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*",
"attributes" : [ {
"name" : "host",
"value" : "${org.wildfly.ai.mcp.client.host,env.MCP_CLIENT_HOST:localhost}",
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*@@@host"
}, {
"name" : "port",
"value" : "${org.wildfly.ai.mcp.client.port,env.MCP_CLIENT_PORT:8090}",
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*@@@port"
} ]
}
}
}
},
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"mcp-client-sse" : {
"mcp-sse" : {
"_address" : "/subsystem=ai/mcp-client-sse=*",
"attributes" : [ {
"name" : "connect-timeout",
"value" : "6000000",
"_address" : "/subsystem=ai/mcp-client-sse=*@@@connect-timeout"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.mcp.client.log.request,env.MCP_CLIENT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/mcp-client-sse=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.mcp.client.log.response,env.MCP_CLIENT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/mcp-client-sse=*@@@log-responses"
}, {
"name" : "socket-binding",
"value" : "mcp-sse",
"_address" : "/subsystem=ai/mcp-client-sse=*@@@socket-binding"
}, {
"name" : "sse-path",
"value" : "${org.wildfly.ai.mcp.client.sse.path,env.MCP_CLIENT_SSE_PATH:/sse}",
"_address" : "/subsystem=ai/mcp-client-sse=*@@@sse-path"
} ]
}
},
"mcp-tool-provider" : {
"mcp" : {
"_address" : "/subsystem=ai/mcp-tool-provider=*",
"attributes" : [ {
"name" : "mcp-clients",
"value" : "[mcp-sse]",
"_address" : "/subsystem=ai/mcp-tool-provider=*@@@mcp-clients"
} ]
}
}
}
}
}
Support for MCP stdio client
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"mcp-client-stdio" : {
"mcp-stdio" : {
"_address" : "/subsystem=ai/mcp-client-stdio=*",
"attributes" : [ {
"name" : "args",
"value" : "[]",
"_address" : "/subsystem=ai/mcp-client-stdio=*@@@args"
}, {
"name" : "cmd",
"value" : "java",
"_address" : "/subsystem=ai/mcp-client-stdio=*@@@cmd"
} ]
}
},
"mcp-tool-provider" : {
"mcp-stdio" : {
"_address" : "/subsystem=ai/mcp-tool-provider=*",
"attributes" : [ {
"name" : "mcp-clients",
"value" : "[mcp-stdio]",
"_address" : "/subsystem=ai/mcp-tool-provider=*@@@mcp-clients"
} ]
}
}
}
}
}
Support for MCP Server
{
"subsystem" : {
"mcp" : {
"_address" : "/subsystem=mcp",
"mcp-server" : {
"server" : {
"_address" : "/subsystem=mcp/mcp-server=*",
"attributes" : [ {
"name" : "messages-path",
"value" : "messages",
"_address" : "/subsystem=mcp/mcp-server=*@@@messages-path"
}, {
"name" : "sse-path",
"value" : "sse",
"_address" : "/subsystem=mcp/mcp-server=*@@@sse-path"
}, {
"name" : "streamable-path",
"value" : "stream",
"_address" : "/subsystem=mcp/mcp-server=*@@@streamable-path"
} ]
}
}
}
}
}
Support for Mistral chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"mistral-ai-chat-model" : {
"mistral" : {
"_address" : "/subsystem=ai/mistral-ai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.MISTRAL_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.mistral.chat.url,env.MISTRAL_CHAT_URL:https://api.mistral.ai/v1}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.mistral.chat.log.request,env.MISTRAL_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.mistral.chat.log.response,env.MISTRAL_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.mistral.chat.model.name,env.MISTRAL_CHAT_MODEL_NAME:mistral-small-latest}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Mistral streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"mistral-ai-chat-model" : {
"streaming-mistral" : {
"_address" : "/subsystem=ai/mistral-ai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.MISTRAL_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.mistral.chat.url,env.MISTRAL_CHAT_URL:https://api.mistral.ai/v1}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.mistral.chat.log.request,env.MISTRAL_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.mistral.chat.log.response,env.MISTRAL_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.mistral.chat.model.name,env.MISTRAL_CHAT_MODEL_NAME:mistral-small-latest}",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/mistral-ai-chat-model=*@@@streaming"
} ]
}
}
}
}
}
Support for Neo4J content retriever
{ }
Support for Neo4J embedding store
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"neo4j-embedding-store" : {
"neo4j" : {
"_address" : "/subsystem=ai/neo4j-embedding-store=*",
"attributes" : [ {
"name" : "bolt-url",
"value" : "${org.wildfly.ai.neo4j.url,env.NEO4J_URL:neo4j://localhost:7687}",
"_address" : "/subsystem=ai/neo4j-embedding-store=*@@@bolt-url"
}, {
"name" : "credential-reference",
"value" : "{clear-text=${org.wildfly.ai.neo4j.password,env.NEO4J_PASSWORD:neo4jpassword}}",
"_address" : "/subsystem=ai/neo4j-embedding-store=*@@@credential-reference"
}, {
"name" : "dimension",
"value" : "${org.wildfly.ai.neo4j.dimension,env.NEO4J_DIMENSION:384}",
"_address" : "/subsystem=ai/neo4j-embedding-store=*@@@dimension"
}, {
"name" : "username",
"value" : "${org.wildfly.ai.neo4j.username,env.NEO4J_USER:neo4j}",
"_address" : "/subsystem=ai/neo4j-embedding-store=*@@@username"
} ]
}
}
}
}
}
Support for Ollama chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"ollama-chat-model" : {
"ollama" : {
"_address" : "/subsystem=ai/ollama-chat-model=*",
"attributes" : [ {
"name" : "base-url",
"value" : "${org.wildfly.ai.ollama.chat.url,env.OLLAMA_CHAT_URL:http://127.0.0.1:11434}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@base-url"
}, {
"name" : "connect-timeout",
"value" : "600000",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@connect-timeout"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.ollama.chat.log.request,env.OLLAMA_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.ollama.chat.log.response,env.OLLAMA_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.ollama.chat.model.name,env.OLLAMA_CHAT_MODEL_NAME:llama3.1:8b}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@model-name"
}, {
"name" : "temperature",
"value" : "${org.wildfly.ai.ollama.chat.temperature,env.OLLAMA_CHAT_TEMPERATURE:0.9}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@temperature"
} ]
}
}
}
}
}
Support for Ollama embedding model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"ollama-embedding-model" : {
"ollama" : {
"_address" : "/subsystem=ai/ollama-embedding-model=*",
"attributes" : [ {
"name" : "base-url",
"value" : "${org.wildfly.ai.ollama.embedding.url,env.OLLAMA_EMBEDDING_URL:http://127.0.0.1:11434}",
"_address" : "/subsystem=ai/ollama-embedding-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.ollama.embedding.log.request,env.OLLAMA_EMBEDDING_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/ollama-embedding-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.ollama.embedding.log.response,env.OLLAMA_EMBEDDING_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/ollama-embedding-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.ollama.embedding.model.name,env.OLLAMA_EMBEDDING_MODEL_NAME:llama3.1:8b}",
"_address" : "/subsystem=ai/ollama-embedding-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Neo4J content retriever using Ollama model for query generation
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"neo4j-content-retriever" : {
"ollama-neo4j-retriever" : {
"_address" : "/subsystem=ai/neo4j-content-retriever=*",
"attributes" : [ {
"name" : "bolt-url",
"value" : "${org.wildfly.ai.neo4j.url,env.NEO4J_URL:neo4j://localhost:7687}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@bolt-url"
}, {
"name" : "chat-language-model",
"value" : "cypher_model",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@chat-language-model"
}, {
"name" : "credential-reference",
"value" : "{clear-text=${org.wildfly.ai.neo4j.password,env.NEO4J_PASSWORD:neo4jpassword}}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@credential-reference"
}, {
"name" : "username",
"value" : "${org.wildfly.ai.neo4j.username,env.NEO4J_USER:neo4j}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@username"
} ]
}
},
"ollama-chat-model" : {
"cypher_model" : {
"_address" : "/subsystem=ai/ollama-chat-model=*",
"attributes" : [ {
"name" : "base-url",
"value" : "${org.wildfly.ai.ollama.chat.url,env.OLLAMA_NEO4J_CHAT_URL:http://127.0.0.1:11434}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@base-url"
}, {
"name" : "connect-timeout",
"value" : "600000",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@connect-timeout"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.ollama.chat.log.request,env.OLLAMA_NEO4J_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.ollama.chat.log.response,env.OLLAMA_NEO4J_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.ollama.chat.model.name,env.OLLAMA_NEO4J_CHAT_MODEL_NAME:tomasonjo/llama3-text2cypher-demo}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Ollama streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"ollama-chat-model" : {
"streaming-ollama" : {
"_address" : "/subsystem=ai/ollama-chat-model=*",
"attributes" : [ {
"name" : "base-url",
"value" : "${org.wildfly.ai.ollama.chat.url,env.OLLAMA_CHAT_URL:http://127.0.0.1:11434}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@base-url"
}, {
"name" : "connect-timeout",
"value" : "600000",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@connect-timeout"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.ollama.chat.log.request,env.OLLAMA_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.ollama.chat.log.response,env.OLLAMA_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.ollama.chat.model.name,env.OLLAMA_CHAT_MODEL_NAME:llama3.1:8b}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@streaming"
}, {
"name" : "temperature",
"value" : "${org.wildfly.ai.ollama.chat.temperature,env.OLLAMA_CHAT_TEMPERATURE:0.9}",
"_address" : "/subsystem=ai/ollama-chat-model=*@@@temperature"
} ]
}
}
}
}
}
Support for OpenAI chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"openai-chat-model" : {
"openai" : {
"_address" : "/subsystem=ai/openai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.OPENAI_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.openai.chat.url,env.OPENAI_CHAT_URL:https://api.openai.com/v1}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.openai.chat.log.request,env.OPENAI_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.openai.chat.log.response,env.OPENAI_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.openai.chat.model.name,env.OPENAI_CHAT_MODEL_NAME:llama3-8b-8192}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for Neo4J content retriever using OpenAI model for query generation
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"neo4j-content-retriever" : {
"openai-neo4j-retriever" : {
"_address" : "/subsystem=ai/neo4j-content-retriever=*",
"attributes" : [ {
"name" : "bolt-url",
"value" : "${org.wildfly.ai.neo4j.url,env.NEO4J_URL:neo4j://localhost:7687}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@bolt-url"
}, {
"name" : "chat-language-model",
"value" : "cypher_model",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@chat-language-model"
}, {
"name" : "credential-reference",
"value" : "{clear-text=${org.wildfly.ai.neo4j.password,env.NEO4J_PASSWORD:neo4jpassword}}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@credential-reference"
}, {
"name" : "username",
"value" : "${org.wildfly.ai.neo4j.username,env.NEO4J_USER:neo4j}",
"_address" : "/subsystem=ai/neo4j-content-retriever=*@@@username"
} ]
}
},
"openai-chat-model" : {
"cypher_model" : {
"_address" : "/subsystem=ai/openai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.OPENAI_NEO4J_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.openai.chat.url,env.OPENAI_NEO4J_CHAT_URL:https://api.openai.com/v1}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.openai.chat.log.request,env.OPENAI_NEO4J_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.openai.chat.log.response,env.OPENAI_NEO4J_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.openai.chat.model.name,env.OPENAI_NEO4J_CHAT_MODEL_NAME:llama3-8b-8192}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@model-name"
} ]
}
}
}
}
}
Support for OpenAI streaming chat model
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"openai-chat-model" : {
"streaming-openai" : {
"_address" : "/subsystem=ai/openai-chat-model=*",
"attributes" : [ {
"name" : "api-key",
"value" : "${env.OPENAI_API_KEY:YOUR_KEY_VALUE}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@api-key"
}, {
"name" : "base-url",
"value" : "${org.wildfly.ai.openai.chat.url,env.OPENAI_CHAT_URL:https://api.openai.com/v1}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@base-url"
}, {
"name" : "log-requests",
"value" : "${org.wildfly.ai.openai.chat.log.request,env.OPENAI_CHAT_LOG_REQUEST:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-requests"
}, {
"name" : "log-responses",
"value" : "${org.wildfly.ai.openai.chat.log.response,env.OPENAI_CHAT_LOG_RESPONSE:true}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@log-responses"
}, {
"name" : "model-name",
"value" : "${org.wildfly.ai.openai.chat.model.name,env.OPENAI_CHAT_MODEL_NAME:llama3-8b-8192}",
"_address" : "/subsystem=ai/openai-chat-model=*@@@model-name"
}, {
"name" : "streaming",
"value" : "true",
"_address" : "/subsystem=ai/openai-chat-model=*@@@streaming"
} ]
}
}
}
}
}
Support for WASM WASI subsystem
{
"subsystem" : {
"wasm" : {
"_address" : "/subsystem=wasm"
}
}
}
ee-concurrency
- required
Support for Weaviate embedding store
{
"socket-binding-group" : {
"standard-sockets" : {
"_address" : "/socket-binding-group=*",
"remote-destination-outbound-socket-binding" : {
"${org.wildfly.ai.weaviate.socket-binding,env.WEAVIATE_SOCKET_BINDING:weaviate}" : {
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*",
"attributes" : [ {
"name" : "host",
"value" : "${org.wildfly.ai.weaviate.host,env.WEAVIATE_HOST:localhost}",
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*@@@host"
}, {
"name" : "port",
"value" : "${org.wildfly.ai.weaviate.port,env.WEAVIATE_PORT:8090}",
"_address" : "/socket-binding-group=*/remote-destination-outbound-socket-binding=*@@@port"
} ]
}
}
}
},
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"weaviate-embedding-store" : {
"weaviate" : {
"_address" : "/subsystem=ai/weaviate-embedding-store=*",
"attributes" : [ {
"name" : "metadata",
"value" : "[url,language,parent_url,file_name,file_path,title,subtitle]",
"_address" : "/subsystem=ai/weaviate-embedding-store=*@@@metadata"
}, {
"name" : "object-class",
"value" : "${org.wildfly.ai.weaviate.object-class,env.WEAVIATE_OBJECT_CLASS:Simple}",
"_address" : "/subsystem=ai/weaviate-embedding-store=*@@@object-class"
}, {
"name" : "socket-binding",
"value" : "${org.wildfly.ai.weaviate.socket-binding,env.WEAVIATE_SOCKET_BINDING:weaviate}",
"_address" : "/subsystem=ai/weaviate-embedding-store=*@@@socket-binding"
}, {
"name" : "ssl-enabled",
"value" : "${org.wildfly.ai.weaviate.ssl-enabled,env.WEAVIATE_SSL_ENABLED:false}",
"_address" : "/subsystem=ai/weaviate-embedding-store=*@@@ssl-enabled"
} ]
}
}
}
}
}
Support for Web Search Engine content retriever
{
"subsystem" : {
"ai" : {
"_address" : "/subsystem=ai",
"web-search-content-retriever" : {
"web-search-retriever" : {
"_address" : "/subsystem=ai/web-search-content-retriever=*",
"attributes" : [ {
"name" : "tavily",
"value" : "{api-key=${env.TAVILY_API_KEY}, base-url=https://api.tavily.com, connect-timeout=20000, exclude-domains=[example.org], include-domains=[example.com], include-answer=true}",
"_address" : "/subsystem=ai/web-search-content-retriever=*@@@tavily"
} ]
}
}
}
}
}
This feature pack is hosted at https://github.com/wildfly-extras/wildfly-ai-feature-pack
Source code of this feature pack is hosted at https://github.com/wildfly-extras/wildfly-ai-feature-pack
This feature pack is licensed under: