메인 콘텐츠로 건너뛰기

개요

이 가이드에서는 다음을 수행합니다:
  1. 지식 등록
  2. 시맨틱 검색 실행
  3. Chat API로 RAG 구축

설정

1

SDK 설치

아직 설치하지 않았다면 SDK를 설치하세요.
npm install @neuradex/sdk
2

클라이언트 초기화

import { NdxClient } from '@neuradex/sdk';

const client = new NdxClient({
  apiKey: process.env.NEURADEX_API_KEY,
  projectId: process.env.NEURADEX_PROJECT_ID,
});

지식 등록

지식은 제목, 내용, 태그로 구성됩니다.
// 단일 지식 생성
const knowledge = await client.knowledge.create({
  title: '반품 정책',
  content: `
    상품 도착 후 30일 이내에 반품 가능합니다.

    반품 조건:
    - 미사용·미개봉 상태여야 합니다
    - 태그가 부착된 상태여야 합니다
    - 영수증 또는 주문 확인 이메일이 필요합니다

    반품 절차:
    1. 마이페이지에서 반품 신청
    2. 반송용 라벨 인쇄
    3. 상품 포장 후 발송
  `,
  tags: ['반품', '정책', '고객지원'],
});

console.log(`생성 완료: ${knowledge.id}`);

일괄 등록

여러 지식을 한 번에 등록할 수도 있습니다.
const items = await client.knowledge.bulkCreate([
  {
    title: '배송 안내',
    content: '일반 배송은 3-5영업일 소요됩니다. 빠른 배송은 익일 배송입니다.',
    tags: ['배송', 'FAQ'],
  },
  {
    title: '결제 수단',
    content: '신용카드, 계좌이체, 편의점 결제를 지원합니다.',
    tags: ['결제', 'FAQ'],
  },
]);

시맨틱 검색

등록된 지식을 자연어로 검색할 수 있습니다.
// 검색 실행
const results = await client.knowledge.search('상품을 반품하고 싶어요');

// 결과 표시
for (const result of results) {
  console.log(`${result.title} (점수: ${result.score})`);
  console.log(`  요약: ${result.summary}`);
  console.log(`  태그: ${result.tags.join(', ')}`);
}
search()는 제목, 태그, 점수만 반환합니다. 전체 내용이 필요하면 get()을 사용하세요.

상세 정보 가져오기

검색 결과에서 상세 정보를 가져옵니다.
// 가장 관련성 높은 결과의 상세 정보 가져오기
if (results.length > 0) {
  const detail = await client.knowledge.get(results[0].id);

  console.log(detail.title);
  console.log(detail.content);

  // 관련 지식 확인
  for (const connected of detail.connectedKnowledge) {
    console.log(`관련: ${connected.title}`);
  }
}

Chat API로 RAG 구축

**Chat API**를 사용하면 컨텍스트 가져오기, 프롬프트 구성, LLM 호출을 한 단계로 실현할 수 있습니다.
Chat API는 컨텍스트 가져오기, 프롬프트 구성, LLM 호출을 내부에서 자동 처리합니다. memory: { enabled: true }만 지정하면 지식 베이스를 활용한 RAG가 완성됩니다.
import { NdxClient } from '@neuradex/sdk';

const client = new NdxClient({
  apiKey: process.env.NEURADEX_API_KEY,
  projectId: process.env.NEURADEX_PROJECT_ID,
});

// 이것만으로 RAG 완성 — Memory 가져오기도 프롬프트 구성도 SDK가 자동 처리
const stream = client.chat.create({
  model: 'gpt-4o',
  messages: [
    {
      role: 'system',
      content: '당신은 고객 지원 어시스턴트입니다.',
    },
    {
      role: 'user',
      content: '반품하려면 어떻게 해야 하나요?',
    },
  ],
  memory: { enabled: true, maxTokens: 4000, includeEpisodes: true },
});

// 스트리밍으로 즉시 표시
for await (const chunk of stream.textStream) {
  process.stdout.write(chunk);
}

다음 단계

Chat API

메모리 기반 Chat Completions

Knowledge API

지식 작업 상세 가이드

Memory API

컨텍스트 조립 상세 가이드