This is an automated email from the ASF dual-hosted git repository.

liuhongyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git


The following commit(s) were added to refs/heads/master by this push:
     new 4c70d0a88c [type:feature] add ai proxy plugin sql (#5939)
4c70d0a88c is described below

commit 4c70d0a88c5d417d89b99d6e10f738d0208b9ab2
Author: aias00 <[email protected]>
AuthorDate: Mon Feb 24 15:32:30 2025 +0800

    [type:feature] add ai proxy plugin sql (#5939)
    
    * [type:feature] ai proxy plugin sql
    
    * [type:feature] ai proxy plugin sql
    
    ---------
    
    Co-authored-by: loongs-zhang <[email protected]>
---
 db/init/mysql/schema.sql                           | 20 +++++++++-
 db/init/ob/schema.sql                              | 17 ++++++++-
 db/init/og/create-table.sql                        | 18 ++++++++-
 db/init/oracle/schema.sql                          | 43 +++++++++++++++++++++-
 db/init/pg/create-table.sql                        | 17 ++++++++-
 db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql           | 21 ++++++++++-
 db/upgrade/2.7.0-upgrade-2.7.1-ob.sql              | 37 +++++++++++++++++++
 db/upgrade/2.7.0-upgrade-2.7.1-og.sql              | 22 ++++++++++-
 db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql          | 43 ++++++++++++++++++++++
 db/upgrade/2.7.0-upgrade-2.7.1-pg.sql              | 19 ++++++++++
 .../src/main/resources/sql-script/h2/schema.sql    |  2 +-
 11 files changed, 249 insertions(+), 10 deletions(-)

diff --git a/db/init/mysql/schema.sql b/db/init/mysql/schema.sql
index 94d0697be7..cfbecafc5d 100644
--- a/db/init/mysql/schema.sql
+++ b/db/init/mysql/schema.sql
@@ -923,7 +923,7 @@ INSERT INTO `plugin` VALUES ('42', 'tcp', NULL, 'Proxy', 
320, 1, '2023-05-30 18:
 INSERT INTO `plugin` VALUES ('43', 'loggingHuaweiLts', 
'{\"totalSizeInBytes\":\"104857600\",\"maxBlockMs\":\"0\",\"ioThreadCount\":\"1\",\"batchSizeThresholdInBytes\":\"524288\",\"batchCountThreshold\":\"4096\",\"lingerMs\":\"2000\",\"retries\":\"100\",\"baseRetryBackoffMs\":\"100\",\"maxRetryBackoffMs\":\"100\",\"enableLocalTest\":\"true\",\"setGiveUpExtraLongSingleLog\":\"false\"}',
 'Logging', 177, 0, '2023-07-05 14:03:53.686', '2023-07-06 12:42:07.234', NULL);
 INSERT INTO `plugin` VALUES ('44', 'basicAuth', 
'{\"defaultHandleJson\":\"{\\\"authorization\\\":\\\"test:test123\\\"}\"}', 
'Authentication', 150, 0, '2022-07-24 19:00:00', '2022-07-24 19:00:00', null);
 INSERT INTO `plugin` VALUES ('45', 'loggingRabbitMQ', 
'{\"host\":\"127.0.0.1\",\"port\":5672,\"password\":\"admin\",\"username\":\"admin\",\"exchangeName\":\"exchange.logging.plugin\",\"queueName\":\"queue.logging.plugin\",\"routingKey\":\"topic.logging\",\"virtualHost\":\"/\",\"exchangeType\":\"direct\",\"durable\":\"true\",\"exclusive\":\"false\",\"autoDelete\":\"false\"}',
 'Logging', 171, 0, '2023-11-06 15:49:56.454', '2023-11-10 10:40:58.447', NULL);
-INSERT INTO `plugin` VALUES ('50', 'aiProxy', 
'{\"host\":\"127.0.0.1\",\"port\":5672,\"password\":\"admin\",\"username\":\"admin\",\"exchangeName\":\"exchange.logging.plugin\",\"queueName\":\"queue.logging.plugin\",\"routingKey\":\"topic.logging\",\"virtualHost\":\"/\",\"exchangeType\":\"direct\",\"durable\":\"true\",\"exclusive\":\"false\",\"autoDelete\":\"false\"}',
 'Ai', 171, 0, '2023-11-06 15:49:56.454', '2023-11-10 10:40:58.447', NULL);
+INSERT INTO `plugin` VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
 
 -- ----------------------------
 -- Table structure for plugin_handle
@@ -1302,6 +1302,15 @@ INSERT INTO `plugin_handle` VALUES 
('1722804548510507031', '20', 'respUniqueHead
 
 INSERT INTO `plugin_handle` VALUES ('1722804548510507032', '19', 'handleType', 
'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 17:20:50.233', 
'2025-01-02 17:20:50.233');
 
+INSERT INTO `plugin_handle` VALUES ('1722804548510507033', '50', 'provider', 
'provider', 3, 3, 1, 
'{\"required\":\"1\",\"defaultValue\":\"OpenAI\",\"placeholder\":\"provider\",\"rule\":\"\"}',
 '2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507034', '50', 'baseUrl', 
'baseUrl', 2, 3, 2, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507036', '50', 'model', 
'model', 2, 3, 3, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507035', '50', 'apiKey', 
'apiKey', 2, 3, 4, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{\"required\":\"0\",\"rule\":\"\", 
\"placeholder\":\"optional,0,0.01~1\"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507038', '50', 'maxTokens', 
'maxTokens', 2, 3, 6, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507039', '50', 'stream', 
'stream', 3, 3, 7, '{\"defaultValue\":\"false\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507040', '50', 'prompt', 
'prompt', 2, 3, 8, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
 -- ----------------------------
 -- Table structure for resource
 -- ----------------------------
@@ -2089,6 +2098,13 @@ INSERT INTO `shenyu_dict` VALUES ('1679002911061737478', 
'rewriteMetaData', 'REW
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737479', 'rewriteMetaData', 
'REWRITE_META_DATA', 'false', 'false', '', 4, 1, '2024-02-07 14:31:49', 
'2024-02-07 14:31:49');
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737480', 'preserveHost', 
'PRESERVE_HOST', 'true', 'true', '', 0, 1, '2024-12-05 22:00:46.416', 
'2024-12-05 22:00:46.416');
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737481', 'preserveHost', 
'PRESERVE_HOST', 'false', 'false', '', 1, 1, '2024-12-05 22:01:13.396', 
'2024-12-05 22:01:13.396');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
+
 
 -- ----------------------------
 -- Table structure for user_role
@@ -2384,7 +2400,7 @@ INSERT INTO `namespace_plugin_rel` 
(`id`,`namespace_id`,`plugin_id`, `config`, `
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822184','649330b6-c2d7-4edc-be8e-8a54df9eb385','6', 
'{\"register\":\"zookeeper://localhost:2181\",\"multiSelectorHandle\":\"1\",\"threadpool\":\"shared\",\"corethreads\":0,\"threads\":2147483647,\"queues\":0}',
 310, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822185','649330b6-c2d7-4edc-be8e-8a54df9eb385','8', 
'{\"enabled\":false,\"registerType\":\"eureka\",\"serverLists\":\"http://localhost:8761/eureka\",\"props\":
 {}}', 200, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822186','649330b6-c2d7-4edc-be8e-8a54df9eb385','9', NULL, 130, 
0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
-
+INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{\"provider\":\"OpenAI\",\"baseUrl\":\"https://api.openai.com/v1/chat/completions\",\"model\":\"gpt-4o-mini\",\"apiKey\":\"your_api_key\",\"temperature\":\"0.5\",\"maxTokens\":\"1000\",\"stream\":\"false\",\"prompt\":\"\"}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 
 
 INSERT INTO `resource` (`id`, `parent_id`, `title`, `name`, `url`, 
`component`, `resource_type`, `sort`, `icon`, `is_leaf`, `is_route`, `perms`, 
`status`, `date_created`, `date_updated`) VALUES ('1792749362445840479', 
'1357956838021890048', 'SHENYU.MENU.SYSTEM.MANAGMENT.NAMESPACEPLUGIN', 
'namespacePlugin', '/config/namespacePlugin', 'namespacePlugin', 1, 2, 'build', 
0, 0, '', 1, '2024-06-25 18:02:53.000', '2024-06-25 18:02:53.000');
diff --git a/db/init/ob/schema.sql b/db/init/ob/schema.sql
index 018749396f..a90a39bb6f 100644
--- a/db/init/ob/schema.sql
+++ b/db/init/ob/schema.sql
@@ -916,6 +916,7 @@ INSERT INTO `plugin` VALUES ('42', 'tcp', NULL, 'Proxy', 
320, 1, '2023-05-30 18:
 INSERT INTO `plugin` VALUES ('43', 'loggingHuaweiLts', 
'{\"totalSizeInBytes\":\"104857600\",\"maxBlockMs\":\"0\",\"ioThreadCount\":\"1\",\"batchSizeThresholdInBytes\":\"524288\",\"batchCountThreshold\":\"4096\",\"lingerMs\":\"2000\",\"retries\":\"100\",\"baseRetryBackoffMs\":\"100\",\"maxRetryBackoffMs\":\"100\",\"enableLocalTest\":\"true\",\"setGiveUpExtraLongSingleLog\":\"false\"}',
 'Logging', 177, 0, '2023-07-05 14:03:53.686', '2023-07-06 12:42:07.234', NULL);
 INSERT INTO `plugin` VALUES ('44', 'basicAuth', 
'{\"defaultHandleJson\":\"{\\\"authorization\\\":\\\"test:test123\\\"}\"}', 
'Authentication', 150, 0, '2022-07-24 19:00:00', '2022-07-24 19:00:00', null);
 INSERT INTO `plugin` VALUES ('45', 'loggingRabbitMQ', 
'{\"host\":\"127.0.0.1\",\"port\":5672,\"password\":\"admin\",\"username\":\"admin\",\"exchangeName\":\"exchange.logging.plugin\",\"queueName\":\"queue.logging.plugin\",\"routingKey\":\"topic.logging\",\"virtualHost\":\"/\",\"exchangeType\":\"direct\",\"durable\":\"true\",\"exclusive\":\"false\",\"autoDelete\":\"false\"}',
 'Logging', 171, 0, '2023-11-06 15:49:56.454', '2023-11-10 10:40:58.447', NULL);
+INSERT INTO `plugin` VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
 
 -- ----------------------------
 -- Table structure for plugin_handle
@@ -1294,6 +1295,14 @@ INSERT INTO `plugin_handle` VALUES 
('1722804548510507031', '20', 'respUniqueHead
 
 INSERT INTO `plugin_handle` VALUES ('1722804548510507032', '19', 'handleType', 
'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 17:20:50.233', 
'2025-01-02 17:20:50.233');
 
+INSERT INTO `plugin_handle` VALUES ('1722804548510507033', '50', 'provider', 
'provider', 3, 3, 1, 
'{\"required\":\"1\",\"defaultValue\":\"OpenAI\",\"placeholder\":\"provider\",\"rule\":\"\"}',
 '2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507034', '50', 'baseUrl', 
'baseUrl', 2, 3, 2, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507036', '50', 'model', 
'model', 2, 3, 3, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507035', '50', 'apiKey', 
'apiKey', 2, 3, 4, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{\"required\":\"0\",\"rule\":\"\", 
\"placeholder\":\"optional,0,0.01~1\"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507038', '50', 'maxTokens', 
'maxTokens', 2, 3, 6, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507039', '50', 'stream', 
'stream', 3, 3, 7, '{\"defaultValue\":\"false\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507040', '50', 'prompt', 
'prompt', 2, 3, 8, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
 -- ----------------------------
 -- Table structure for resource
 -- ----------------------------
@@ -2075,6 +2084,12 @@ INSERT INTO `shenyu_dict` VALUES ('1679002911061737478', 
'rewriteMetaData', 'REW
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737479', 'rewriteMetaData', 
'REWRITE_META_DATA', 'false', 'false', '', 4, 1, '2024-02-07 14:31:49', 
'2024-02-07 14:31:49');
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737480', 'preserveHost', 
'PRESERVE_HOST', 'true', 'true', '', 0, 1, '2024-12-05 22:00:46.416', 
'2024-12-05 22:00:46.416');
 INSERT INTO `shenyu_dict` VALUES ('1679002911061737481', 'preserveHost', 
'PRESERVE_HOST', 'false', 'false', '', 1, 1, '2024-12-05 22:01:13.396', 
'2024-12-05 22:01:13.396');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
 -- ----------------------------
 -- Table structure for user_role
 -- ----------------------------
@@ -2369,7 +2384,7 @@ INSERT INTO `namespace_plugin_rel` 
(`id`,`namespace_id`,`plugin_id`, `config`, `
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822184','649330b6-c2d7-4edc-be8e-8a54df9eb385','6', 
'{\"register\":\"zookeeper://localhost:2181\",\"multiSelectorHandle\":\"1\",\"threadpool\":\"shared\",\"corethreads\":0,\"threads\":2147483647,\"queues\":0}',
 310, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822185','649330b6-c2d7-4edc-be8e-8a54df9eb385','8', 
'{\"enabled\":false,\"registerType\":\"eureka\",\"serverLists\":\"http://localhost:8761/eureka\",\"props\":
 {}}', 200, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822186','649330b6-c2d7-4edc-be8e-8a54df9eb385','9', NULL, 130, 
0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
-
+INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{\"provider\":\"OpenAI\",\"baseUrl\":\"https://api.openai.com/v1/chat/completions\",\"model\":\"gpt-4o-mini\",\"apiKey\":\"your_api_key\",\"temperature\":\"0.5\",\"maxTokens\":\"1000\",\"stream\":\"false\",\"prompt\":\"\"}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 
 
 INSERT INTO `resource` (`id`, `parent_id`, `title`, `name`, `url`, 
`component`, `resource_type`, `sort`, `icon`, `is_leaf`, `is_route`, `perms`, 
`status`, `date_created`, `date_updated`) VALUES ('1792749362445840479', 
'1357956838021890048', 'SHENYU.MENU.SYSTEM.MANAGMENT.NAMESPACEPLUGIN', 
'namespacePlugin', '/config/namespacePlugin', 'namespacePlugin', 1, 2, 'build', 
0, 0, '', 1, '2024-06-25 18:02:53.000', '2024-06-25 18:02:53.000');
diff --git a/db/init/og/create-table.sql b/db/init/og/create-table.sql
index 291b3ca0ac..975bd8051f 100644
--- a/db/init/og/create-table.sql
+++ b/db/init/og/create-table.sql
@@ -988,6 +988,7 @@ INSERT INTO "public"."plugin" VALUES ('42', 'tcp', null, 
'Proxy', 320, 1, '2022-
 INSERT INTO "public"."plugin" VALUES ('43', 'loggingHuaweiLts', '{ 
"totalSizeInBytes": 
"104857600","maxBlockMs":"0","ioThreadCount":"1","batchSizeThresholdInBytes":"524288","batchCountThreshold":"4096","lingerMs":"2000","retries":"100","baseRetryBackoffMs":"100","maxRetryBackoffMs":"100","enableLocalTest":"true","setGiveUpExtraLongSingleLog":"false"}',
 'Logging', 177, 0, '2023-07-05 14:03:53', '2023-07-06 12:42:07', null);
 INSERT INTO "public"."plugin" VALUES ('44', 'basicAuth', 
'{"defaultHandleJson":"{"authorization":"test:test123"}"}', 'Authentication', 
150, 0, '2022-07-24 19:00:00', '2022-07-24 19:00:00', null);
 INSERT INTO "public"."plugin" VALUES ('45', 'loggingRabbitMQ', 
'{"host":"127.0.0.1","port":5672,"password":"admin","username":"admin","exchangeName":"exchange.logging.plugin","queueName":"queue.logging.plugin","routingKey":"topic.logging","virtualHost":"/","exchangeType":"direct","durable":"true","exclusive":"false","autoDelete":"false"}',
 'Logging', 171, 0, '2023-11-06 15:49:56.454', '2023-11-10 10:40:58.447', NULL);
+INSERT INTO "public"."plugin" VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
 
 -- ----------------------------
 -- Table structure for plugin_handle
@@ -1378,6 +1379,15 @@ INSERT INTO "public"."plugin_handle" VALUES 
('1722804548510507031', '20', 'respU
 
 INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507032', '19', 
'handleType', 'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 
17:20:50.233', '2025-01-02 17:20:50.233');
 
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507033', '50', 
'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}', 
'2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507034', '50', 
'baseUrl', 'baseUrl', 2, 3, 2, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507036', '50', 
'model', 'model', 2, 3, 3, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507035', '50', 
'apiKey', 'apiKey', 2, 3, 4, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{"required":"0","rule":"", 
"placeholder":"optional,0,0.01~1"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507038', '50', 
'maxTokens', 'maxTokens', 2, 3, 6, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507039', '50', 
'stream', 'stream', 3, 3, 7, '{"defaultValue":"false","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507040', '50', 
'prompt', 'prompt', 2, 3, 8, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
 -- ----------------------------
 -- Table structure for resource
 -- ----------------------------
@@ -2162,6 +2172,12 @@ INSERT INTO "public"."shenyu_dict" VALUES 
('1679002911061737479', 'rewriteMetaDa
 INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737480', 
'preserveHost', 'PRESERVE_HOST', 'true', 'true', '', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
 INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737481', 
'preserveHost', 'PRESERVE_HOST', 'false', 'false', '', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
 
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
 -- ----------------------------
 -- Table structure for user_role
 -- ----------------------------
@@ -2691,7 +2707,7 @@ INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822183','64933
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822184','649330b6-c2d7-4edc-be8e-8a54df9eb385','6', 
'{"register":"zookeeper://localhost:2181","multiSelectorHandle":"1","threadpool":"shared","corethreads":0,"threads":2147483647,"queues":0}',
 310, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822185','649330b6-c2d7-4edc-be8e-8a54df9eb385','8', 
'{"enabled":false,"registerType":"eureka","serverLists":"http://localhost:8761/eureka","props":{}}',
 200, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822186','649330b6-c2d7-4edc-be8e-8a54df9eb385','9', NULL, 130, 
0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
-
+INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 
 
 INSERT INTO "public"."resource" VALUES ('1792749362445840479', 
'1357956838021890048', 'SHENYU.MENU.SYSTEM.MANAGMENT.NAMESPACEPLUGIN', 
'namespacePlugin', '/config/namespacePlugin', 'namespacePlugin', 1, 2, 'build', 
0, 0, '', 1, '2024-06-25 18:02:53.000', '2024-06-25 18:02:53.000');
diff --git a/db/init/oracle/schema.sql b/db/init/oracle/schema.sql
index bdb79719b5..a821df5682 100644
--- a/db/init/oracle/schema.sql
+++ b/db/init/oracle/schema.sql
@@ -1169,7 +1169,7 @@ INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO 
plugin (id, name, role
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO plugin (id, name, 
role, sort, config, enabled) VALUES ('43', 'loggingHuaweiLts', 'Logging', 177, 
'{"totalSizeInBytes":"104857600","maxBlockMs":"0","ioThreadCount":"1","batchSizeThresholdInBytes":"524288","batchCountThreshold":"4096","lingerMs":"2000","retries":"100","baseRetryBackoffMs":"100","maxRetryBackoffMs":"100","enableLocalTest":"true","setGiveUpExtraLongSingleLog":"false"}','0');
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO plugin (id, name, 
role, sort, config, enabled) VALUES ('44', 'basicAuth', 'Authentication', 150, 
'{"defaultHandleJson":"{\"authorization\":\"test:test123\"}"}','0');
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO plugin (id, name, 
role, sort, config, enabled) VALUES ('45', 'loggingRabbitmq', 'Logging', 171, 
'{"host":"127.0.0.1","port":5672,"password":"admin","username":"admin","exchangeName":"exchange.logging.plugin","queueName":"queue.logging.plugin","routingKey":"topic.logging","virtualHost":"/","exchangeType":"direct","durable":"true","exclusive":"false","autoDelete":"false"}',
 '0');
-
+INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO plugin (id, name, 
config, role, sort, enabled) VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0);
 
 
 /*insert plugin_handle data for sentinel*/
@@ -2194,6 +2194,30 @@ values ('1722804548510507031', '20', 
'respUniqueHeaders', 'respUniqueHeaders', 2
 insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
 values ('1722804548510507032', '19', 'handleType', 'handleType', 2, 3, 1, 
'{"required":"0","rule":""}');
 
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507033', '50', 'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507034', '50', 'baseUrl', 'baseUrl', 2, 3, 2, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507036', '50', 'model', 'model', 2, 3, 3, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507035', '50', 'apiKey', 'apiKey', 2, 3, 4, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507037', '50', 'temperature', 'temperature', 2, 3, 5, 
'{"required":"0","rule":"", "placeholder":"optional,0,0.01~1"}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507038', '50', 'maxTokens', 'maxTokens', 2, 3, 6, 
'{"required":"0","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507039', '50', 'stream', 'stream', 3, 3, 7, 
'{"defaultValue":"false","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507040', '50', 'prompt', 'prompt', 2, 3, 8, 
'{"required":"0","rule":""}');
+
 
 insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
 VALUES ('1529402613195784272', 'securityProtocol', 'SECURITY_PROTOCOL', 
'PLAINTEXT', 'PLAINTEXT', '', 1, 1);
@@ -2270,6 +2294,21 @@ VALUES ('1679002911061737480', 'preserveHost', 
'PRESERVE_HOST', 'true', 'true',
 insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
 VALUES('1679002911061737481', 'preserveHost', 'PRESERVE_HOST', 'false', 
'false', '', 1, 1);
 
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737482', 'provider', 'PROVIDER_TYPE_OPENAI', 'OpenAI', 
'OpenAI', 'OpenAI', 0, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737483', 'provider', 'PROVIDER_TYPE_DEEPSEEK', 
'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737484', 'provider', 'PROVIDER_TYPE_MOONSHOT', 
'Moonshot', 'Moonshot', 'Moonshot', 2, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737485', 'provider', 'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 
'OpenAPI', 'OpenAPI', 3, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737486', 'provider', 'PROVIDER_TYPE_ALIYUN', 'ALiYun', 
'ALiYun', 'ALiYun', 4, 1);
+
 
 /** insert resource for resource */
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX("resource" (id)) */ INTO "resource"   
(id, parent_id, title, name, url, component, resource_type, sort, icon, 
is_leaf, is_route, perms, status) 
VALUES('1346775491550474240','','SHENYU.MENU.PLUGIN.LIST','plug','/plug','PluginList','0','0','dashboard','0','0','','1');
@@ -2906,7 +2945,7 @@ INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX 
(namespace_plugin_rel(id)) */ INTO namespa
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (namespace_plugin_rel(id)) */ INTO 
namespace_plugin_rel (id,namespace_id,plugin_id, config, sort, enabled) VALUES 
('1801816010882822184','649330b6-c2d7-4edc-be8e-8a54df9eb385','6', 
'{"register":"zookeeper://localhost:2181","multiSelectorHandle":"1","threadpool":"shared","corethreads":0,"threads":2147483647,"queues":0}',
 310, 0);
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (namespace_plugin_rel(id)) */ INTO 
namespace_plugin_rel (id,namespace_id,plugin_id, config, sort, enabled) VALUES 
('1801816010882822185','649330b6-c2d7-4edc-be8e-8a54df9eb385','8', 
'{"enabled":false,"registerType":"eureka","serverLists":"http://localhost:8761/eureka","props":{}}',
 200, 0);
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (namespace_plugin_rel(id)) */ INTO 
namespace_plugin_rel (id,namespace_id,plugin_id, config, sort, enabled) VALUES 
('1801816010882822186','649330b6-c2d7-4edc-be8e-8a54df9eb385','9', NULL, 130, 
0);
-
+INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (namespace_plugin_rel(id)) */ INTO 
namespace_plugin_rel (id,namespace_id,plugin_id, config, sort, enabled) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0);
 
 
 INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX("resource" (id)) */ INTO "resource"  
(id, parent_id, title, name, url, component, resource_type, sort, icon, 
is_leaf, is_route, perms, status)VALUES ('1792749362445840479', 
'1357956838021890048', 'SHENYU.MENU.SYSTEM.MANAGMENT.NAMESPACEPLUGIN', 
'namespacePlugin', '/config/namespacePlugin', 'namespacePlugin', 1, 2, 'build', 
0, 0, '', 1);
diff --git a/db/init/pg/create-table.sql b/db/init/pg/create-table.sql
index 9a53825742..f1f468c9f9 100644
--- a/db/init/pg/create-table.sql
+++ b/db/init/pg/create-table.sql
@@ -1049,6 +1049,8 @@ INSERT INTO "public"."plugin" VALUES ('42', 'tcp', null, 
'Proxy', 320, 1, '2022-
 INSERT INTO "public"."plugin" VALUES ('43', 'loggingHuaweiLts', '{ 
"totalSizeInBytes": 
"104857600","maxBlockMs":"0","ioThreadCount":"1","batchSizeThresholdInBytes":"524288","batchCountThreshold":"4096","lingerMs":"2000","retries":"100","baseRetryBackoffMs":"100","maxRetryBackoffMs":"100","enableLocalTest":"true","setGiveUpExtraLongSingleLog":"false"}',
 'Logging', 177, 0, '2023-07-05 14:03:53', '2023-07-06 12:42:07', null);
 INSERT INTO "public"."plugin" VALUES ('44', 'basicAuth', 
'{"defaultHandleJson":"{\"authorization\":\"test:test123\"}"}', 
'Authentication', 150, 0, '2022-07-24 19:00:00', '2022-07-24 19:00:00', null);
 INSERT INTO "public"."plugin" VALUES ('45', 'loggingRabbitMQ', 
'{"host":"127.0.0.1","port":5672,"password":"admin","username":"admin","exchangeName":"exchange.logging.plugin","queueName":"queue.logging.plugin","routingKey":"topic.logging","virtualHost":"/","exchangeType":"direct","durable":"true","exclusive":"false","autoDelete":"false"}',
 'Logging', 171, 0, '2023-11-06 15:49:56.454', '2023-11-10 10:40:58.447', NULL);
+INSERT INTO "public"."plugin" VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
+
 -- ----------------------------
 -- Table structure for plugin_handle
 -- ----------------------------
@@ -1438,6 +1440,14 @@ INSERT INTO "public"."plugin_handle" VALUES 
('1722804548510507031', '20', 'respU
 
 INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507032', '19', 
'handleType', 'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 
17:20:50.233', '2025-01-02 17:20:50.233');
 
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507033', '50', 
'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}', 
'2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507034', '50', 
'baseUrl', 'baseUrl', 2, 3, 2, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507036', '50', 
'model', 'model', 2, 3, 3, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507035', '50', 
'apiKey', 'apiKey', 2, 3, 4, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{"required":"0","rule":"", 
"placeholder":"optional,0,0.01~1"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507038', '50', 
'maxTokens', 'maxTokens', 2, 3, 6, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507039', '50', 
'stream', 'stream', 3, 3, 7, '{"defaultValue":"false","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507040', '50', 
'prompt', 'prompt', 2, 3, 8, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
 -- ----------------------------
 -- Table structure for resource
 -- ----------------------------
@@ -2288,6 +2298,11 @@ INSERT INTO "public"."shenyu_dict" VALUES 
('1679002911061737478', 'rewriteMetaDa
 INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737479', 
'rewriteMetaData', 'REWRITE_META_DATA', 'false', 'false', '', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
 INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737480', 
'preserveHost', 'PRESERVE_HOST', 'true', 'true', '', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
 INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737481', 
'preserveHost', 'PRESERVE_HOST', 'false', 'false', '', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
 
 -- ----------------------------
 -- Table structure for user_role
@@ -2812,7 +2827,7 @@ INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822183','64933
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822184','649330b6-c2d7-4edc-be8e-8a54df9eb385','6', 
'{"register":"zookeeper://localhost:2181","multiSelectorHandle":"1","threadpool":"shared","corethreads":0,"threads":2147483647,"queues":0}',
 310, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822185','649330b6-c2d7-4edc-be8e-8a54df9eb385','8', 
'{"enabled":false,"registerType":"eureka","serverLists":"http://localhost:8761/eureka","props":{}}',
 200, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822186','649330b6-c2d7-4edc-be8e-8a54df9eb385','9', NULL, 130, 
0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
-
+INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
 
 INSERT INTO "public"."resource" VALUES ('1792749362445840479', 
'1357956838021890048', 'SHENYU.MENU.SYSTEM.MANAGMENT.NAMESPACEPLUGIN', 
'namespacePlugin', '/config/namespacePlugin', 'namespacePlugin', 1, 2, 'build', 
0, 0, '', 1, '2024-06-25 18:02:53.000', '2024-06-25 18:02:53.000');
 INSERT INTO "public"."resource" VALUES ('1792749362445840480', 
'1792749362445840479', 'SHENYU.BUTTON.SYSTEM.LIST', '', '', '', 2, 0, '', 1, 0, 
'system:namespacePlugin:list', 1, '2024-06-25 18:02:53.000', '2024-06-25 
18:02:53.000');
diff --git a/db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql 
b/db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql
index 7e4a8d5c53..891e7bb26a 100755
--- a/db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql
+++ b/db/upgrade/2.7.0-upgrade-2.7.1-mysql.sql
@@ -15,4 +15,23 @@
 -- limitations under the License.
 
 -- this file works for MySQL.
-INSERT INTO `plugin_handle` VALUES ('1722804548510507032', '19', 'handleType', 
'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 17:20:50.233', 
'2025-01-02 17:20:50.233');
\ No newline at end of file
+INSERT INTO `plugin_handle` VALUES ('1722804548510507032', '19', 'handleType', 
'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 17:20:50.233', 
'2025-01-02 17:20:50.233');
+
+INSERT INTO `plugin` VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
+
+INSERT INTO `plugin_handle` VALUES ('1722804548510507033', '50', 'provider', 
'provider', 3, 3, 1, 
'{\"required\":\"1\",\"defaultValue\":\"OpenAI\",\"placeholder\":\"provider\",\"rule\":\"\"}',
 '2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507034', '50', 'baseUrl', 
'baseUrl', 2, 3, 2, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507036', '50', 'model', 
'model', 2, 3, 3, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507035', '50', 'apiKey', 
'apiKey', 2, 3, 4, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{\"required\":\"0\",\"rule\":\"\", 
\"placeholder\":\"optional,0,0.01~1\"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507038', '50', 'maxTokens', 
'maxTokens', 2, 3, 6, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507039', '50', 'stream', 
'stream', 3, 3, 7, '{\"defaultValue\":\"false\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507040', '50', 'prompt', 
'prompt', 2, 3, 8, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
+INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{\"provider\":\"OpenAI\",\"baseUrl\":\"https://api.openai.com/v1/chat/completions\",\"model\":\"gpt-4o-mini\",\"apiKey\":\"your_api_key\",\"temperature\":\"0.5\",\"maxTokens\":\"1000\",\"stream\":\"false\",\"prompt\":\"\"}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
\ No newline at end of file
diff --git a/db/upgrade/2.7.0-upgrade-2.7.1-ob.sql 
b/db/upgrade/2.7.0-upgrade-2.7.1-ob.sql
new file mode 100755
index 0000000000..c8b055b950
--- /dev/null
+++ b/db/upgrade/2.7.0-upgrade-2.7.1-ob.sql
@@ -0,0 +1,37 @@
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+
+-- this file works for Oceanbase.
+INSERT INTO `plugin_handle` VALUES ('1722804548510507032', '19', 'handleType', 
'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 17:20:50.233', 
'2025-01-02 17:20:50.233');
+
+INSERT INTO `plugin` VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
+
+INSERT INTO `plugin_handle` VALUES ('1722804548510507033', '50', 'provider', 
'provider', 3, 3, 1, 
'{\"required\":\"1\",\"defaultValue\":\"OpenAI\",\"placeholder\":\"provider\",\"rule\":\"\"}',
 '2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507034', '50', 'baseUrl', 
'baseUrl', 2, 3, 2, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507036', '50', 'model', 
'model', 2, 3, 3, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507035', '50', 'apiKey', 
'apiKey', 2, 3, 4, '{\"required\":\"1\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{\"required\":\"0\",\"rule\":\"\", 
\"placeholder\":\"optional,0,0.01~1\"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507038', '50', 'maxTokens', 
'maxTokens', 2, 3, 6, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507039', '50', 'stream', 
'stream', 3, 3, 7, '{\"defaultValue\":\"false\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO `plugin_handle` VALUES ('1722804548510507040', '50', 'prompt', 
'prompt', 2, 3, 8, '{\"required\":\"0\",\"rule\":\"\"}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO `shenyu_dict` VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
+INSERT INTO `namespace_plugin_rel` (`id`,`namespace_id`,`plugin_id`, `config`, 
`sort`, `enabled`, `date_created`, `date_updated`) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{\"provider\":\"OpenAI\",\"baseUrl\":\"https://api.openai.com/v1/chat/completions\",\"model\":\"gpt-4o-mini\",\"apiKey\":\"your_api_key\",\"temperature\":\"0.5\",\"maxTokens\":\"1000\",\"stream\":\"false\",\"prompt\":\"\"}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
\ No newline at end of file
diff --git a/db/upgrade/2.7.0-upgrade-2.7.1-og.sql 
b/db/upgrade/2.7.0-upgrade-2.7.1-og.sql
index 9df235bc6b..e6a15c39dc 100644
--- a/db/upgrade/2.7.0-upgrade-2.7.1-og.sql
+++ b/db/upgrade/2.7.0-upgrade-2.7.1-og.sql
@@ -15,4 +15,24 @@
 -- limitations under the License.
 
 -- this file works for og.
-INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507032', '19', 
'handleType', 'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 
17:20:50.233', '2025-01-02 17:20:50.233');
\ No newline at end of file
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507032', '19', 
'handleType', 'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 
17:20:50.233', '2025-01-02 17:20:50.233');
+
+
+INSERT INTO "public"."plugin" VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
+
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507033', '50', 
'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}', 
'2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507034', '50', 
'baseUrl', 'baseUrl', 2, 3, 2, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507036', '50', 
'model', 'model', 2, 3, 3, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507035', '50', 
'apiKey', 'apiKey', 2, 3, 4, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{"required":"0","rule":"", 
"placeholder":"optional,0,0.01~1"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507038', '50', 
'maxTokens', 'maxTokens', 2, 3, 6, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507039', '50', 
'stream', 'stream', 3, 3, 7, '{"defaultValue":"false","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507040', '50', 
'prompt', 'prompt', 2, 3, 8, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
+INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
\ No newline at end of file
diff --git a/db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql 
b/db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql
index 04d7c8189e..6e816981a3 100755
--- a/db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql
+++ b/db/upgrade/2.7.0-upgrade-2.7.1-oracle.sql
@@ -17,3 +17,46 @@
 -- this file works for Oracle, can not use "`" syntax.
 insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
 values ('1722804548510507032', '19', 'handleType', 'handleType', 2, 3, 1, 
'{"required":"0","rule":""}');
+
+INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin(id)) */ INTO plugin (id, name, 
config, role, sort, enabled) VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507033', '50', 'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507034', '50', 'baseUrl', 'baseUrl', 2, 3, 2, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507036', '50', 'model', 'model', 2, 3, 3, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507035', '50', 'apiKey', 'apiKey', 2, 3, 4, 
'{"required":"1","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507037', '50', 'temperature', 'temperature', 2, 3, 5, 
'{"required":"0","rule":"", "placeholder":"optional,0,0.01~1"}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507038', '50', 'maxTokens', 'maxTokens', 2, 3, 6, 
'{"required":"0","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507039', '50', 'stream', 'stream', 3, 3, 7, 
'{"defaultValue":"false","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(plugin_handle(plugin_id, field, type)) 
*/ into plugin_handle (ID, PLUGIN_ID, FIELD, LABEL, DATA_TYPE, TYPE, SORT, 
EXT_OBJ)
+values ('1722804548510507040', '50', 'prompt', 'prompt', 2, 3, 8, 
'{"required":"0","rule":""}');
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737482', 'provider', 'PROVIDER_TYPE_OPENAI', 'OpenAI', 
'OpenAI', 'OpenAI', 0, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737483', 'provider', 'PROVIDER_TYPE_DEEPSEEK', 
'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737484', 'provider', 'PROVIDER_TYPE_MOONSHOT', 
'Moonshot', 'Moonshot', 'Moonshot', 2, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737485', 'provider', 'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 
'OpenAPI', 'OpenAPI', 3, 1);
+
+insert /*+ IGNORE_ROW_ON_DUPKEY_INDEX(shenyu_dict(type, dict_code, dict_name)) 
*/ into SHENYU_DICT (ID, TYPE, DICT_CODE, DICT_NAME, DICT_VALUE, "desc", SORT, 
ENABLED)
+VALUES ('1679002911061737486', 'provider', 'PROVIDER_TYPE_ALIYUN', 'ALiYun', 
'ALiYun', 'ALiYun', 4, 1);
+
+INSERT /*+ IGNORE_ROW_ON_DUPKEY_INDEX (namespace_plugin_rel(id)) */ INTO 
namespace_plugin_rel (id,namespace_id,plugin_id, config, sort, enabled) VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0);
\ No newline at end of file
diff --git a/db/upgrade/2.7.0-upgrade-2.7.1-pg.sql 
b/db/upgrade/2.7.0-upgrade-2.7.1-pg.sql
index 3a2053effc..01a8fd5f64 100755
--- a/db/upgrade/2.7.0-upgrade-2.7.1-pg.sql
+++ b/db/upgrade/2.7.0-upgrade-2.7.1-pg.sql
@@ -16,3 +16,22 @@
 
 -- this file works for PostgreSQL, can not use "`" syntax.
 INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507032', '19', 
'handleType', 'handleType', 2, 3, 1, '{"required":"0","rule":""}', '2025-01-02 
17:20:50.233', '2025-01-02 17:20:50.233');
+
+INSERT INTO "public"."plugin" VALUES ('50', 'aiProxy', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 'Ai', 171, 0, '2023-12-20 18:02:53', '2023-12-20 18:02:53', null);
+
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507033', '50', 
'provider', 'provider', 3, 3, 1, 
'{"required":"1","defaultValue":"OpenAI","placeholder":"provider","rule":""}', 
'2024-01-02 17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507034', '50', 
'baseUrl', 'baseUrl', 2, 3, 2, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507036', '50', 
'model', 'model', 2, 3, 3, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507035', '50', 
'apiKey', 'apiKey', 2, 3, 4, '{"required":"1","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507037', '50', 
'temperature', 'temperature', 2, 3, 5, '{"required":"0","rule":"", 
"placeholder":"optional,0,0.01~1"}', '2024-01-02 17:20:50.233', '2024-01-02 
17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507038', '50', 
'maxTokens', 'maxTokens', 2, 3, 6, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507039', '50', 
'stream', 'stream', 3, 3, 7, '{"defaultValue":"false","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+INSERT INTO "public"."plugin_handle" VALUES ('1722804548510507040', '50', 
'prompt', 'prompt', 2, 3, 8, '{"required":"0","rule":""}', '2024-01-02 
17:20:50.233', '2024-01-02 17:20:50.233');
+
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737482', 'provider', 
'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737483', 'provider', 
'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737484', 'provider', 
'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737485', 'provider', 
'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+INSERT INTO "public"."shenyu_dict" VALUES ('1679002911061737486', 'provider', 
'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1, '2024-02-07 
14:31:49', '2024-02-07 14:31:49');
+
+INSERT INTO "public"."namespace_plugin_rel" VALUES 
('1801816010882822187','649330b6-c2d7-4edc-be8e-8a54df9eb385','50', 
'{"provider":"OpenAI","baseUrl":"https://api.openai.com/v1/chat/completions","model":"gpt-4o-mini","apiKey":"your_api_key","temperature":"0.5","maxTokens":"1000","stream":"false","prompt":""}',
 171, 0, '2022-05-25 18:02:53.000', '2022-05-25 18:02:53.000');
\ No newline at end of file
diff --git a/shenyu-admin/src/main/resources/sql-script/h2/schema.sql 
b/shenyu-admin/src/main/resources/sql-script/h2/schema.sql
index d6cdaff353..8a526d4f78 100755
--- a/shenyu-admin/src/main/resources/sql-script/h2/schema.sql
+++ b/shenyu-admin/src/main/resources/sql-script/h2/schema.sql
@@ -523,7 +523,7 @@ INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, 
`dict_name`, `dict_v
 INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737479', 
'rewriteMetaData', 'REWRITE_META_DATA', 'false', 'false', '', 4, 1);
 
 INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737480', 
'provider', 'PROVIDER_TYPE_OPENAI', 'OpenAI', 'OpenAI', 'OpenAI', 0, 1);
-INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737481', 
'provider', 'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'OpenAI', 1, 1);
+INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737481', 
'provider', 'PROVIDER_TYPE_DEEPSEEK', 'DeepSeek', 'DeepSeek', 'DeepSeek', 1, 1);
 INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737482', 
'provider', 'PROVIDER_TYPE_MOONSHOT', 'Moonshot', 'Moonshot', 'Moonshot', 2, 1);
 INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737483', 
'provider', 'PROVIDER_TYPE_OPENAPI', 'OpenAPI', 'OpenAPI', 'OpenAPI', 3, 1);
 INSERT IGNORE INTO `shenyu_dict` (`id`, `type`,`dict_code`, `dict_name`, 
`dict_value`, `desc`, `sort`, `enabled`) VALUES ('1679002911061737484', 
'provider', 'PROVIDER_TYPE_ALIYUN', 'ALiYun', 'ALiYun', 'ALiYun', 4, 1);

Reply via email to