|
18 | 18 | import io.micrometer.common.KeyValue;
|
19 | 19 | import io.micrometer.observation.tck.TestObservationRegistry;
|
20 | 20 | import io.micrometer.observation.tck.TestObservationRegistryAssert;
|
| 21 | + |
| 22 | +import org.apache.commons.logging.Log; |
| 23 | +import org.apache.commons.logging.LogFactory; |
| 24 | +import org.junit.jupiter.api.BeforeAll; |
21 | 25 | import org.junit.jupiter.api.Test;
|
22 | 26 | import org.junit.jupiter.api.condition.DisabledIf;
|
23 | 27 | import org.springframework.ai.embedding.EmbeddingRequest;
|
24 | 28 | import org.springframework.ai.embedding.EmbeddingResponse;
|
25 | 29 | import org.springframework.ai.embedding.EmbeddingResponseMetadata;
|
26 | 30 | import org.springframework.ai.embedding.observation.DefaultEmbeddingModelObservationConvention;
|
| 31 | +import org.springframework.ai.embedding.observation.EmbeddingModelObservationDocumentation.HighCardinalityKeyNames; |
| 32 | +import org.springframework.ai.embedding.observation.EmbeddingModelObservationDocumentation.LowCardinalityKeyNames; |
27 | 33 | import org.springframework.ai.observation.conventions.AiOperationType;
|
28 | 34 | import org.springframework.ai.observation.conventions.AiProvider;
|
29 | 35 | import org.springframework.ai.ollama.api.OllamaApi;
|
| 36 | +import org.springframework.ai.ollama.api.OllamaApiIT; |
30 | 37 | import org.springframework.ai.ollama.api.OllamaModel;
|
31 | 38 | import org.springframework.ai.ollama.api.OllamaOptions;
|
32 | 39 | import org.springframework.beans.factory.annotation.Autowired;
|
33 | 40 | import org.springframework.boot.SpringBootConfiguration;
|
34 | 41 | import org.springframework.boot.test.context.SpringBootTest;
|
35 | 42 | import org.springframework.context.annotation.Bean;
|
36 | 43 |
|
| 44 | +import java.io.IOException; |
37 | 45 | import java.util.List;
|
38 | 46 |
|
39 | 47 | import static org.assertj.core.api.Assertions.assertThat;
|
|
49 | 57 | @DisabledIf("isDisabled")
|
50 | 58 | public class OllamaEmbeddingModelObservationIT extends BaseOllamaIT {
|
51 | 59 |
|
| 60 | + private static final Log logger = LogFactory.getLog(OllamaApiIT.class); |
| 61 | + |
| 62 | + private static final String MODEL = OllamaModel.NOMIC_EMBED_TEXT.getName(); |
| 63 | + |
52 | 64 | @Autowired
|
53 | 65 | TestObservationRegistry observationRegistry;
|
54 | 66 |
|
55 | 67 | @Autowired
|
56 | 68 | OllamaEmbeddingModel embeddingModel;
|
57 | 69 |
|
| 70 | + static String baseUrl = "http://localhost:11434"; |
| 71 | + |
| 72 | + @BeforeAll |
| 73 | + public static void beforeAll() throws IOException, InterruptedException { |
| 74 | + logger.info("Start pulling the '" + MODEL + " ' generative ... would take several minutes ..."); |
| 75 | + ollamaContainer.execInContainer("ollama", "pull", MODEL); |
| 76 | + logger.info(MODEL + " pulling competed!"); |
| 77 | + |
| 78 | + baseUrl = "http://" + ollamaContainer.getHost() + ":" + ollamaContainer.getMappedPort(11434); |
| 79 | + } |
| 80 | + |
58 | 81 | @Test
|
59 | 82 | void observationForEmbeddingOperation() {
|
60 | 83 | var options = OllamaOptions.builder().withModel(OllamaModel.NOMIC_EMBED_TEXT.getName()).build();
|
@@ -98,7 +121,7 @@ public TestObservationRegistry observationRegistry() {
|
98 | 121 |
|
99 | 122 | @Bean
|
100 | 123 | public OllamaApi openAiApi() {
|
101 |
| - return new OllamaApi(); |
| 124 | + return new OllamaApi(baseUrl); |
102 | 125 | }
|
103 | 126 |
|
104 | 127 | @Bean
|
|
0 commit comments