🚀 PIG AI 新版来袭:AI能力全面升级! 点击了解一下?
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-oracle-vectordb</artifactId>
<version>${spring-ai.version}</version>
</dependency>
# Oracle 向量数据库配置
spring.ai.oracle.vectordb.enabled=true
spring.ai.oracle.vectordb.url=jdbc:oracle:thin:@localhost:1521:XE
spring.ai.oracle.vectordb.username=system
spring.ai.oracle.vectordb.password=oracle
spring.ai.oracle.vectordb.table-name=vectors
@Service
public class OracleVectorService {
private final OracleVectorClient vectorClient;
public OracleVectorService(OracleVectorClient vectorClient) {
this.vectorClient = vectorClient;
}
public void storeVector(String id, float[] vector, Map<String, Object> metadata) {
vectorClient.store(id, vector, metadata);
}
public List<SearchResult> searchSimilar(float[] queryVector, int k) {
return vectorClient.search(queryVector, k);
}
}
@Configuration
public class OracleVectorStorageConfig {
@Bean
public VectorStorage oracleVectorStorage(OracleVectorProperties properties) {
return new OracleVectorStorage(properties);
}
}
@Configuration
public class OracleSimilaritySearchConfig {
@Bean
public SimilaritySearch oracleSimilaritySearch(OracleVectorProperties properties) {
return new OracleSimilaritySearch(properties);
}
}
@Service
public class TableService {
private final OracleVectorClient vectorClient;
public void createTable(String name, int dimension) {
vectorClient.createTable(name, dimension);
}
public void dropTable(String name) {
vectorClient.dropTable(name);
}
}
@Configuration
public class TableConfig {
@Bean
public TableConfig tableConfig() {
return TableConfig.builder()
.name("custom_vectors")
.vectorColumn("vector")
.metadataColumns(Arrays.asList("title", "content"))
.build();
}
}
@Configuration
public class IndexConfig {
@Bean
public IndexConfig indexConfig() {
return IndexConfig.builder()
.name("vector_idx")
.type(IndexType.VECTOR)
.dimension(1536)
.build();
}
}
@Configuration
public class SecurityConfig {
@Bean
public SecurityConfig securityConfig() {
return SecurityConfig.builder()
.encryptionEnabled(true)
.auditEnabled(true)
.build();
}
}
management.endpoints.web.exposure.include=oracle-vectordb
management.endpoint.oracle-vectordb.enabled=true