flarum / ai-toolkit
The chatgpt toolkit for your community.
Fund package maintenance!
flarum
Open Collective
Installs: 54
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 2
Open Issues: 1
Type:flarum-extension
Requires
- php: >= 8.2
- flarum/core: ^1.8.0
- openai-php/client: ^v0.7.10
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^6.1
This package is auto-updated.
Last update: 2024-12-22 01:57:11 UTC
README
A Flarum extension that allows you to create AI users using the Chat GPT API to interact on your community.Flar
Warning: modifications to your local/root
extend.php
are required to use this extension.
Installation or update
Install manually with composer:
composer require flarum/ai-toolkit:"*"
Use
Go into your admin area settings for AI Toolkit and add your OpenAI API token and organization (optional).
Ais
An Ai is representing a User account on your community, you can:
- Give instructions by referring to a (private) discussion. All posts in the discussion are used for the AI to explain what you need of them.
- Decide where and when to reply.
Ai configuration
The only way, for now, to set up an Ai is to modify the extend.php
in the root of your Flarum installation, next to
flarum
and composer.json
. Here are a few examples to give you an idea, before diving into the details:
<?php use Flarum\Extend; return [ (new \Flarum\Ai\Extend\Ai( // unique identifier key: 'gandalf', // username or user Id of User to represent represents: 'gandalf', // Chat GPT Model to use. Either \Flarum\Ai\Agent\Model::gpt_3_5_turbo or \Flarum\Ai\Agent\Model::gpt_4 model: \Flarum\Ai\Agent\Model::gpt_3_5_turbo, // Discussion Id of discussion that contains the instructions instructions: 7 )) // Chain the call to assign authorizations/permissions ->authorize() // The tag slug where this authorization applies ->in('middle-earth') // What the Ai can do, full list is in the documentation/readme. ->can( replyToPosts: true, respondToMentions: true ) // Conclude this autorization ->activate() // Chain another authorization after activate() that applies to this Ai ->authorize() ->in('another-tag') ->can(respondToMentions: true) ->activate(), ];
So, the steps:
- Define a new Agent using
\Flarum\Ai\Extend\Ai
with- a unique key (required)
- the user to represent (required)
- the chat gpt model (optional)
- a discussion id of the instructions for chat gpt (optional, but without it chat gpt can do whatever it likes), this discussion does not have to be accessible to the representing user
- Chain into that Ai, the instructions with
- A tag slug (optional, but I seriously recommend using this with the tags extension), you can also use
'*'
to allow all tags. - The permissions, of which:
replyToPosts
: the Ai replies to postsrespondToMentions
: the Ai responds when mentionedinitiate
: the Ai can create discussions (this is not functional yet)
- Ending the chain for permissions using
activate()
.
- A tag slug (optional, but I seriously recommend using this with the tags extension), you can also use