[021] ChatGPT Framework

xF2 Add-on [021] ChatGPT Framework 1.5.0

No permission to download
Compatible XF Versions
  1. 2.0
  2. 2.1
  3. 2.2

Developer usage guide

Get the OpenAI API key
PHP:
$apiKey = \XF::options()->bsChatGptApiKey;

Get OpenAI API

PHP:
/** \Orhanerday\OpenAi\OpenAi $api */
$api = \XF::app()->container('chatGPT');

Get reply from ChatGPT

PHP:
use BS\ChatGPTBots\Response;

/** \Orhanerday\OpenAi\OpenAi $api */
$api = \XF::app()->container('chatGPT');

$messages = [
    ['role' => 'user', 'content' => 'Hello!']
];
$reply = Response::getReply(
    $api->chat([
        'model'             => 'gpt-3.5-turbo',
        'messages'          => $messages,
        'temperature'       => 1.0,
        'max_tokens'        => 420,
        'frequency_penalty' => 0,
        'presence_penalty'  => 0,
    ])
);

Message repository

fetchMessagesFromThread – Loads the context for the bot from the topic. Bot quotes are transformed into his messages for the correct context.

PHP:
public function fetchMessagesFromThread(
    Thread $thread,
    int $stopPosition = null, // Thread post position to which to load the context
    ?User $assistant = null, // Bot user to mark his messages in context
    bool $transformAssistantQuotesToMessages = true, // If false, bot message quote messages will not be transformed into his messages
    int $startPosition = null, // Thread post position from which to load the context
    bool $removeQuotesFromAssistantMessages = true // Removes user post quotes from bot posts
)


wrapMessage – Generates a message array, preparing content for the bot (removes unnecessary BB codes).


PHP:
public function wrapMessage(string $content, string $role = 'user'): array
 
/*
returns [
    'content' => $preparedContent,
    'role' => $role
]
*/


prepareContent – Prepare message content for the bot (removes unnecessary BB codes).
getQuotes – Parses quotes from the text, bringing it to a convenient form.

PHP:
public function getQuotes(
    string $text,
    int $userId = null, // filter quotes by user id
    int $postId = null, // filter quotes by post id
    string $postType = 'post' // post type in quotes
): array
/*
returns [
    [
        'post_id' => int|null,
        'user_id' => int|null,
        'content' => string|null, (quote content)
        'message' => string|null, (reply on quote, text which located below quote)
        'match'   => string (full quote match)
    ]
]
*/


removeQuotes – Remove quotes from the text. Can be remove quotes for specific posts or users.


PHP:
public function removeQuotes(
    string $text,
    int $userId = null,
    int $postId = null,
    string $postType = 'post'
): string
  • Options.png
    Options.png
    28.3 KB · Views: 127
  • Like
Reactions: krishakbondhu
Author
Admin
Size
123.8 KB
Extension
zip
Downloads
15
Views
2,209
First release
Last update

More resources from Admin

Latest updates

  1. 1.5.0

    Message repo: Ability to fetch comments from profile post
  2. 1.4.0

    Stream replies support (Will be updated in dev guide later)

Similar resources

[021] Fools Day with ChatGPT Admin
Tools to prank users on April 1 based on ChatGPT.
[021] Payment provider tax Admin
Adds the ability to set up an additional commission for each payment profile.
[021] Post as user Admin
Allows you to post answers on behalf of other users.
[021] Real time alerts Admin
Provides real-time display of alerts to users.
731Threads
2,286Messages
63,731Members
anythingyouwishLatest member
Back