메인 콘텐츠로 건너뛰기

핵심 개념

Casibase 사용자는 최소한 4가지 핵심 개념에 익숙해야 합니다: Provider(제공자), Storage(스토리지), Chat(채팅) 및 Vector(벡터).

제공자(Providers)

제공자는 Casibase의 핵심 기둥으로, 기본 서비스를 제공하고 외부 시스템과 통합됩니다. Provider 클래스의 정의는 다음과 같습니다:

type Provider struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`

DisplayName string `xorm:"varchar(100)" json:"displayName"`
Category string `xorm:"varchar(100)" json:"category"`
Type string `xorm:"varchar(100)" json:"type"`
ClientId string `xorm:"varchar(100)" json:"clientId"`
ClientSecret string `xorm:"varchar(2000)" json:"clientSecret"`
ProviderUrl string `xorm:"varchar(200)" json:"providerUrl"`
}

Casibase에는 두 가지 주요 유형의 제공자가 있습니다:

  • 스토리지 제공자(Storage Providers). 스토리지 제공자는 Casibase에서 데이터 저장 및 검색을 담당합니다. 다음을 포함한 여러 스토리지 옵션을 지원합니다:

    • 아마존 웹 서비스
    • 애저
    • 로컬 파일 시스템
  • AI 제공자(AI Providers). AI 제공자는 Casibase에서 AI 관련 작업 및 서비스를 처리합니다. 다음을 포함한 다양한 AI 모델 및 기술을 지원합니다:

    • 오픈에이아이
    • 챗GLM
    • 인턴LM

벡터(Vectors)

Casibase의 벡터는 다양한 유형의 데이터에 대한 숫자 표현을 나타냅니다. 이러한 벡터는 정보의 효율적인 처리와 분석을 가능하게 합니다. 사용 가능한 벡터 유형에는 다음이 포함됩니다:

  • 텍스트 벡터
  • 이미지 벡터
  • ... (기타 벡터 유형)

Vector 클래스의 정의는 다음과 같습니다:

type Vector struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`

DisplayName string `xorm:"varchar(100)" json:"displayName"`
Store string `xorm:"varchar(100)" json:"store"`
File string `xorm:"varchar(100)" json:"file"`
Text string `xorm:"mediumtext" json:"text"`
Data []float64 `xorm:"mediumtext" json:"data"`
}

채팅(Chats)

채팅은 Casibase에서 사용자와 AI 모델 간의 상호작용 커뮤니케이션의 핵심입니다. 세 가지 기본 구성 요소로 이루어져 있습니다:

  • 질문(Question): 정보나 도움을 구하는 사용자의 입력 또는 쿼리.
  • 쿼리 프롬프트(Query Prompt): AI 모델 처리를 위해 준비된 사용자 질문의 형식화된 버전.
  • 답변(Answer): 사용자 질문에 대한 AI 생성 응답으로, 관련 정보나 솔루션을 제공합니다.

Chat 클래스의 정의는 다음과 같습니다:

type Chat struct {
Owner string `xorm:"varchar(100) notnull pk" json:"owner"`
Name string `xorm:"varchar(100) notnull pk" json:"name"`
CreatedTime string `xorm:"varchar(100)" json:"createdTime"`
UpdatedTime string `xorm:"varchar(100)" json:"updatedTime"`

DisplayName string `xorm:"varchar(100)" json:"displayName"`
Category string `xorm:"varchar(100)" json:"category"`
Type string `xorm:"varchar(100)" json:"type"`
User1 string `xorm:"varchar(100)" json:"user1"`
User2 string `xorm:"varchar(100)" json:"user2"`
Users []string `xorm:"varchar(100)" json:"users"`
MessageCount int `json:"messageCount"`
}

임베딩(Embedding)

임베딩은 텍스트 및 이미지와 같은 다양한 유형의 데이터를 밀집된 벡터 표현으로 변환하는 과정입니다. 이 단계는 Casibase에서 효율적인 데이터 처리 및 분석에 중요합니다.

  • 임베딩을 통해 채팅의 질문과 스토리지의 지식 파일이 다음 지식 검색에 사용될 벡터로 변환됩니다.

  • Casibase의 기본 임베딩 방법은 OpenAI에서 제공하며 분당 최대 세 번 호출할 수 있습니다. 임베딩 및 추가 처리를 용이하게 하기 위해 지식 파일 간의 결합을 최소화하는 것이 좋습니다.