Skip to content

Commit

Permalink
[Chatbot] Refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
Remg committed Jan 23, 2024
1 parent b3cf169 commit 87462a0
Show file tree
Hide file tree
Showing 98 changed files with 2,371 additions and 993 deletions.
2 changes: 1 addition & 1 deletion config/packages/messenger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ framework:
queues:
chatbot: { binding_keys: [ 'chatbot' ] }
routing:
App\Chatbot\Command\RefreshThreadCommand: chatbot
App\OpenAI\Command\RunThreadCommand: chatbot
App\Mailchimp\CampaignMessageInterface: mailchimp_campaign
App\Mailchimp\SynchronizeMessageInterface: mailchimp_sync
App\Pap\Command\AsynchronousMessageInterface: pap
Expand Down
8 changes: 6 additions & 2 deletions config/packages/security.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,6 @@ security:
- ROLE_APP_ADMIN_AUDIENCE_ALL
ROLE_ADMIN_COMMUNICATION_QR_CODES:
- ROLE_APP_ADMIN_QR_CODE_ALL
ROLE_ADMIN_COMMUNICATION_CHATBOTS:
- ROLE_APP_ADMIN_CHATBOT_CHATBOT_ALL

## Adhérents
ROLE_ADMIN_ADHERENT_ADHERENTS:
Expand Down Expand Up @@ -309,6 +307,12 @@ security:
- ROLE_APP_ADMIN_CLIENT_ALL
ROLE_ADMIN_TECH_SCOPES:
- ROLE_APP_ADMIN_SCOPE_ALL
ROLE_ADMIN_TECH_CHATBOTS:
- ROLE_APP_ADMIN_CHATBOT_CHATBOT_ALL
ROLE_ADMIN_TECH_TELEGRAM_BOTS:
- ROLE_APP_ADMIN_TELEGRAM_BOT_ALL
ROLE_ADMIN_TECH_OPENAI_ASSISTANTS:
- ROLE_APP_ADMIN_OPEN_AI_ASSISTANT_ALL

## Idées
ROLE_ADMIN_IDEES_OLDOLF:
Expand Down
24 changes: 16 additions & 8 deletions config/services/admin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -228,14 +228,6 @@
<argument />
</service>

<service id="app.admin.chatbot_chatbot" class="App\Admin\Chatbot\ChatbotAdmin">
<tag name="sonata.admin" manager-type="orm" label="Chatbots" group="Communication" />

<argument />
<argument>App\Entity\Chatbot\Chatbot</argument>
<argument />
</service>

<!--
######################################################
# Adhérents
Expand Down Expand Up @@ -988,6 +980,22 @@
<argument type="service" id="event_dispatcher"/>
</service>

<service id="app.admin.chatbot_chatbot" class="App\Admin\Chatbot\ChatbotAdmin">
<tag name="sonata.admin" manager-type="orm" label="Chatbots" group="Tech" />

<argument />
<argument>App\Entity\Chatbot\Chatbot</argument>
<argument />
</service>

<service id="app.admin.telegram_bot" class="App\Admin\TelegramBotAdmin">
<tag name="sonata.admin" manager-type="orm" label="Bots Telegram" group="Tech" />

<argument />
<argument>App\Entity\TelegramBot</argument>
<argument />
</service>

<!--
######################################################
# Formation
Expand Down
188 changes: 188 additions & 0 deletions migrations/Version20240123003828.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
<?php

namespace Migrations;

use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;

final class Version20240123003828 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}

public function up(Schema $schema): void
{
$this->addSql('CREATE TABLE openai_assistant (
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
created_by_administrator_id INT DEFAULT NULL,
updated_by_administrator_id INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
identifier VARCHAR(255) NOT NULL,
uuid CHAR(36) NOT NULL COMMENT \'(DC2Type:uuid)\',
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
UNIQUE INDEX UNIQ_55C6718E5E237E06 (name),
UNIQUE INDEX UNIQ_55C6718E772E836A (identifier),
UNIQUE INDEX UNIQ_55C6718ED17F50A6 (uuid),
INDEX IDX_55C6718E9DF5350C (created_by_administrator_id),
INDEX IDX_55C6718ECF1918FF (updated_by_administrator_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('CREATE TABLE telegram_bot (
id INT UNSIGNED AUTO_INCREMENT NOT NULL,
created_by_administrator_id INT DEFAULT NULL,
updated_by_administrator_id INT DEFAULT NULL,
name VARCHAR(255) NOT NULL,
enabled TINYINT(1) DEFAULT 0 NOT NULL,
api_token VARCHAR(255) NOT NULL,
secret VARCHAR(255) NOT NULL,
blacklisted_ids LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:simple_array)\',
whitelisted_ids LONGTEXT DEFAULT NULL COMMENT \'(DC2Type:simple_array)\',
uuid CHAR(36) NOT NULL COMMENT \'(DC2Type:uuid)\',
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
UNIQUE INDEX UNIQ_CED6A3DF5E237E06 (name),
UNIQUE INDEX UNIQ_CED6A3DF7BA2F5EB (api_token),
UNIQUE INDEX UNIQ_CED6A3DF5CA2E8E5 (secret),
UNIQUE INDEX UNIQ_CED6A3DFD17F50A6 (uuid),
INDEX IDX_CED6A3DF9DF5350C (created_by_administrator_id),
INDEX IDX_CED6A3DFCF1918FF (updated_by_administrator_id),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
$this->addSql('ALTER TABLE
openai_assistant
ADD
CONSTRAINT FK_55C6718E9DF5350C FOREIGN KEY (created_by_administrator_id) REFERENCES administrators (id) ON DELETE
SET
NULL');
$this->addSql('ALTER TABLE
openai_assistant
ADD
CONSTRAINT FK_55C6718ECF1918FF FOREIGN KEY (updated_by_administrator_id) REFERENCES administrators (id) ON DELETE
SET
NULL');
$this->addSql('ALTER TABLE
telegram_bot
ADD
CONSTRAINT FK_CED6A3DF9DF5350C FOREIGN KEY (created_by_administrator_id) REFERENCES administrators (id) ON DELETE
SET
NULL');
$this->addSql('ALTER TABLE
telegram_bot
ADD
CONSTRAINT FK_CED6A3DFCF1918FF FOREIGN KEY (updated_by_administrator_id) REFERENCES administrators (id) ON DELETE
SET
NULL');
$this->addSql('DROP INDEX UNIQ_7DC4B00477153098 ON chatbot');
$this->addSql('ALTER TABLE
chatbot
ADD
open_ai_assistant_id INT UNSIGNED DEFAULT NULL,
ADD
telegram_bot_id INT UNSIGNED DEFAULT NULL,
ADD
name VARCHAR(255) NOT NULL,
ADD
type VARCHAR(255) NOT NULL,
ADD
assistant_type VARCHAR(255) NOT NULL,
DROP
code,
DROP
assistant_id,
DROP
enabled,
DROP
telegram_bot_api_token,
DROP
telegram_bot_secret');
$this->addSql('ALTER TABLE
chatbot
ADD
CONSTRAINT FK_7DC4B0043FF15E50 FOREIGN KEY (open_ai_assistant_id) REFERENCES openai_assistant (id) ON DELETE
SET
NULL');
$this->addSql('ALTER TABLE
chatbot
ADD
CONSTRAINT FK_7DC4B004A0E2F38 FOREIGN KEY (telegram_bot_id) REFERENCES telegram_bot (id) ON DELETE
SET
NULL');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7DC4B0045E237E06 ON chatbot (name)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7DC4B0043FF15E50 ON chatbot (open_ai_assistant_id)');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7DC4B004A0E2F38 ON chatbot (telegram_bot_id)');
$this->addSql('ALTER TABLE
chatbot_message
ADD
run_id INT UNSIGNED DEFAULT NULL,
ADD
entities JSON NOT NULL,
CHANGE
content text LONGTEXT NOT NULL,
CHANGE
external_id open_ai_id VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE
chatbot_message
ADD
CONSTRAINT FK_EDF1E88484E3FEC4 FOREIGN KEY (run_id) REFERENCES chatbot_run (id) ON DELETE
SET
NULL');
$this->addSql('CREATE INDEX IDX_EDF1E88484E3FEC4 ON chatbot_message (run_id)');
$this->addSql('ALTER TABLE chatbot_run CHANGE external_id open_ai_id VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE chatbot_thread CHANGE external_id open_ai_id VARCHAR(255) DEFAULT NULL');
}

public function down(Schema $schema): void
{
$this->addSql('ALTER TABLE chatbot DROP FOREIGN KEY FK_7DC4B0043FF15E50');
$this->addSql('ALTER TABLE chatbot DROP FOREIGN KEY FK_7DC4B004A0E2F38');
$this->addSql('ALTER TABLE openai_assistant DROP FOREIGN KEY FK_55C6718E9DF5350C');
$this->addSql('ALTER TABLE openai_assistant DROP FOREIGN KEY FK_55C6718ECF1918FF');
$this->addSql('ALTER TABLE telegram_bot DROP FOREIGN KEY FK_CED6A3DF9DF5350C');
$this->addSql('ALTER TABLE telegram_bot DROP FOREIGN KEY FK_CED6A3DFCF1918FF');
$this->addSql('DROP TABLE openai_assistant');
$this->addSql('DROP TABLE telegram_bot');
$this->addSql('DROP INDEX UNIQ_7DC4B0045E237E06 ON chatbot');
$this->addSql('DROP INDEX UNIQ_7DC4B0043FF15E50 ON chatbot');
$this->addSql('DROP INDEX UNIQ_7DC4B004A0E2F38 ON chatbot');
$this->addSql('ALTER TABLE
chatbot
ADD
code VARCHAR(255) NOT NULL,
ADD
assistant_id VARCHAR(255) NOT NULL,
ADD
enabled TINYINT(1) DEFAULT 0 NOT NULL,
ADD
telegram_bot_api_token VARCHAR(255) DEFAULT NULL,
ADD
telegram_bot_secret VARCHAR(255) DEFAULT NULL,
DROP
open_ai_assistant_id,
DROP
telegram_bot_id,
DROP
name,
DROP
type,
DROP
assistant_type');
$this->addSql('CREATE UNIQUE INDEX UNIQ_7DC4B00477153098 ON chatbot (code)');
$this->addSql('ALTER TABLE chatbot_message DROP FOREIGN KEY FK_EDF1E88484E3FEC4');
$this->addSql('DROP INDEX IDX_EDF1E88484E3FEC4 ON chatbot_message');
$this->addSql('ALTER TABLE
chatbot_message
DROP
run_id,
DROP
entities,
CHANGE
text content LONGTEXT NOT NULL,
CHANGE
open_ai_id external_id VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE chatbot_run CHANGE open_ai_id external_id VARCHAR(255) DEFAULT NULL');
$this->addSql('ALTER TABLE chatbot_thread CHANGE open_ai_id external_id VARCHAR(255) DEFAULT NULL');
}
}
Loading

0 comments on commit 87462a0

Please sign in to comment.