Skip to content

Commit f46fabc

Browse files
Fix for #317 - Interactive/Agent mode NullPointerException (first time user) (#318)
* The bug happens when in streaming mode and the model has been detected as not supporting tools. * Merged dev and removed unused var in JeddictBrain.pairProgrammer
1 parent 4f18c15 commit f46fabc

1 file changed

Lines changed: 2 additions & 5 deletions

File tree

src/main/java/io/github/jeddict/ai/lang/JeddictBrain.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import dev.langchain4j.data.message.UserMessage;
2828
import dev.langchain4j.exception.ToolExecutionException;
2929
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
30-
import dev.langchain4j.model.chat.ChatModel;
3130
import dev.langchain4j.model.chat.listener.ChatModelErrorContext;
3231
import dev.langchain4j.model.chat.listener.ChatModelListener;
3332
import dev.langchain4j.model.chat.listener.ChatModelRequestContext;
@@ -207,8 +206,6 @@ public JeddictBrain withMemory(int size) {
207206
* @return an instance of the configured agent
208207
*/
209208
public <T> T pairProgrammer(PairProgrammer.Specialist specialist) {
210-
ChatModel chatModel = null;
211-
212209
if (specialist == PairProgrammer.Specialist.HACKER) {
213210
if (!probeToolSupport()) {
214211
specialist = PairProgrammer.Specialist.HACKER_WITHOUT_TOOLS;
@@ -234,7 +231,7 @@ public void onResponse(ChatModelResponseContext ctx) {
234231
if (streaming) {
235232
builder.streamingChatModel(model(modelListener));
236233
} else {
237-
builder.chatModel(chatModel = model(modelListener));
234+
builder.chatModel(model(modelListener));
238235
}
239236
if (memorySize > 0) {
240237
builder.chatMemory(MessageWindowChatMemory.withMaxMessages(memorySize));
@@ -256,7 +253,7 @@ public void onResponse(ChatModelResponseContext ctx) {
256253
builder.toolArgumentsErrorHandler(this::toolArgumentsErrorHandler);
257254

258255
if (specialist == PairProgrammer.Specialist.HACKER_WITHOUT_TOOLS) {
259-
final HackerWithoutTools hacker = new HackerWithoutTools(chatModel, builder, tools);
256+
final HackerWithoutTools hacker = new HackerWithoutTools(model(modelListener), builder, tools);
260257
hacker.maxIterations(25);
261258

262259
return (T) hacker;

0 commit comments

Comments
 (0)