Saltar al contenido principal

Conceptos fundamentales

Como usuario de Casibase, debe estar familiarizado al menos con 4 conceptos fundamentales: Provider (Proveedor), Storage (Almacenamiento), Chat (Conversación) y Vector (Vector).

Proveedores (Providers)

Los proveedores son el pilar central de Casibase, proporcionando servicios fundamentales e integrándose con sistemas externos. La definición de la clase Provider es la siguiente:

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"`
}
consejo

Hay dos tipos principales de proveedores en Casibase:

  • Proveedores de almacenamiento (Storage Providers). Los proveedores de almacenamiento son responsables del almacenamiento y recuperación de datos en Casibase. Admiten diversas opciones de almacenamiento, incluyendo:

    • AWS
    • Azure
    • Sistema de archivos local
  • Proveedores de IA (AI Providers). Los proveedores de IA son responsables de procesar tareas y servicios relacionados con la IA en Casibase. Admiten diversos modelos y tecnologías de IA, incluyendo:

    • OpenAI
    • ChatGLM
    • InternLM

Vectores (Vectors)

Los vectores en Casibase representan representaciones numéricas de diferentes tipos de datos. Estos vectores permiten un procesamiento y análisis eficientes de la información. Los tipos de vectores disponibles incluyen:

  • Vectores de texto
  • Vectores de imagen
  • ... (otros tipos de vectores)

La definición de la clase Vector es la siguiente:

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"`
}

Conversaciones (Chats)

Las conversaciones son el núcleo de la interacción entre usuarios y modelos de IA en Casibase. Se componen de tres elementos fundamentales:

  • Pregunta (Question): La entrada o consulta del usuario, buscando información o ayuda.
  • Consulta (Query Prompt): Versión formateada de la pregunta del usuario, preparada para el procesamiento por el modelo de IA.
  • Respuesta (Answer): Respuesta generada por la IA a la pregunta del usuario, proporcionando información relevante o soluciones.

La definición de la clase Chat es la siguiente:

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"`
}

Incrustación (Embedding)

La incrustación es el proceso de convertir varios tipos de datos (como texto e imágenes) en representaciones vectoriales densas. Este paso es crucial para el procesamiento y análisis eficientes de datos en Casibase.

consejo
  • A través de la incrustación, las preguntas en las conversaciones y los archivos de conocimiento en el almacenamiento se convertirán en vectores para el siguiente paso de búsqueda de conocimiento.

  • El método de incrustación predeterminado en Casibase es proporcionado por OpenAI y puede ser llamado un máximo de tres veces por minuto. Recomendamos minimizar el acoplamiento entre archivos de conocimiento para facilitar la incrustación y el procesamiento posterior.