Vector Store ChromaDB 를 사용해보자
https://cookbook.chromadb.dev/running/running-chroma/#docker-compose-without-cloning-the-repo
version: '3.9'
networks:
net:
driver: bridge
services:
chromadb:
image: chromadb/chroma:0.5.11
volumes:
- ./chromadb:/chroma/chroma
environment:
- IS_PERSISTENT=TRUE
- PERSIST_DIRECTORY=/chroma/chroma # this is the default path, change it as needed
- ANONYMIZED_TELEMETRY=${ANONYMIZED_TELEMETRY:-TRUE}
ports:
- 8000:8000
networks:
- net
docker-compose 로 크로마 서버를 띄워준다.
http://localhost:8000/docs 인터페이스정의서를 확인
ChromaDB Admin (선택)
ChromaDB를 위한 정식 UI 도구는 아직 존재하지 않기 때문에 비공식 오픈소스 ChromaDB Admin 을 활용해보자.
https://github.com/flanker/chromadb-admin
Git Clone 후 실행


Spring AI 연동
// build.gradle
// chroma
implementation 'org.springframework.ai:spring-ai-chroma-store-spring-boot-starter'
# application.yml
spring:
ai:
vectorstore:
chroma:
client:
host: http://localhost
port: 8000
# 컬렉션 명
collection-name: ${COLLECTION_NAME}
# 데이터베이스 초기화
initialize-schema: true

테스트 데이터 작성
@Service
@RequiredArgsConstructor
@Slf4j
public class DocumentService {
private final VectorStore vectorStore;
@Value("classpath:templates/resource.txt")
private Resource resource;
public void save() {
TextReader reader = new TextReader(resource);
List<Document> documents = new TokenTextSplitter().split(reader.read());
vectorStore.add(documents);
}
}
'Database' 카테고리의 다른 글
| [MySQL] EXPAIN, ANALYZE (0) | 2024.08.22 |
|---|