Herzliches Beileid und nur das beste für die Zukunft!
Beiträge von Jens
-
-
Das ist gut möglich. Ich habe ChatGTP Gefragt wie ich das machen kann u. den Code dann leicht abgewandelt.
-
Hi,
ich versuche deine OpenAI SDK zu nutzen um ein Posting welches den User @OpenAI tagged via OpenAI zu beantworten. Dazu folgender Eventlistener. Kommt nur leider keine Antwort.
PHP
Alles anzeigen<?php namespace wcf\system\event\listener; use wcf\data\post\Post; use wcf\data\post\PostAction; use wcf\data\user\User; use wcf\system\event\IEventListener; use wcf\system\language\LanguageFactory; use wcf\system\WCF; use wcf\system\openAI\ScOpenAI; class OpenAIMentionListener implements IEventListener { public function execute($eventObj, $className, $eventName) { $messageText = $eventObj->message; //$userId = WCF::getUser()->userID; $userId = WCF::getConfig()->get('openai_user_id'); $user = new User($userId); $username = $user->username; $pattern = "/@" . preg_quote($username, '/') . "\s?(.*)/"; if (preg_match($pattern, $messageText, $matches)) { $textFollowingMention = $matches[1]; $openAIClient = ScOpenAI::getInstance(); $response = $openAIClient->createChatCompletion([ 'messages' => [ ['role' => $userId, 'content' => $textFollowingMention], ], ]); $responseContent = json_decode((string)$response->getBody(), true); $openAIResponse = $responseContent['choices'][0]['message']['content']; $subject = 'RE: ' . $eventObj->subject; $replyData = [ 'subject' => $subject, 'message' => $openAIResponse, 'userID' => $userId, 'username' => $user->username, 'time' => TIME_NOW, 'languageID' => LanguageFactory::getInstance()->getDefaultLanguageID(), ]; $reply = new Post(null, $replyData); $replyAction = new PostAction([$reply], 'create', ['data' => $replyData]); $replyAction->executeAction(); } } }
Woran könnte das liegen? Danke für die API!