aranus-tech/chatbot

Plug-and-play Laravel chatbot package — Minara AI widget, Live Chat handover, and RAG Knowledge Base dashboard.

Maintainers

Package info

github.com/aranustech/plugin-chatbot-aranus

Language:Hack

pkg:composer/aranus-tech/chatbot

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-04-15 07:57 UTC

This package is not auto-updated.

Last update: 2026-05-09 01:15:33 UTC


README

Latest Version on Packagist Total Downloads License

Package Laravel untuk mengintegrasikan chatbot AI Minara, sistem Live Chat Handover ke admin, dan RAG Knowledge Base ke website Laravel mana saja secara plug-and-play.

Fitur

  • 🤖 Minara AI Widget: Chatbot cerdas berbasis AI yang siap membantu pengunjung website 24/7.
  • 👨‍💼 Human-in-the-Loop (Live Chat): Fitur oper alih percakapan dari AI ke Admin secara real-time menggunakan WebSocket.
  • 📚 RAG Knowledge Base: Latih AI Minara dengan mengunggah dokumen (PDF, TXT, Excel, Docx) langsung dari dashboard.
  • 🔍 Dataset Viewer: Pantau teks yang berhasil diekstraksi dan dipelajari oleh AI dari dokumen yang diunggah.
  • 📝 Advanced Chat Logs: Rekaman riwayat obrolan yang terpisah antara interaksi AI dan Admin dengan filter rentang tanggal.
  • 🔍 Dataset Viewer: Pantau konten teks yang berhasil diekstraksi dan dipelajari oleh AI.
  • 📝 Advanced Chat Logs: Riwayat percakapan lengkap yang dipisahkan antara interaksi AI dan Admin.
  • 🎨 UI Isolation: Menggunakan pre-compiled CSS sehingga tampilan chatbot tetap konsisten tanpa merusak desain website asli klien (tidak memerlukan Tailwind di aplikasi utama).---

Persyaratan

  • PHP ^8.1
  • Laravel ^10.0 | ^11.0 | ^12.0
  • Database MySQL / PostgreSQL / SQLite

Instalasi

1. Install via Composer

composer require aranus-tech/chatbot

2. Jalankan perintah install

Perintah ini menerbitkan file konfigurasi (config/chatbot.php) dan aset CSS/ikon ke folder public/vendor/chatbot:

php artisan chatbot:install

3. Jalankan migrasi

Package secara otomatis mendaftarkan 2 tabel yang dibutuhkan:

php artisan migrate

Konfigurasi

1. Environment variables (.env)

Tambahkan variabel berikut ke file .env project Anda:

# WebSocket AI dan Admin
CHATBOT_WS_URL="wss://aranus-aranus-chatbot-plugin.hf.space/ws/chat"
CHATBOT_ADMIN_WS_URL="wss://aranus-aranus-chatbot-plugin.hf.space/ws/admin"

# Endpoint upload dokumen ke AI server
CHATBOT_UPLOAD_URL="https://aranus-aranus-chatbot-plugin.hf.space/upload"

# Email yang menerima notifikasi saat pengunjung minta Live Chat
ADMIN_NOTIFICATION_EMAIL="admin@example.com"

2. Konfigurasi dashboard (config/chatbot.php)

Setelah chatbot:install, edit config/chatbot.php agar sesuai dengan struktur aplikasi Anda:

return [
    // Nama layout Blade utama aplikasi Anda
    // Halaman dashboard chatbot akan di-extend dari layout ini
    'layout' => 'layouts.app',

    // Prefix URL untuk semua halaman dashboard chatbot
    // Contoh: 'dashboard' -> /dashboard/chatlog, /dashboard/live-chat, dst.
    'prefix' => 'dashboard',

    // Middleware yang melindungi halaman dashboard chatbot
    'middleware' => ['web', 'auth'],
];

Penggunaan

Widget Chatbot (Frontend)

Tambahkan baris berikut ke layout utama website Anda (misalnya resources/views/layouts/app.blade.php):

<head>
    {{-- CSS widget chatbot --}}
    <link rel="stylesheet" href="{{ asset('vendor/chatbot/chatbot-ui.css') }}">
</head>

<body>
    {{-- Konten website Anda --}}

    {{-- Widget chatbot — letakkan sebelum </body> --}}
    @chatbot
</body>

Widget akan muncul sebagai tombol mengambang di pojok kanan bawah halaman.

Dashboard Admin

Package mendaftarkan rute dashboard secara otomatis berdasarkan prefix dan middleware di config/chatbot.php.

Tambahkan tautan berikut ke sidebar navigasi admin Anda:

<a href="{{ route('chatbot.index') }}">Chat Log</a>
<a href="{{ route('chatbot.livechat') }}">Live Chat</a>
<a href="{{ route('chatbot.kb') }}">Knowledge Base</a>
<a href="{{ route('chatbot.kb.dataset') }}">Dataset</a>

Daftar lengkap named routes:

Route Name Method URL (default prefix: dashboard) Deskripsi
chatbot.index GET /dashboard/chatlog Riwayat percakapan AI & Admin
chatbot.livechat GET /dashboard/live-chat Dashboard Live Chat admin
chatbot.kb GET /dashboard/knowledge-base Upload & kelola dokumen AI
chatbot.kb.upload POST /dashboard/knowledge-base/upload Upload dokumen
chatbot.kb.sync POST /dashboard/knowledge-base/sync Sinkronisasi ulang ke AI server
chatbot.kb.toggle POST /dashboard/knowledge-base/toggle/{id} Aktifkan/nonaktifkan dokumen
chatbot.kb.destroy DELETE /dashboard/knowledge-base/{id} Hapus dokumen
chatbot.kb.dataset GET /dashboard/knowledge-base/dataset Lihat teks hasil ekstraksi

Endpoint API publik (digunakan oleh widget secara internal):

Route Name Method URL Deskripsi
chatbot.store POST /aranus-chatbot/store-chat Simpan percakapan AI
chatbot.store.admin POST /aranus-chatbot/store-admin-chat Simpan percakapan admin
chatbot.notify.handover POST /aranus-chatbot/notify-admin-handover Kirim email notifikasi handover
chatbot.popular GET /aranus-chatbot/popular-questions Ambil pertanyaan populer

Kustomisasi Tampilan

Jika ingin mengubah tampilan halaman dashboard, publish view-nya terlebih dahulu:

php artisan vendor:publish --tag=chatbot-views

File view akan disalin ke resources/views/vendor/chatbot/. Setelah itu Anda bisa mengedit bebas tanpa mempengaruhi package aslinya.

Struktur Tabel Database

chat_records

Kolom Tipe Keterangan
id bigint Primary key
session_code string Kode sesi unik pengunjung
type enum('ai','admin') Jenis percakapan
client_message text Pesan dari pengunjung
ai_message text Balasan dari AI (nullable)
admin_message longtext JSON array percakapan admin (nullable)
waktu datetime Waktu percakapan

knowledge_documents

Kolom Tipe Keterangan
id bigint Primary key
title string Judul dokumen
original_name string Nama file asli
filename string Nama file tersimpan
file_path string Path di storage
file_size bigint Ukuran file (bytes)
file_type string Ekstensi file
content longtext Teks hasil ekstraksi AI (nullable)
status enum('active','inactive') Status aktif/nonaktif
sync_status enum('pending','synced','failed') Status sinkronisasi ke AI server
uploaded_by string Nama admin yang upload

Publish Aset Secara Manual

Jika perlu menerbitkan aset secara terpisah:

# Konfigurasi
php artisan vendor:publish --tag=chatbot-config

# Aset CSS & ikon (wajib untuk widget)
php artisan vendor:publish --tag=chatbot-assets

# View (opsional, untuk kustomisasi tampilan)
php artisan vendor:publish --tag=chatbot-views