An open API service indexing awesome lists of open source software.

https://github.com/l2nce/casibase

Domain knowledge database powered by ChatGPT, Casbin and Casdoor
https://github.com/l2nce/casibase

Last synced: 2 months ago
JSON representation

Domain knowledge database powered by ChatGPT, Casbin and Casdoor

Awesome Lists containing this project

README

        

📦⚡️ 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


Gitter

## 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](assets/0-Architecture-casibase.png)

## 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

```shell
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 **Organization**![1-Add-organization](assets/1-Add-organization.png)

- Configure information about the **Organization**![2-Configure-information-organization](assets/2-Configure-information-organization.png)

- Add a member to a newly created organization![3-Check-user](assets/3-Check-user.png)![4-Add-member-to-organization](assets/4-Add-member-to-organization.png)

- Configure member information (remember its **Name** as well as **Password**)![5-Configure-new-user](assets/5-Configure-new-user.png)

- Create a new **Application**![6-Add-application](assets/6-Add-application.png)

- Configuring **Application** Information (Remember **Name, ClientID** and **ClientSecret**. Change **RedirectURLs** to http://localhost:14000/callback)![7-Configure-new-application](assets/7-Configure-new-application.png)

### casibase configuration

#### Get the code

```shell
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

```ini
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`)

```ini
clientId =
clientSecret =
casdoorDbName = casdoor
casdoorOrganization = "casibase"
casdoorApplication = "app-casibase"
```

- #### Frontend (`casibase\web\src\Conf.js`)

```ini
export const AuthConfig = {
......
clientId: ,
......
};
```

#### Run casnode

- #### Backend (`casibase`)

```shell
go run main.go
```

- #### Frontend (`casibase\web`)

```shell
yarn install
yarn start
```

#### Preview

Access the login view via the following link:

```shell
http://localhost:13001
```

![8-Preview-base-wordsets](assets/8-Preview-base-wordsets.png)

![9-Preview-casibase-stores](assets/9-Preview-casibase-stores.png)

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