diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index febbd0cb4..d64cc851d 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -76,7 +76,7 @@ jobs: CI_DELAY_SECONDS_AZURE_OPENAI: 1 CI_DELAY_SECONDS_BEDROCK: 1 CI_DELAY_SECONDS_GOOGLE_AI_GEMINI: 5 - CI_DELAY_SECONDS_VERTEX_AI_GEMINI: 4 + CI_DELAY_SECONDS_VERTEX_AI_GEMINI: 5 - name: Upload Test Reports if: always() diff --git a/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiAiServicesWithJsonSchemaIT.java b/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiAiServicesWithJsonSchemaIT.java index c0bc7c4b2..f7e57b435 100644 --- a/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiAiServicesWithJsonSchemaIT.java +++ b/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiAiServicesWithJsonSchemaIT.java @@ -11,11 +11,6 @@ import static java.util.Collections.singletonList; class GoogleAiGeminiAiServicesWithJsonSchemaIT extends AiServicesWithJsonSchemaIT { - @AfterEach - void afterEach() throws InterruptedException { - Thread.sleep(2_000); // to prevent hitting rate limits - } - @Override protected List models() { return singletonList( @@ -28,4 +23,12 @@ class GoogleAiGeminiAiServicesWithJsonSchemaIT extends AiServicesWithJsonSchemaI .build() ); } + + @AfterEach + void afterEach() throws InterruptedException { + String ciDelaySeconds = System.getenv("CI_DELAY_SECONDS_GOOGLE_AI_GEMINI"); + if (ciDelaySeconds != null) { + Thread.sleep(Integer.parseInt(ciDelaySeconds) * 1000L); + } + } } diff --git a/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiChatModelListenerIT.java b/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiChatModelListenerIT.java index fa44fbcd6..e0fdd4fb5 100644 --- a/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiChatModelListenerIT.java +++ b/langchain4j-google-ai-gemini/src/test/java/dev/langchain4j/model/googleai/GoogleAiGeminiChatModelListenerIT.java @@ -3,6 +3,7 @@ package dev.langchain4j.model.googleai; import dev.langchain4j.model.chat.ChatLanguageModel; import dev.langchain4j.model.chat.ChatModelListenerIT; import dev.langchain4j.model.chat.listener.ChatModelListener; +import org.junit.jupiter.api.AfterEach; import static java.util.Collections.singletonList; @@ -46,4 +47,12 @@ class GoogleAiGeminiChatModelListenerIT extends ChatModelListenerIT { protected Class expectedExceptionClass() { return RuntimeException.class; } + + @AfterEach + void afterEach() throws InterruptedException { + String ciDelaySeconds = System.getenv("CI_DELAY_SECONDS_GOOGLE_AI_GEMINI"); + if (ciDelaySeconds != null) { + Thread.sleep(Integer.parseInt(ciDelaySeconds) * 1000L); + } + } } diff --git a/langchain4j-hugging-face/src/test/java/dev/langchain4j/model/huggingface/HuggingFaceEmbeddingModelIT.java b/langchain4j-hugging-face/src/test/java/dev/langchain4j/model/huggingface/HuggingFaceEmbeddingModelIT.java index 20c7ecc60..26cb6cd71 100644 --- a/langchain4j-hugging-face/src/test/java/dev/langchain4j/model/huggingface/HuggingFaceEmbeddingModelIT.java +++ b/langchain4j-hugging-face/src/test/java/dev/langchain4j/model/huggingface/HuggingFaceEmbeddingModelIT.java @@ -16,6 +16,7 @@ class HuggingFaceEmbeddingModelIT { HuggingFaceEmbeddingModel model = HuggingFaceEmbeddingModel.builder() .accessToken(System.getenv("HF_API_KEY")) .modelId("sentence-transformers/all-MiniLM-L6-v2") + .waitForModel(true) .build(); @Test diff --git a/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiChatModelListenerIT.java b/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiChatModelListenerIT.java index 2bfd74a57..79a9fb9e2 100644 --- a/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiChatModelListenerIT.java +++ b/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiChatModelListenerIT.java @@ -3,23 +3,25 @@ package dev.langchain4j.model.vertexai; import dev.langchain4j.model.chat.ChatLanguageModel; import dev.langchain4j.model.chat.ChatModelListenerIT; import dev.langchain4j.model.chat.listener.ChatModelListener; +import org.junit.jupiter.api.AfterEach; import static java.util.Collections.singletonList; -public class VertexAiGeminiChatModelListenerIT extends ChatModelListenerIT { +class VertexAiGeminiChatModelListenerIT extends ChatModelListenerIT { + @Override protected ChatLanguageModel createModel(ChatModelListener listener) { return VertexAiGeminiChatModel.builder() - .project(System.getenv("GCP_PROJECT_ID")) - .location(System.getenv("GCP_LOCATION")) - .modelName(modelName()) - .temperature(temperature().floatValue()) - .topP(topP().floatValue()) - .maxOutputTokens(maxTokens()) - .listeners(singletonList(listener)) - .logRequests(true) - .logResponses(true) - .build(); + .project(System.getenv("GCP_PROJECT_ID")) + .location(System.getenv("GCP_LOCATION")) + .modelName(modelName()) + .temperature(temperature().floatValue()) + .topP(topP().floatValue()) + .maxOutputTokens(maxTokens()) + .listeners(singletonList(listener)) + .logRequests(true) + .logResponses(true) + .build(); } @Override @@ -35,17 +37,25 @@ public class VertexAiGeminiChatModelListenerIT extends ChatModelListenerIT { @Override protected ChatLanguageModel createFailingModel(ChatModelListener listener) { return VertexAiGeminiChatModel.builder() - .project(System.getenv("GCP_PROJECT_ID")) - .location(System.getenv("GCP_LOCATION")) - .modelName("banana") - .listeners(singletonList(listener)) - .logRequests(true) - .logResponses(true) - .build(); + .project(System.getenv("GCP_PROJECT_ID")) + .location(System.getenv("GCP_LOCATION")) + .modelName("banana") + .listeners(singletonList(listener)) + .logRequests(true) + .logResponses(true) + .build(); } @Override protected Class expectedExceptionClass() { return RuntimeException.class; } + + @AfterEach + void afterEach() throws InterruptedException { + String ciDelaySeconds = System.getenv("CI_DELAY_SECONDS_VERTEX_AI_GEMINI"); + if (ciDelaySeconds != null) { + Thread.sleep(Integer.parseInt(ciDelaySeconds) * 1000L); + } + } } diff --git a/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiStreamingChatModelListenerIT.java b/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiStreamingChatModelListenerIT.java index 8668db609..c96c41c85 100644 --- a/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiStreamingChatModelListenerIT.java +++ b/langchain4j-vertex-ai-gemini/src/test/java/dev/langchain4j/model/vertexai/VertexAiGeminiStreamingChatModelListenerIT.java @@ -4,23 +4,25 @@ import com.google.api.gax.rpc.NotFoundException; import dev.langchain4j.model.chat.StreamingChatLanguageModel; import dev.langchain4j.model.chat.StreamingChatModelListenerIT; import dev.langchain4j.model.chat.listener.ChatModelListener; +import org.junit.jupiter.api.AfterEach; import static java.util.Collections.singletonList; -public class VertexAiGeminiStreamingChatModelListenerIT extends StreamingChatModelListenerIT { +class VertexAiGeminiStreamingChatModelListenerIT extends StreamingChatModelListenerIT { + @Override protected StreamingChatLanguageModel createModel(ChatModelListener listener) { return VertexAiGeminiStreamingChatModel.builder() - .project(System.getenv("GCP_PROJECT_ID")) - .location(System.getenv("GCP_LOCATION")) - .modelName(modelName()) - .temperature(temperature().floatValue()) - .topP(topP().floatValue()) - .maxOutputTokens(maxTokens()) - .listeners(singletonList(listener)) - .logRequests(true) - .logResponses(true) - .build(); + .project(System.getenv("GCP_PROJECT_ID")) + .location(System.getenv("GCP_LOCATION")) + .modelName(modelName()) + .temperature(temperature().floatValue()) + .topP(topP().floatValue()) + .maxOutputTokens(maxTokens()) + .listeners(singletonList(listener)) + .logRequests(true) + .logResponses(true) + .build(); } @Override @@ -36,17 +38,26 @@ public class VertexAiGeminiStreamingChatModelListenerIT extends StreamingChatMod @Override protected StreamingChatLanguageModel createFailingModel(ChatModelListener listener) { return VertexAiGeminiStreamingChatModel.builder() - .project(System.getenv("GCP_PROJECT_ID")) - .location(System.getenv("GCP_LOCATION")) - .modelName("banana") - .listeners(singletonList(listener)) - .logRequests(true) - .logResponses(true) - .build(); + .project(System.getenv("GCP_PROJECT_ID")) + .location(System.getenv("GCP_LOCATION")) + .modelName("banana") + .listeners(singletonList(listener)) + .logRequests(true) + .logResponses(true) + .build(); } @Override protected Class expectedExceptionClass() { return NotFoundException.class; } + + + @AfterEach + void afterEach() throws InterruptedException { + String ciDelaySeconds = System.getenv("CI_DELAY_SECONDS_VERTEX_AI_GEMINI"); + if (ciDelaySeconds != null) { + Thread.sleep(Integer.parseInt(ciDelaySeconds) * 1000L); + } + } } diff --git a/langchain4j/src/test/java/dev/langchain4j/service/StreamingAiServicesWithToolsIT.java b/langchain4j/src/test/java/dev/langchain4j/service/StreamingAiServicesWithToolsIT.java index d7a1ceae3..925b8d155 100644 --- a/langchain4j/src/test/java/dev/langchain4j/service/StreamingAiServicesWithToolsIT.java +++ b/langchain4j/src/test/java/dev/langchain4j/service/StreamingAiServicesWithToolsIT.java @@ -248,7 +248,7 @@ class StreamingAiServicesWithToolsIT { .toolProvider(toolProvider) .build(); - String userMessage = "What are the amounts of transactions T001 and T002?"; + String userMessage = "What is the amounts of transactions T001?"; // when CompletableFuture> future = new CompletableFuture<>(); @@ -261,7 +261,7 @@ class StreamingAiServicesWithToolsIT { Response response = future.get(60, SECONDS); // then - assertThat(response.content().text()).contains("42", "57"); + assertThat(response.content().text()).contains("42"); // then verify(toolExecutor).execute(any(), any());