diff --git a/docs/content/docs/get-started/installation.md b/docs/content/docs/get-started/installation.md index f6f0154a0..1aa4c1625 100644 --- a/docs/content/docs/get-started/installation.md +++ b/docs/content/docs/get-started/installation.md @@ -151,6 +151,65 @@ After building: - The Python package is installed and ready to use - The distribution JAR is located at: `dist/target/flink-agents-dist-*.jar` +## Maven Dependencies (For Java) + +For developing Flink Agents applications in Java, add the following dependencies to your `pom.xml`: + +**Required** +- **`flink-agents-api`** : Flink Agents API +- **`flink-streaming-java`** and/or **`flink-table-api-java`** : Flink DataStream and/or Table API + +**Optional** +- **`flink-agents-ide-support`** : Runtime execution dependencies (required for local execution/testing). + - Unlike running in a Flink cluster, when running in IDE, because the runtime dependencies are absent, user need additional dependencies. + To simplify the complexity for adding multiple dependencies in pom, flink-agents provide the above artifact. + This way, users only need to add this single dependency in their pom.xml. + +{{< hint info >}} +All the above dependencies should be in provided scope, to avoid potential conflict with the Flink cluster. + +For execution in IDE, enable the feature `add dependencies with provided scope to classpath` in your IDE. +{{< /hint >}} + +**Example `pom.xml`** + +```xml + + 2.2 + 0.2-SNAPSHOT + + + + + + org.apache.flink + flink-agents-api + ${flink-agents.version} + provide + + + + org.apache.flink + flink-streaming-java + ${flink.version} + provided + + + org.apache.flink + flink-table-api-java + ${flink.version} + provided + + + + + org.apache.flink + flink-agents-ide-support + ${project.version} + provided + + +``` ## Deploy to Flink Cluster diff --git a/examples/pom.xml b/examples/pom.xml index 96ee9b717..5e5e8a4e3 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -29,44 +29,35 @@ under the License. Flink Agents : Examples + org.apache.flink flink-agents-api ${project.version} + provided - - - - org.apache.flink - flink-agents-runtime - ${project.version} - - - org.apache.flink - flink-connector-files - ${flink.version} - + org.apache.flink flink-streaming-java ${flink.version} + provided + org.apache.flink - flink-table-api-java-bridge - ${flink.version} - - - org.apache.flink - flink-table-planner_2.12 + flink-connector-files ${flink.version} + + + org.apache.flink - flink-clients - ${flink.version} + flink-agents-ide-support + ${project.version} + provided - \ No newline at end of file diff --git a/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java b/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java index b7742f207..4daac9adf 100644 --- a/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java +++ b/examples/src/main/java/org/apache/flink/agents/examples/agents/ProductSuggestionAgent.java @@ -60,7 +60,7 @@ public static ResourceDescriptor generateSuggestionModel() { return ResourceDescriptor.Builder.newBuilder(OLLAMA_CHAT_MODEL_SETUP) .addInitialArgument("connection", "ollamaChatModelConnection") .addInitialArgument("model", "qwen3:8b") - .addInitialArgument("extract_reasoning", "true") + .addInitialArgument("extract_reasoning", true) .addInitialArgument("prompt", "productSuggestionPrompt") .build(); } diff --git a/ide-support/pom.xml b/ide-support/pom.xml new file mode 100644 index 000000000..0bbd554db --- /dev/null +++ b/ide-support/pom.xml @@ -0,0 +1,203 @@ + + + + 4.0.0 + + org.apache.flink + flink-agents + 0.2-SNAPSHOT + + + flink-agents-ide-support + Flink Agents : IDE Support + + This module contains no source code, is just for assembling flink-agents and flink dependencies + needed when run agent in IDE. + + + + + + org.apache.flink + flink-agents-runtime + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + + org.apache.flink + flink-agents-integrations-chat-models-ollama + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-chat-models-openai + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-chat-models-anthropic + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-chat-models-azureai + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-embedding-models-ollama + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-vector-stores-elasticsearch + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + org.apache.flink + flink-agents-integrations-mcp + ${project.version} + + + org.apache.flink + flink-agents-api + + + + + + org.apache.flink + flink-streaming-java + ${flink.version} + + + org.apache.flink + flink-table-api-java + ${flink.version} + + + org.apache.flink + flink-clients + ${flink.version} + + + org.apache.flink + flink-streaming-java + + + org.apache.flink + flink-core + + + org.apache.flink + flink-runtime + + + org.apache.flink + flink-core-api + + + org.apache.flink + flink-annotations + + + org.apache.flink + flink-metrics-core + + + + + org.apache.flink + flink-table-api-java-bridge + ${flink.version} + + + org.apache.flink + flink-table-api-java + + + org.apache.flink + flink-streaming-java + + + + + org.apache.flink + flink-table-planner_2.12 + ${flink.version} + + + org.apache.flink + flink-core + + + org.apache.flink + flink-streaming-java + + + org.apache.flink + flink-table-api-java + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 97584bc8d..243c6faa5 100644 --- a/pom.xml +++ b/pom.xml @@ -63,6 +63,7 @@ under the License. e2e-test integrations dist + ide-support