Skip to content

Commit bdbc696

Browse files
committed
Merge branch 'release/1.2.4'
2 parents 5095d44 + d3e201a commit bdbc696

File tree

17 files changed

+147
-40
lines changed

17 files changed

+147
-40
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ LangGraph for Java. A library for building stateful, multi-agents applications w
4343
4444
| Date | Release | info
4545
|--------------|----------------| ---
46-
| Jan 13, 2025 | `1.2.3` | official release
46+
| Jan 22, 2025 | `1.2.4` | official release
4747

4848

4949
## Samples
@@ -73,7 +73,7 @@ LangGraph for Java. A library for building stateful, multi-agents applications w
7373
<dependency>
7474
<groupId>org.bsc.langgraph4j</groupId>
7575
<artifactId>langgraph4j-core</artifactId>
76-
<version>1.2.3</version>
76+
<version>1.2.4</version>
7777
</dependency>
7878
```
7979

agent-executor/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.bsc.langgraph4j</groupId>
66
<artifactId>langgraph4j-parent</artifactId>
7-
<version>1.2.3</version>
7+
<version>1.2.4</version>
88
<relativePath>..</relativePath>
99
</parent>
1010

core/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.bsc.langgraph4j</groupId>
77
<artifactId>langgraph4j-parent</artifactId>
8-
<version>1.2.3</version>
8+
<version>1.2.4</version>
99
</parent>
1010

1111
<artifactId>langgraph4j-core</artifactId>
@@ -31,8 +31,8 @@
3131

3232
<dependency>
3333
<groupId>org.bsc.async</groupId>
34-
<artifactId>async-generator-jdk8</artifactId>
35-
<version>2.3.0</version>
34+
<artifactId>async-generator</artifactId>
35+
<version>3.0.0</version>
3636
</dependency>
3737

3838
<dependency>

core/src/site/markdown/concepts/low_level.md

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ If no [`Channel`] is specified for an item then it is assumed that all updates t
6262
```java
6363
static class MessagesState extends AgentState {
6464

65-
static Map<String, Channel<?>> SCHEMA = mapOf(
65+
static Map<String, Channel<?>> SCHEMA = Map.of(
6666
"messages", AppenderChannel.<String>of(ArrayList::new)
6767
);
6868
}
@@ -80,7 +80,7 @@ You can also specify a custom reducer for a particular state property
8080
```java
8181
static class MyState extends AgentState {
8282

83-
static Map<String, Channel<?>> SCHEMA = mapOf(
83+
static Map<String, Channel<?>> SCHEMA = Map.of(
8484
"property", Channel.<String>of( ( oldValue, newValue ) -> newValue.toUpperCase() )
8585
);
8686
}
@@ -134,7 +134,6 @@ In LangGraph4j, nodes are typically a **Functional Interface** ([`AsyncNodeActio
134134
```java
135135
import static org.bsc.langgraph4j.action.AsyncEdgeAction.edge_async;
136136
import static org.bsc.langgraph4j.action.AsyncNodeAction.node_async;
137-
import static org.bsc.langgraph4j.utils.CollectionsUtils.mapOf;
138137

139138
public class State extends AgentState {
140139

@@ -149,7 +148,7 @@ public class State extends AgentState {
149148

150149
AsyncNodeAction<State> myNode = node_async(state -> {
151150
System.out.println( "In myNode: " );
152-
return mapOf( results: "Hello " + state.input().orElse( "" ) );
151+
return Map.of( results: "Hello " + state.input().orElse( "" ) );
153152
});
154153

155154
AsyncNodeAction<State> myOtherNode = node_async(state -> state);
@@ -215,9 +214,7 @@ graph.addEdge("nodeA", "nodeB");
215214
If you want to **optionally** route to 1 or more edges (or optionally terminate), you can use the [`addConditionalEdges`] method. This method accepts the name of a node and a **Functional Interface** ([`AsyncEdgeAction`]) that will be used as " routing function" to call after that node is executed:
216215

217216
```java
218-
import static org.bsc.langgraph4j.utils.CollectionsUtils.mapOf;
219-
220-
graph.addConditionalEdges("nodeA", routingFunction, mapOf( "first": "nodeB", "second": "nodeC" ) );
217+
graph.addConditionalEdges("nodeA", routingFunction, Map.of( "first": "nodeB", "second": "nodeC" ) );
221218
```
222219

223220
Similar to nodes, the `routingFunction` accept the current `state` of the graph and return a string value.
@@ -245,7 +242,7 @@ A conditional entry point lets you start at different nodes depending on custom
245242
import static org.bsc.langgraph4j.StateGraph.START;
246243
import static org.bsc.langgraph4j.utils.CollectionsUtils.mapOf;
247244
248-
graph.addConditionalEdges(START, routingFunction, mapOf( "first": "nodeB", "second": "nodeC" ) );
245+
graph.addConditionalEdges(START, routingFunction, Map.of( "first": "nodeB", "second": "nodeC" ) );
249246
```
250247
251248
You must provide an object that maps the `routingFunction`'s output to the name of the next node.
@@ -285,7 +282,7 @@ You must pass these when invoking the graph as part of the configurable part of
285282
286283
```java
287284
288-
RunnableConfig config = RunnableConfig.builder()
285+
var config = RunnableConfig.builder()
289286
.threadId("a")
290287
.build();
291288
graph.invoke(inputs, config);

how-tos/llm-streaming.ipynb

Lines changed: 100 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,50 @@
6262
},
6363
{
6464
"cell_type": "code",
65-
"execution_count": null,
65+
"execution_count": 4,
6666
"metadata": {},
67-
"outputs": [],
67+
"outputs": [
68+
{
69+
"name": "stdout",
70+
"output_type": "stream",
71+
"text": [
72+
"Adding dependency \u001b[0m\u001b[1m\u001b[32morg.slf4j:slf4j-jdk14:2.0.9\n",
73+
"\u001b[0mAdding dependency \u001b[0m\u001b[1m\u001b[32morg.bsc.langgraph4j:langgraph4j-core:1.2-SNAPSHOT\n",
74+
"\u001b[0mAdding dependency \u001b[0m\u001b[1m\u001b[32morg.bsc.langgraph4j:langgraph4j-langchain4j:1.2-SNAPSHOT\n",
75+
"\u001b[0mAdding dependency \u001b[0m\u001b[1m\u001b[32mdev.langchain4j:langchain4j:0.36.2\n",
76+
"\u001b[0mAdding dependency \u001b[0m\u001b[1m\u001b[32mdev.langchain4j:langchain4j-open-ai:0.36.2\n",
77+
"\u001b[0mSolving dependencies\n",
78+
"Resolved artifacts count: 26\n",
79+
"Add to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/slf4j/slf4j-jdk14/2.0.9/slf4j-jdk14-2.0.9.jar\u001b[0m\n",
80+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/slf4j/slf4j-api/2.0.9/slf4j-api-2.0.9.jar\u001b[0m\n",
81+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/bsc/langgraph4j/langgraph4j-core/1.2-SNAPSHOT/langgraph4j-core-1.2-SNAPSHOT.jar\u001b[0m\n",
82+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/bsc/async/async-generator/3.0-SNAPSHOT/async-generator-3.0-SNAPSHOT.jar\u001b[0m\n",
83+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/bsc/langgraph4j/langgraph4j-langchain4j/1.2-SNAPSHOT/langgraph4j-langchain4j-1.2-SNAPSHOT.jar\u001b[0m\n",
84+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/dev/langchain4j/langchain4j/0.36.2/langchain4j-0.36.2.jar\u001b[0m\n",
85+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/dev/langchain4j/langchain4j-core/0.36.2/langchain4j-core-0.36.2.jar\u001b[0m\n",
86+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/google/code/gson/gson/2.10.1/gson-2.10.1.jar\u001b[0m\n",
87+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/apache/opennlp/opennlp-tools/1.9.4/opennlp-tools-1.9.4.jar\u001b[0m\n",
88+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/dev/langchain4j/langchain4j-open-ai/0.36.2/langchain4j-open-ai-0.36.2.jar\u001b[0m\n",
89+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/dev/ai4j/openai4j/0.23.0/openai4j-0.23.0.jar\u001b[0m\n",
90+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/retrofit2/retrofit/2.9.0/retrofit-2.9.0.jar\u001b[0m\n",
91+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/retrofit2/converter-jackson/2.9.0/converter-jackson-2.9.0.jar\u001b[0m\n",
92+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/fasterxml/jackson/core/jackson-databind/2.17.2/jackson-databind-2.17.2.jar\u001b[0m\n",
93+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/fasterxml/jackson/core/jackson-annotations/2.17.2/jackson-annotations-2.17.2.jar\u001b[0m\n",
94+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/fasterxml/jackson/core/jackson-core/2.17.2/jackson-core-2.17.2.jar\u001b[0m\n",
95+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/okhttp3/okhttp/4.12.0/okhttp-4.12.0.jar\u001b[0m\n",
96+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/okio/okio/3.6.0/okio-3.6.0.jar\u001b[0m\n",
97+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/okio/okio-jvm/3.6.0/okio-jvm-3.6.0.jar\u001b[0m\n",
98+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/jetbrains/kotlin/kotlin-stdlib-common/1.9.10/kotlin-stdlib-common-1.9.10.jar\u001b[0m\n",
99+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/squareup/okhttp3/okhttp-sse/4.12.0/okhttp-sse-4.12.0.jar\u001b[0m\n",
100+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/jetbrains/kotlin/kotlin-stdlib-jdk8/1.9.25/kotlin-stdlib-jdk8-1.9.25.jar\u001b[0m\n",
101+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/jetbrains/kotlin/kotlin-stdlib/1.9.25/kotlin-stdlib-1.9.25.jar\u001b[0m\n",
102+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/jetbrains/annotations/13.0/annotations-13.0.jar\u001b[0m\n",
103+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/org/jetbrains/kotlin/kotlin-stdlib-jdk7/1.9.25/kotlin-stdlib-jdk7-1.9.25.jar\u001b[0m\n",
104+
"\u001b[0mAdd to classpath: \u001b[0m\u001b[32m/Users/bsorrentino/Library/Jupyter/kernels/rapaio-jupyter-kernel/mima_cache/com/knuddels/jtokkit/1.1.0/jtokkit-1.1.0.jar\u001b[0m\n",
105+
"\u001b[0m"
106+
]
107+
}
108+
],
68109
"source": [
69110
"%dependency /add org.slf4j:slf4j-jdk14:2.0.9\n",
70111
"%dependency /add org.bsc.langgraph4j:langgraph4j-core:\\{langgraph4jVersion}\n",
@@ -106,9 +147,39 @@
106147
},
107148
{
108149
"cell_type": "code",
109-
"execution_count": null,
150+
"execution_count": 6,
110151
"metadata": {},
111-
"outputs": [],
152+
"outputs": [
153+
{
154+
"name": "stderr",
155+
"output_type": "stream",
156+
"text": [
157+
"StreamingOutput{chunk=} \n",
158+
"StreamingOutput{chunk=Why} \n",
159+
"StreamingOutput{chunk= did} \n",
160+
"StreamingOutput{chunk= the} \n",
161+
"StreamingOutput{chunk= scare} \n",
162+
"StreamingOutput{chunk=crow} \n",
163+
"StreamingOutput{chunk= win} \n",
164+
"StreamingOutput{chunk= an} \n",
165+
"StreamingOutput{chunk= award} \n",
166+
"StreamingOutput{chunk=?\n",
167+
"\n",
168+
"} \n",
169+
"StreamingOutput{chunk=Because} \n",
170+
"StreamingOutput{chunk= he} \n",
171+
"StreamingOutput{chunk= was} \n",
172+
"StreamingOutput{chunk= outstanding} \n",
173+
"StreamingOutput{chunk= in} \n",
174+
"StreamingOutput{chunk= his} \n",
175+
"StreamingOutput{chunk= field} \n",
176+
"StreamingOutput{chunk=!} \n",
177+
"RESULT: {content=AiMessage { text = \"Why did the scarecrow win an award?\n",
178+
"\n",
179+
"Because he was outstanding in his field!\" toolExecutionRequests = null }} \n"
180+
]
181+
}
182+
],
112183
"source": [
113184
"import dev.langchain4j.model.StreamingResponseHandler;\n",
114185
"import dev.langchain4j.model.chat.StreamingChatLanguageModel;\n",
@@ -202,9 +273,24 @@
202273
},
203274
{
204275
"cell_type": "code",
205-
"execution_count": null,
276+
"execution_count": 8,
206277
"metadata": {},
207-
"outputs": [],
278+
"outputs": [
279+
{
280+
"data": {
281+
"text/plain": [
282+
"SerializerMapper: \n",
283+
"java.util.Map\n",
284+
"java.util.Collection\n",
285+
"dev.langchain4j.agent.tool.ToolExecutionRequest\n",
286+
"dev.langchain4j.data.message.ChatMessage"
287+
]
288+
},
289+
"execution_count": 8,
290+
"metadata": {},
291+
"output_type": "execute_result"
292+
}
293+
],
208294
"source": [
209295
"import dev.langchain4j.data.message.AiMessage;\n",
210296
"import dev.langchain4j.data.message.SystemMessage;\n",
@@ -367,7 +453,7 @@
367453
},
368454
{
369455
"cell_type": "code",
370-
"execution_count": 15,
456+
"execution_count": 11,
371457
"metadata": {},
372458
"outputs": [
373459
{
@@ -377,17 +463,17 @@
377463
"START \n",
378464
"CallModel:\n",
379465
"[UserMessage { name = null contents = [TextContent { text = \"what is the whether today?\" }] }] \n",
380-
"MapResult: Response { content = AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, tokenUsage = TokenUsage { inputTokenCount = 71, outputTokenCount = 15, totalTokenCount = 86 }, finishReason = TOOL_EXECUTION, metadata = {} } \n",
466+
"MapResult: Response { content = AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, tokenUsage = TokenUsage { inputTokenCount = 71, outputTokenCount = 15, totalTokenCount = 86 }, finishReason = TOOL_EXECUTION, metadata = {} } \n",
381467
"routeMessage:\n",
382-
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }] \n",
468+
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }] \n",
383469
"NodeOutput{node=__START__, state={messages=[UserMessage { name = null contents = [TextContent { text = \"what is the whether today?\" }] }]}} \n",
384470
"invokeTool:\n",
385-
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }] \n",
471+
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }] \n",
386472
"execute: execQuery \n",
387-
"NodeOutput{node=agent, state={messages=[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }]}} \n",
473+
"NodeOutput{node=agent, state={messages=[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }]}} \n",
388474
"CallModel:\n",
389-
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, ToolExecutionResultMessage { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\" toolName = \"execQuery\" text = \"Cold, with a low of 13 degrees\" }] \n",
390-
"NodeOutput{node=tools, state={messages=[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, ToolExecutionResultMessage { id = \"call_ycvEnAG6NCrreo0WqSoxS5jJ\" toolName = \"execQuery\" text = \"Cold, with a low of 13 degrees\" }]}} \n",
475+
"[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, ToolExecutionResultMessage { id = \"call_YszBAtYhA4nlonJG9BFogPkC\" toolName = \"execQuery\" text = \"Cold, with a low of 13 degrees\" }] \n",
476+
"NodeOutput{node=tools, state={messages=[AiMessage { text = null toolExecutionRequests = [ToolExecutionRequest { id = \"call_YszBAtYhA4nlonJG9BFogPkC\", name = \"execQuery\", arguments = \"{\"query\":\"current weather\"}\" }] }, ToolExecutionResultMessage { id = \"call_YszBAtYhA4nlonJG9BFogPkC\" toolName = \"execQuery\" text = \"Cold, with a low of 13 degrees\" }]}} \n",
391477
"StreamingOutput{node=agent, chunk= } \n",
392478
"StreamingOutput{node=agent, chunk=The } \n",
393479
"StreamingOutput{node=agent, chunk= current } \n",
@@ -419,8 +505,8 @@
419505
"StreamingOutput{node=agent, chunk= feel } \n",
420506
"StreamingOutput{node=agent, chunk= free } \n",
421507
"StreamingOutput{node=agent, chunk= to } \n",
422-
"StreamingOutput{node=agent, chunk= ask } \n",
423508
"MapResult: Response { content = AiMessage { text = \"The current weather is cold, with a low of 13 degrees. If you need more specific information or details about a particular location, feel free to ask!\" toolExecutionRequests = null }, tokenUsage = TokenUsage { inputTokenCount = 93, outputTokenCount = 33, totalTokenCount = 126 }, finishReason = STOP, metadata = {} } \n",
509+
"StreamingOutput{node=agent, chunk= ask } \n",
424510
"routeMessage:\n",
425511
"[AiMessage { text = \"The current weather is cold, with a low of 13 degrees. If you need more specific information or details about a particular location, feel free to ask!\" toolExecutionRequests = null }] \n",
426512
"StreamingOutput{node=agent, chunk=! } \n",

how-tos/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.bsc.langgraph4j</groupId>
66
<artifactId>langgraph4j-parent</artifactId>
7-
<version>1.2.3</version>
7+
<version>1.2.4</version>
88
</parent>
99

1010
<artifactId>langgraph4j-howtos</artifactId>

langchain4j/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.bsc.langgraph4j</groupId>
77
<artifactId>langgraph4j-parent</artifactId>
8-
<version>1.2.3</version>
8+
<version>1.2.4</version>
99
</parent>
1010

1111
<artifactId>langgraph4j-langchain4j</artifactId>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>org.bsc.langgraph4j</groupId>
66
<artifactId>langgraph4j-parent</artifactId>
7-
<version>1.2.3</version>
7+
<version>1.2.4</version>
88
<packaging>pom</packaging>
99

1010
<name>langgraph4j::parent</name>

samples/adaptive-rag/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.bsc.langgraph4j</groupId>
66
<artifactId>langgraph4j-parent</artifactId>
7-
<version>1.2.3</version>
7+
<version>1.2.4</version>
88
<relativePath>../..</relativePath>
99
</parent>
1010

samples/image-to-diagram/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.bsc.langgraph4j</groupId>
66
<artifactId>langgraph4j-parent</artifactId>
7-
<version>1.2.3</version>
7+
<version>1.2.4</version>
88
<relativePath>../..</relativePath>
99
</parent>
1010

0 commit comments

Comments
 (0)