@@ -17,15 +17,22 @@ package org.springframework.ai.autoconfigure.vectorstore.mongo;
|
||||
|
||||
import org.springframework.ai.embedding.EmbeddingModel;
|
||||
import org.springframework.ai.vectorstore.MongoDBAtlasVectorStore;
|
||||
import org.springframework.beans.BeansException;
|
||||
import org.springframework.beans.factory.config.BeanPostProcessor;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
|
||||
import org.springframework.util.MimeType;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* @author Eddú Meléndez
|
||||
* @author Christian Tzolov
|
||||
@@ -57,4 +64,38 @@ public class MongoDBAtlasVectorStoreAutoConfiguration {
|
||||
return new MongoDBAtlasVectorStore(mongoTemplate, embeddingModel, config, properties.isInitializeSchema());
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Converter<MimeType, String> mimeTypeToStringConverter() {
|
||||
return new Converter<MimeType, String>() {
|
||||
@Override
|
||||
public String convert(MimeType source) {
|
||||
return source.toString();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Converter<String, MimeType> stringToMimeTypeConverter() {
|
||||
return new Converter<String, MimeType>() {
|
||||
@Override
|
||||
public MimeType convert(String source) {
|
||||
return MimeType.valueOf(source);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
public BeanPostProcessor mongoCustomConversionsPostProcessor() {
|
||||
return new BeanPostProcessor() {
|
||||
@Override
|
||||
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
|
||||
if (bean instanceof MongoCustomConversions) {
|
||||
return new MongoCustomConversions(
|
||||
Arrays.asList(mimeTypeToStringConverter(), stringToMimeTypeConverter()));
|
||||
}
|
||||
return bean;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.springframework.ai.autoconfigure.vectorstore.mongo;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration;
|
||||
import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration;
|
||||
@@ -43,11 +42,10 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
* @author Eddú Meléndez
|
||||
*/
|
||||
@Testcontainers
|
||||
@Disabled("Disabled due to https://github.com/spring-projects/spring-ai/issues/698")
|
||||
class MongoDBAtlasVectorStoreAutoConfigurationIT {
|
||||
|
||||
@Container
|
||||
static GenericContainer<?> mongo = new GenericContainer<>("mongodb/atlas:v1.15.1").withPrivilegedMode(true)
|
||||
static GenericContainer<?> mongo = new GenericContainer<>("mongodb/atlas:v1.24.0").withPrivilegedMode(true)
|
||||
.withCommand("/bin/bash", "-c",
|
||||
"atlas deployments setup local-test --type local --port 27778 --bindIpAll --username root --password root --force && tail -f /dev/null")
|
||||
.withExposedPorts(27778)
|
||||
|
||||
Reference in New Issue
Block a user