casibase/README.md

6.1 KiB
Raw Blame History

📦 Casibase

A pioneering customizable open-source Domain Knowledge Base (DKB) powered by ChatGPT, Casbin, and Casdoor.

semantic-release docker pull casbin/casibase GitHub Workflow Status (branch) GitHub Release Docker Image Version (latest semver)

Go Report Card license GitHub issues GitHub stars GitHub forks Crowdin Discord

Architecture

casibase contains 4 parts:

Name Description Language
Frontend User interface for the casibase application JavaScript + React
Backend Server-side logic and API for casibase Golang + Beego + Python + Flask + MySQL
AI Model Artificial intelligence model Python + OpenAI
Knowledge Base Storage for casibase application domain knowledge pgvector

0-Architecture-casibase

Demo Installation

casibase uses Casdoor to manage members. So you need to create an organization and an application for casibase in a Casdoor instance.

Casdoor configuration

git clone https://github.com/casdoor/casdoor.git

refer to: https://casdoor.org/docs/basic/server-installation

Follow these steps to setup Casdoor for casibase:

  • Create an Organization1-Add-organization

  • Configure information about the Organization2-Configure-information-organization

  • Add a member to a newly created organization3-Check-user4-Add-member-to-organization

  • Configure member information (remember its Name as well as Password)5-Configure-new-user

  • Create a new Application6-Add-application

  • Configuring Application Information (Remember Name, ClientID and ClientSecret. Change RedirectURLs to http://localhost:14000/callback) 7-Configure-new-application

casibase configuration

Get the code

git clone https://github.com/casbin/casibase.git

Setup database

casibase will store its users, nodes and topics informations in a MySQL database named: casibase, will create it if not existed. The DB connection string can be specified at: https://github.com/casbin/casibase/blob/master/conf/app.conf

dataSourceName = root:123@tcp(localhost:3306)/

Casnode uses XORM to connect to DB, so all DBs supported by XORM can also be used.

Custom config

  • Backend (casibase\conf\app.conf)

    casdoorEndpoint =  <Your_Casdoor_endpoint>
    clientId = <Your_clientId_in_Casdoor_configuration>
    clientSecret = <Your_clientSecret_in_Casdoor_configuration>
    casdoorOrganization = "casibase"
    casdoorApplication = "app-casibase"
    
  • Frontend (casibase\web\src\Conf.js)

    export const AuthConfig = {
      ......
      clientId: <Your_clientId_in_Casdoor_configuration>,
      ......
    };
    

Run casnode

  • Backend (casibase)

    go run main.go
    
  • Frontend (casibase\web)

    yarn install
    yarn start
    

Preview

Access the login view via the following link:

http://localhost:13001

8-Preview-base-wordsets

9-Preview-casibase-stores

The casibase demo is shown above, and in the future users can upload various knowledge files, wordsets, and factorsets to achieve a customized domain knowledge base.