Saltar al contenido principal

Descripción general

Casibase es un software de código abierto para bases de datos de conocimiento de dominio, mensajería instantánea y foros impulsado por ChatGPT.

Características de Casibase

  1. Desarrollado en Golang con una arquitectura de front-end y back-end separados, Casibase admite alta concurrencia, ofrece una interfaz de administración basada en web y admite múltiples idiomas (chino, inglés).

  2. Casibase admite inicio de sesión a través de aplicaciones de terceros como GitHub, Google, QQ, WeChat, etc., y la extensión de inicios de sesión de terceros a través de plugins.

  3. Gestión del conocimiento basada en incrustaciones e ingeniería de prompts, Casibase admite métodos de incrustación y modelos de lenguaje personalizables.

  4. Casibase se integra con sistemas existentes a través de sincronización de bases de datos, permitiendo a los usuarios realizar una transición fluida a Casibase.

  5. Casibase admite las principales bases de datos: MySQL, PostgreSQL, SQL Server, etc., y la extensión de nuevas bases de datos a través de plugins.

  6. Casibase es una potente herramienta de gestión de activos que permite conectarse fácilmente a activos a través de protocolos RDP, VNC y SSH, gestionando eficientemente las conexiones remotas a máquinas.

  7. La función de auditoría de registros de seguridad de Casibase le permite rastrear y monitorear fácilmente las conexiones remotas, registrando en detalle la hora de inicio de la conexión, la duración y otros detalles relevantes, mientras captura y analiza los registros de API de las operaciones de Casdoor, mejorando la seguridad y la transparencia operativa.

  8. Casibase admite la gestión de bases de datos. La función de gestión de bases de datos de Casibase le permite conectar, gestionar y organizar fácilmente bases de datos, al tiempo que controla el acceso, simplificando la gestión de usuarios y la autorización de recursos de bases de datos.

Cómo funciona

Paso 0 (Conocimiento previo)

El proceso de recuperación de conocimiento en Casibase se basa en incrustaciones e ingeniería de prompts, por lo que se recomienda encarecidamente familiarizarse brevemente con el funcionamiento de las incrustaciones. Aquí hay una introducción a las incrustaciones.

embedding

Paso 1 (Importación de conocimiento)

Para comenzar con Casibase, los usuarios deben importar conocimiento y crear una base de datos de conocimiento de dominio siguiendo estos pasos:

  1. Configuración del almacenamiento: En el panel de control de Casibase, los usuarios primero deben configurar los ajustes de almacenamiento. Esto implica especificar el sistema de almacenamiento para archivos relacionados con el conocimiento (documentos, imágenes o cualquier otro dato relevante). Los usuarios pueden elegir entre varias opciones de almacenamiento según sus preferencias y necesidades.

  2. Carga de archivos al almacenamiento: Una vez configurado el almacenamiento, los usuarios pueden cargar archivos que contengan conocimiento de dominio al sistema de almacenamiento configurado. Estos archivos pueden ser de diversos formatos, como documentos de texto, imágenes o archivos de datos estructurados (como CSV o JSON).

  3. Selección del método de incrustación para la generación de conocimiento: Después de cargar los archivos, los usuarios pueden seleccionar el método de incrustación para generar conocimiento y sus vectores correspondientes. Las incrustaciones son representaciones numéricas de contenido textual o visual que facilitan la búsqueda eficiente de similitud y el análisis de datos.

consejo

¿Cómo se incrusta el conocimiento?

  • Para datos textuales: los usuarios pueden elegir varios métodos de incrustación, como Word2Vec, GloVe o BERT, para transformar el conocimiento textual en vectores significativos.

  • Para datos visuales: si los archivos cargados contienen imágenes o contenido visual, los usuarios pueden elegir técnicas de incrustación de imágenes, como la extracción de características basada en CNN, para crear vectores representativos.

  • Más métodos próximamente...

Siguiendo estos pasos, los usuarios pueden poblar su base de datos de conocimiento de dominio con información relevante e incrustaciones correspondientes que se utilizarán para la búsqueda, agrupación y recuperación eficiente del conocimiento en Casibase. El proceso de incrustación permite al sistema comprender el contexto y las relaciones entre diferentes fragmentos de conocimiento, permitiendo una gestión y exploración del conocimiento más eficiente e informativa.

Paso 2 (Recuperación de conocimiento)

Después de importar su conocimiento de dominio, Casibase lo transforma en vectores y almacena estos vectores en una base de datos vectorial. Esta representación vectorial activa potentes funcionalidades como búsqueda de similitud y recuperación eficiente de información relevante. Puede encontrar rápidamente datos relevantes basados en el contexto o contenido, realizar consultas avanzadas y descubrir información valiosa en su conocimiento de dominio.

Paso 3 (Construcción del prompt)

Casibase realiza una búsqueda de similitud entre los vectores de conocimiento almacenados para encontrar las mejores coincidencias con la consulta del usuario. Utilizando los resultados de la búsqueda, crea una plantilla de prompt para el modelo de lenguaje para formular una pregunta específica. Esto asegura respuestas precisas y contextualmente relevantes basadas en el conocimiento de dominio en Casibase.

Paso 4 (Logro del objetivo)

En esta etapa, utilizando Casibase, ha logrado obtener con éxito el conocimiento que necesita. Al transformar innovadoramente el conocimiento de dominio en vectores y combinarlo con potentes modelos de lenguaje como ChatGPT, Casibase proporciona respuestas precisas y relevantes a sus consultas. Esto le permite acceder y utilizar eficientemente información específica de dominio almacenada en Casibase, satisfaciendo fácilmente sus necesidades de conocimiento.

Paso 5 (Ajuste opcional)

Si encuentra que los resultados no son completamente satisfactorios, puede intentar obtener mejores resultados mediante:

  • Ajuste de los parámetros del modelo de lenguaje

  • Formulación de múltiples preguntas

  • Optimización de los archivos originales

Al aprovechar estas opciones de ajuste, puede mejorar la eficiencia de la gestión del conocimiento en Casibase, asegurando un mejor alineamiento del sistema con sus objetivos y proporcionando información más precisa e informativa.

Pistas

Otros métodos para optimizar los resultados (pueden requerir cambios en el código fuente):

  • Actualización de los resultados de incrustación: mejora de la representación del conocimiento mediante el ajuste de los resultados de incrustación para el conocimiento de dominio.

  • Modificación de las plantillas de prompt: personalizando los prompts, puede obtener respuestas más precisas del modelo de lenguaje.

  • Exploración de diferentes modelos de lenguaje: pruebe diferentes modelos para encontrar el más adecuado para sus necesidades de generación de respuestas.

Demostración en línea

Sitios de solo lectura (cualquier operación de modificación fallará)

Sitios escriturables (los datos originales se restauran cada 5 minutos)

Inicio de sesión del administrador global:

  • Usuario: admin
  • Contraseña: 123

Arquitectura

Casibase consta de 2 partes:

NombreDescripciónLenguajeCódigo fuente
lado del clienteInterfaz de usuario de la aplicación CasibaseJavaScript y Reacthttps://github.com/casibase/casibase/tree/master/web
lado del servidorLógica del lado del servidor y API de CasibaseGolang y Beego y MySQLhttps://github.com/casibase/casibase

Architecture

Modelos soportados

Modelos de lenguaje

ModeloSubtiposEnlace
OpenAIgpt-4-32k-0613, gpt-4-32k-0314, gpt-4-32k, gpt-4-0613, gpt-4-0314, gpt-4, gpt-3.5-turbo-0613, gpt-3.5-turbo-0301, gpt-3.5-turbo-16k, gpt-3.5-turbo-16k-0613, gpt-3.5-turbo, text-davinci-003, text-davinci-002, text-curie-001, text-babbage-001, text-ada-001, text-davinci-001, davinci-instruct-beta, davinci, curie-instruct-beta, curie, ada, babbageOpenAI
Hugging Facemeta-llama/Llama-2-7b, tiiuae/falcon-180B, bigscience/bloom, gpt2, baichuan-inc/Baichuan2-13B-Chat, THUDM/chatglm2-6bHugging Face
Claudeclaude-2, claude-v1, claude-v1-100k, claude-instant-v1, claude-instant-v1-100k, claude-v1.3, claude-v1.3-100k, claude-v1.2, claude-v1.0, claude-instant-v1.1, claude-instant-v1.1-100k, claude-instant-v1.0Claude
OpenRoutergoogle/palm-2-codechat-bison, google/palm-2-chat-bison, openai/gpt-3.5-turbo, openai/gpt-3.5-turbo-16k, openai/gpt-4, openai/gpt-4-32k, anthropic/claude-2, anthropic/claude-instant-v1, meta-llama/llama-2-13b-chat, meta-llama/llama-2-70b-chat, palm-2-codechat-bison, palm-2-chat-bison, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k, claude-2, claude-instant-v1, llama-2-13b-chat, llama-2-70b-chatOpenRouter
ErnieERNIE-Bot, ERNIE-Bot-turbo, BLOOMZ-7B, Llama-2Ernie
iFlytekspark-v1.5, spark-v2.0iFlytek
ChatGLMchatglm2-6bChatGLM
MiniMaxabab5-chatMiniMax
entorno localmodelo personalizadoLocal Computer

Modelos de incrustación

ModeloSubtiposEnlace
OpenAIAdaSimilarity, BabbageSimilarity, CurieSimilarity, DavinciSimilarity, AdaSearchDocument, AdaSearchQuery, BabbageSearchDocument, BabbageSearchQuery, CurieSearchDocument, CurieSearchQuery, DavinciSearchDocument, DavinciSearchQuery, AdaCodeSearchCode, AdaCodeSearchText, BabbageCodeSearchCode, BabbageCodeSearchText, AdaEmbeddingV2OpenAI
Hugging Facesentence-transformers/all-MiniLM-L6-v2Hugging Face
Cohereembed-english-v2.0, embed-english-light-v2.0, embed-multilingual-v2.0Cohere
ErniepredeterminadoErnie
entorno localembedding personalizadoLocal Computer