Всем привет! Меня зовут Авокадо. В данной статье мы рассмотрим, как осуществить эту интеграцию шаг за шагом.
Шаг 1: Подготовка бота
Первым шагом необходимо подготовить бота для интеграции.
Для этого:
1. Создайте директорию gpt_chat в корневой файловой системе Битрикс.
2 Скачайте и разместите базовый шаблон конфигурации бота, доступный по ссылке, в созданной директории.
Перед тем как продолжим, не забудьте подписаться на мой телеграм-канал Avocado VHS, чтобы не пропустить самые актуальные материалы!
Шаг 2: Регистрация бота как приложения
Для регистрации бота выполните следующие действия:
Перейдите по инструкции из руководства.
Следуйте пошаговым инструкциям для регистрации бота в системе Битрикс24.
Шаг 3: Изменение настроек конфигурации бота
После регистрации необходимо внести изменения в настройки конфигурации бота:
Найдите функцию itrRun в конфигурационном файле.
Внесите необходимые изменения в эту функцию для корректной работы с ChatGPT-4.
function itrRun($portalId, $dialogId, $userId, $message = '') {
if ($userId <= 0)
return false;
// Добавляем обработчик
$responseFromGPT = queryChatGPT($message);
$responseData = json_decode($responseFromGPT, true);
restCommand('imbot.message.add', [
'DIALOG_ID' => $dialogId,
'MESSAGE' => $responseFromGPT,
], $_REQUEST["auth"]);
return true;
}
Шаг 4: Добавление функции queryChatGPT
Теперь необходимо добавить функцию, на которую будет ссылаться бот:
Создайте функцию queryChatGPT в конфигурационном файле бота.
function queryChatGPT($prompt) {
$url = "http://ip-адрес-вашей-виртуалки/chat";
$ch = curl_init($url);
$postData = json_encode(['message' => $prompt]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Accept: application/json',
]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
throw new Exception("cURL error: $error");
}
curl_close($ch);
$result = json_decode($response, true);
writeToLog($result['response'], 'Message');
return $result['response'];
}
Обеспечьте правильную обработку запросов к ChatGPT-4.
Шаг 5: Настройка взаимодействия с виртуальной машиной
В наших настройках запросы отправляются на адрес виртуальной машины.
Для этого потребуется:
Создание виртуальной машины — подробнее об этом в следующем шаге.
Обеспечение стабильного соединения между Битрикс24 и виртуальной машиной.
Шаг 6: Создание виртуальной машины
Для создания виртуальной машины выполните следующие шаги:
Перейдите в панель управления вашего хостинг-провайдера.
Создайте виртуальную машину. Если у вас еще нет хостинга, рекомендуем воспользоваться Aeza.net .
Шаг 7: Настройка Flask-приложения на виртуальной машине
После создания виртуальной машины:
Подключитесь к виртуальной машине по SSH.
Перейдите в корневую папку home с помощью команды:
cd ../home
Создайте файл приложения с помощью команды:
sudo nano app.py
Вставьте заранее подготовленный шаблон Flask-приложения, интегрированного с ChatGPT-4.
import os
from flask import Flask, request, jsonify
from openai import OpenAI
import logging
app = Flask(__name__)
os.environ['HTTP_PROXY'] = 'http://ваши-настройки-прокси'
os.environ['HTTPS_PROXY'] = 'https://ваши-настройки-прокси'
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s:%(message)s')
@app.route('/chat', methods=['POST'])
def chat():
data = request.json
user_message = data.get('message', '')
client = OpenAI(
api_key='ваш-api-key',
organization='ваш-organization-id',
project='ваш-project-id',
)
assistant_id = 'ваш-assistant_id'
try:
thread = client.beta.threads.create(
messages=[
{"role": "user", "content": user_message}
]
)
run = client.beta.threads.runs.create_and_poll(
thread_id=thread.id,
assistant_id=assistant_id,
instructions="Please answer the user's question.",
)
if run.status == 'completed':
messages = list(client.beta.threads.messages.list(thread_id=thread.id, run_id=run.id))
message_content = messages[0].content[0].text
logging.info(messages[0].content[0].text)
return jsonify({"response": message_content})
else:
logging.INFO(run.status)
return jsonify({"response": "No valid response generated."})
except Exception as e:
logging.error(f"Error: {str(e)}")
return jsonify({"error": str(e)}), 500
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80, debug=True)
Шаг 8: Настройка прокси-сервера
Для обеспечения стабильного соединения можно использовать прокси-серверы:
Вставьте настройки прокси в ваше Flask-приложение.
os.environ['HTTP_PROXY'] = 'http://ваши-настройки-прокси'
os.environ['HTTPS_PROXY'] = 'https://ваши-настройки-прокси'
Рекомендуем использовать proxy6 для доступных и недорогих прокси.
Шаг 9: Запуск бота
После завершения конфигурации бота:
Запустите приложение командой:
python3 app.py
В случае успешного запуска вы увидите сообщение о запуске сервера. (см. скрин)
Шаг 10: Интеграция бота с каналами коммуникации
Перейдите в настройки открытой линии.
Добавьте вашего бота к одному из каналов коммуникации, например, Telegram.
Убедитесь, что в настройках открытой линии указано, что отвечает должен бот.
Шаг 11: Тестирование в Telegram
Последний шаг — проверка работы бота:
Откройте Telegram и найдите вашего бота.
Отправьте тестовое сообщение и убедитесь, что бот отвечает корректно.
Оставайтесь с нами, следите за обновлениями и не забывайте подписываться на мой дзен-канал Avocado VHS, чтобы быть в курсе самых свежих новостей и аналитики.