updated_at: 2025-07-13 17:51

Chroma 설치 및 실행

테스트 환경

windows의 docker.desktop 사용

설치

docker pull ghcr.io/chroma-core/chroma

기존 이미지를 지우고 다시 하려면

docker ps
docker stop [CONTAINER ID]
docker rm [CONTAINER ID]

Chroma 실행

chroma run

Docker를 사용 중이라면:

docker run -d --name chroma-server -p 8000:8000 ghcr.io/chroma-core/chroma
docker run -d --name chroma-server -p 8000:8000 -v ~/chroma_data:/data ghcr.io/chroma-core/chroma // 환경변수(볼륨마운트 추가)
docker run -d --name chroma-server -p 8000:8000 -e CHROMA_SERVER_CORS_ALLOW_ORIGINS="*" ghcr.io/chroma-core/chroma // cors 대처용:  웹브라우저에 구현시 (nodejs에서는 cors 처리 안해도 됢)

  • error
configured to allow requests from the current origin using the CHROMA_SERVER_CORS_ALLOW_ORIGINS environment variable.

Chroma 서버가 실행 중인지 확인:

아래 페이지가 뜨면 정상적으로 서비스가 실행 중인 것이다.

curl -I http://localhost:8000/docs
http://localhost:8000/docs/ //api 문서 설명

http://localhost:8000/api/v2/heartbeat // 최근 버전
http://localhost:8000/api/v1/heartbeat // 최근 버전

사용법

nodejs 에서 사용법을 설명드리려고 합니다.
보통 2가지 방식으로 사용하는 하나는 ChromaClient 직접 호출방식과 api 를 이용한 호출 방식이 있습니다. ChromaClient 직접 호출시 cors 문제가 있지만 ChromaClient이 더 직관적입니다.

1. ChromaClient 를 이용하는 방법

  • host가 명시 되지 않으면 기본적으로 "http://localhost:8000" 바라볾
  • ~~const client = new ChromaClient({ host: 'http://localhost:8000' });~~
import { ChromaClient } from 'chromadb';

const client = new ChromaClient(); // localhost:8000' 혹은 127.0.0.1:8000' 일경우 이 부분 생략
// const client = new ChromaClient({ url: 'http://localhost:8000' }); // 원격 서버일 경우

async function testChromaConnection() {
  try {
    const collections = await client.listCollections();
    console.log('✅ 연결 성공! 현재 컬렉션 목록:', collections);
  } catch (err) {
    console.error('❌ 연결 실패:', err.message);
  }
}

testChromaConnection();

2. api를 이용하는 방법

import axios from 'axios';

const chroma = axios.create({
  baseURL: 'http://localhost:8000',
  headers: {
    'Content-Type': 'application/json'
  }
});

async function test() {
  try {
    const res = await chroma.get('/api/v2/heartbeat');
    console.log('✅ 서버 응답:', res.data);
  } catch (err) {
    console.error('❌ 연결 실패:', err.message);
  }
}

test();
평점을 남겨주세요
평점 : 2.5
총 투표수 : 1

질문 및 답글