해결된 질문
작성
·
59
0
개인 토이 프로젝트 진행중입니다. chroma db에 제가 저장하고 싶은 데이터를 저장하려하는데 mySQL과 같이 관계형 데이터베이스 형식으로 데이터 저장이 안되는지 궁금합니다.
첨부한 그림과 같은 데이터 구조인데, 회원에 따른 회원정보 임베딩 값을 크로마db에 저장하고 싶습니다. document_list에 회원정보를 list로 전달하고, ids를 회원 숫자 값으로 저장하려했는데 안되어서 질문 남깁니다
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
이건희님께서 Chroma DB와 관계형 데이터베이스 개념에 대해 궁금해 하시는 것 같아 도움을 드리겠습니다. Chroma DB는 기본적으로 벡터 데이터를 저장하고 검색하는 데 최적화된 데이터베이스입니다. 즉, 관계형 데이터베이스처럼 정형화된 테이블 구조를 제공하기보다는 벡터를 효율적으로 저장하고 검색할 수 있는 기능에 중점을 두고 있습니다.
회원 정보와 같은 데이터를 Chroma DB에 저장하고 검색하는 경우, 각 회원의 정보를 임베딩(벡터화)하여 이를 Chroma DB의 문서로 저장할 수 있습니다. 일반적인 접근 방식은 다음과 같습니다:
데이터 벡터화: 회원정보(예: 텍스트)를 임베딩을 통해 벡터로 변환합니다. 이는 언어 모델이나 특정 임베딩 모델을 활용할 수 있습니다.
Chroma DB 저장: 벡터화된 데이터를 Chroma DB에 저장합니다. 이때 각 레코드나 데이터 항목에 대한 식별자(ids)를 별도로 관리해야 합니다. Chroma DB의 document_list에 벡터화된 데이터와 해당 식별자를 함께 저장하는 방법으로 구현이 가능합니다.
검색: 저장된 벡터 데이터를 바탕으로 유사성을 검색할 수 있습니다. Chroma는 벡터 간 유사도를 계산하여 가장 유사한 데이터 항목을 반환하는 데 최적화되어 있습니다.
관계형 데이터베이스처럼 정형화된 테이블 구조가 아니라, 벡터 데이터를 중심으로 관리되어야 한다는 점을 염두에 두시기 바랍니다. 필요할 경우, metadata 필드를 활용하여 추가적인 속성을 저장할 수도 있습니다.
chroma에 벡터 데이터 저장하기 이 글에서는 Chroma를 활용하여 벡터 데이터를 저장하고 검색하는 방법을 자세히 설명합니다. 해당 링크를 참조하여 구체적인 코드 작성 사례를 확인하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
저장하는 것까지는 완료했습니다. 그런데 벡터DB가 임베딩 벡터 값을 그대로 저장하는 것이 아닌가요? 생성된 chroma 디렉토리에 들어가서 임베딩된 벡터 값을 그대로 꺼내서 활용하고 싶은데 값이 유니코드? 형식으로 저장되어있는 것 같아서요