borah / knowledge-base-laravel
Laravel wrapper for the Knowledge-Base API
Fund package maintenance!
BorahLabs
Requires
- php: ^8.1
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.16.4
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2025-03-11 12:42:22 UTC
README
This package is a Laravel wrapper for the Knowledge Base API. It will create and maintain a Knowledge Base for all the configured Eloquent models.
Installation
You can install the package via composer:
composer require borah/knowledge-base-laravel
You must publish the migrations:
php artisan vendor:publish --tag="knowledge-base-laravel-migrations"
After the migration has been published you can run them using php artisan migrate
.
Also, if you want, you can publish the config file with:
php artisan vendor:publish --tag="knowledge-base-laravel-config"
This is the contents of the published config file:
return [ 'connection' => [ 'host' => env('KNOWLEDGE_BASE_HOST', 'http://localhost:8100'), ], 'models' => [ 'knowledge_base_id' => \Borah\KnowledgeBase\Models\KnowledgeBaseId::class, ], ];
Requirements
This package is a wrapper for Knowledge Base API, so you need to have it running in order to use this package.
Usage
To use it, you need to add the Borah\KnowledgeBase\Traits\HasKnowledgeBase
trait to the models you want to add to the Knowledge Base. Also, these models should implement the Borah\KnowledgeBase\Contracts\Embeddable
interface.
For example:
<?php namespace App\Models; use Borah\KnowledgeBase\Contracts\Embeddable; use Borah\KnowledgeBase\DTO\KnowledgeEmbeddingText; use Borah\KnowledgeBase\Traits\BelongsToKnowledgeBase; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; class Post extends Model implements Embeddable { use HasFactory; use BelongsToKnowledgeBase; public function getEmbeddingsTexts(): KnowledgeEmbeddingText|array { return [ new KnowledgeEmbeddingText( text: $this->content, entity: class_basename($this), ), ]; } }
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Borah Digital Labs
Borah Digital Labs crafts web applications, open-source packages, and offers a team of full-stack solvers ready to tackle your next project. We have built a series of projects:
- CodeDocumentation: Automatic code documentation platform
- AutomaticDocs: One-time documentation for your projects
- Talkzy: A tool to summarize meetings
- Compass: An agent-driven tool to help manage companies more efficiently
- Prompt Token Counter: Simple tool to count tokens in prompts
- Sabor en la Oficina: Website + catering management platform
- Prompt Token Counter: Simple free tool to count tokens in prompts
- PDF to Markdown: Simple free tool to convert PDF files into Markdown format
We like to use Laravel for most of our projects and we love to tackle big, complicated problems. Feel free to reach out and we can have a virtual coffee!
License
The MIT License (MIT). Please see License File for more information.