1) Получите ключ API OpenAI
- Прежде чем использовать ChatGPT API Framework, вам необходимо получить ключ API от OpenAI. Вы можете получить свой ключ API, зарегистрировавшись на
OpenAI здесь
2) Инициализировать API OpenAI
- Платформа API ChatGPT предоставляет удобный способ инициализации API OpenAI. Для начала вы можете использовать следующий код:
PHP:
/** \Orhanerday\OpenAi\OpenAi $api */
$api = \XF::app()->container('chatGPT');
Этот код инициализирует API OpenAI и присваивает его переменной $api.
3) Получить ответ от ChatGPT
- Чтобы получить ответ от ChatGPT, вы можете использовать функцию Response::getReply(), предоставляемую ChatGPT API Framework. Вот пример фрагмента кода:
PHP:
use BS\ChatGPTBots\Response;
$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,
])
);
Этот код инициализирует массив сообщений для отправки в ChatGPT и использует функцию
chat() для получения ответа. Ответ возвращается как
$reply переменная.
4) Получите ответ от ChatGPT с ошибками регистрации
- Метод пытается получить ответ от API чата OpenAI, используя предоставленные параметры, и регистрирует любые ошибки, возникающие в процессе. Он возвращает ответ в случае успеха или сообщение об ошибке по умолчанию, если нет.
PHP:
use BS\ChatGPTBots\Response;
$messages = [
['role' => 'user', 'content' => 'Hello!']
];
$reply = Response::getReplyWithLogErrors(
$api->chat([
'model' => 'gpt-3.5-turbo',
'messages' => $messages,
'temperature' => 1.0,
'max_tokens' => 420,
'frequency_penalty' => 0,
'presence_penalty' => 0,
])
);
5) Хранилище сообщений \BS\ChatGPTBots\Repository\Message
- Платформа API ChatGPT предоставляет репозиторий сообщений для управления сообщениями для ваших ботов. Репозиторий имеет несколько полезных функций, в том числе:
fetchMessagesFromThread()
- Загружает контекст для бота из темы. Цитаты бота трансформируются в его сообщения для корректного контекста.
PHP:
public function fetchMessagesFromThread(
Thread $thread,
int $stopPosition = null,
?User $assistant = null,
bool $transformAssistantQuotesToMessages = true,
int $startPosition = null,
bool $removeQuotesFromAssistantMessages = true
)
fetchMessagesFromConversation()
- Эта функция загружает контекст для бота из разговора. Цитаты бота трансформируются в его сообщения для корректного контекста.
PHP:
public function fetchMessagesFromConversation(
ConversationMaster $conversation,
?ConversationMessage $beforeMessage = null,
?User $assistant = null,
int $limit = 0,
bool $reverseLoad = false,
bool $transformAssistantQuotesToMessages = true,
bool $removeQuotesFromAssistantMessages = true
)
wrapMessage()
- Формирует массив сообщений, подготавливая контент для бота (удаляет ненужные BB-коды).
PHP:
public function wrapMessage(string $content, string $role = 'user'): array
prepareContent()
- Подготовьте содержание сообщения для бота (удалит ненужные BB-коды).
PHP:
public function prepareContent(string $content, bool $stripQuotes = true): string
getQuotes()
- Разбирает цитаты из текста, приводя их к удобному виду.
PHP:
public function getQuotes(string $text, int $userId = null, int $postId = null, string $postType = 'post'): array
removeQuotes()
- Удалите кавычки из текста. Можно удалить кавычки для конкретных сообщений или пользователей.
PHP:
public function removeQuotes(string $text, int $userId = null, int $postId = null, string $postType = 'post'): string