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