chore: 针对ThinkPHP 6.x 系列,支持自定义.env 文件加载
This commit is contained in:
@@ -93,19 +93,6 @@ class Config extends BaseModel
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支持的应用模块
|
||||
* @return array
|
||||
*/
|
||||
public function getSupportAppModules()
|
||||
{
|
||||
return [
|
||||
['value' => 'shop', 'label' => '商家'],
|
||||
['value' => 'h5', 'label' => 'H5轻应用'],
|
||||
['value' => 'weixin', 'label' => '微信小程序'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认图上传配置
|
||||
* @param $data
|
||||
@@ -299,300 +286,6 @@ class Config extends BaseModel
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支持的AI平台类型
|
||||
* @return array
|
||||
*/
|
||||
public function getSupportAIPlatformTypes()
|
||||
{
|
||||
return [
|
||||
['value' => 'dify', 'label' => 'Dify'],
|
||||
['value' => 'ragflow', 'label' => 'Ragflow'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用AI相关配置获取方法
|
||||
* @param int $site_id 站点ID, 默认为-1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为*,表示所有应用模块都生效
|
||||
* @param string $config_key 配置键, 默认为空字符串, 表示获取通用配置信息
|
||||
* @param array $common_config 通用配置信息, 默认为空数组
|
||||
* @return array
|
||||
*/
|
||||
private function _getAIConfig($site_id = -1, $app_module = '*', $config_key ='', $common_config = [])
|
||||
{
|
||||
// 应用模块配置获取
|
||||
try {
|
||||
// 站点ID为-1时,获取通用配置信息
|
||||
if ($site_id == -1) {
|
||||
return $this->error('', 'MISSING_SITE_ID');
|
||||
}
|
||||
|
||||
// 配置键为空字符串, 表示获取通用配置信息
|
||||
if (empty($config_key)) {
|
||||
return $this->error('', 'MISSING_CONFIG_KEY');
|
||||
}
|
||||
|
||||
$config = new ConfigModel();
|
||||
$support_app_modules = $this->getSupportAppModules();
|
||||
|
||||
// 检查应用模块是否支持, 如果是*,则表示所有应用模块都生效
|
||||
if ($app_module != '*') {
|
||||
if (!in_array($app_module, array_column($support_app_modules, 'value'))) {
|
||||
return $this->error('', 'APP_MODULE_NOT_SUPPORTED');
|
||||
}
|
||||
}
|
||||
|
||||
// 如果是*,则表示所有应用模块都生效, 遍历所有应用模块,根据应用模块获取配置信息, 为每一种应用模块生成独立的配置信息,每一种类型的应用模块,对应自己的配置信息,然后将所有的配置信息返回
|
||||
$app_module_config = [];
|
||||
foreach ($support_app_modules as $item) {
|
||||
$app_module = $item['value'];
|
||||
|
||||
// 检查应用模块是否支持
|
||||
try {
|
||||
$res = $config->getConfig([['site_id', '=', $site_id], ['app_module', '=', $app_module], ['config_key', '=', $config_key]]);
|
||||
if (empty($res['data']['value'])) {
|
||||
$res['data']['value'] = $common_config;
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
$res['data']['value'] = $common_config;
|
||||
}
|
||||
|
||||
$app_module_config[$app_module] = $res['data']['value'];
|
||||
}
|
||||
$res['data']['value'] = $app_module_config;
|
||||
|
||||
return $res;
|
||||
} catch (\Exception $e) {
|
||||
return $this->error('', 'GET_CONFIG_ERROR' . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用AI相关配置设置方法
|
||||
* @param $data 配置信息
|
||||
* @param int $site_id 站点ID, 默认为-1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为空字符串
|
||||
* @param string $config_key 配置键, 默认为空字符串
|
||||
* @param string $data_desc 配置描述, 默认为空字符串
|
||||
* @return array
|
||||
*/
|
||||
private function _setAIConfig($data, $site_id = -1, $app_module = '', $config_key = '', $data_desc = '')
|
||||
{
|
||||
// 站点ID为-1时,设置通用配置信息
|
||||
if ($site_id == -1) {
|
||||
return $this->error('', 'MISSING_SITE_ID');
|
||||
}
|
||||
|
||||
// 应用模块为空字符串
|
||||
if (empty($app_module)) {
|
||||
return $this->error('', 'MISSING_APP_MODULE');
|
||||
}
|
||||
|
||||
// 配置键为空字符串
|
||||
if (empty($config_key)) {
|
||||
return $this->error('', 'MISSING_CONFIG_KEY');
|
||||
}
|
||||
|
||||
$config = new ConfigModel();
|
||||
$res = $config->setConfig($data, $data_desc, 1, [['site_id', '=', $site_id], ['app_module', '=', $app_module], ['config_key', '=', $config_key]]);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置AI第三平台提供的配置信息
|
||||
* @param $data 配置信息
|
||||
* @param int $site_id 站点ID, 默认为-1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为*, 表示所有应用模块都生效
|
||||
* @return array
|
||||
*/
|
||||
public function setAIPlatformConfig($data, $site_id = -1, $app_module = '')
|
||||
{
|
||||
return $this->_setAIConfig($data, $site_id, $app_module, 'AI_PLATFORM_CONFIG', 'AI第三平台提供的配置信息');
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置AI智能客服配置信息
|
||||
* @param $data 配置信息
|
||||
* @param int $site_id 站点ID, 默认为1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为*, 表示所有应用模块都生效
|
||||
* @return array
|
||||
*/
|
||||
public function setAIAgentServicesConfig($data, $site_id = 1, $app_module = '*')
|
||||
{
|
||||
return $this->_setAIConfig($data, $site_id, $app_module, 'AI_AGENT_SERVICES_CONFIG', 'AI智能客服配置信息');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取AI第三平台提供的通用配置信息
|
||||
* @return array
|
||||
*/
|
||||
private function getCommonAIPlatformConfig()
|
||||
{
|
||||
// 默认ID
|
||||
$id = time();
|
||||
|
||||
// 通用配置
|
||||
return [
|
||||
'default' => ['id' => $id, 'name' => 'dify-demo'],
|
||||
'list' => [
|
||||
// Dify Demo 版本,
|
||||
['id' => $id, 'name' => 'dify-demo', 'type' => 'dify', 'type_label' => 'Dify', 'desc' => 'Dify 线上Demo 版本', 'enable' => 1, 'base_url' => 'https://localhost/api/ai', 'api_key' => 'xxxxxxx', 'create_time' => time()],
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取AI第三平台提供的配置信息
|
||||
* @param int $site_id 站点ID, 默认为1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为*, 表示所有应用模块都生效
|
||||
* @return array
|
||||
*/
|
||||
public function getAIPlatformConfig($site_id = 1, $app_module = '*')
|
||||
{
|
||||
return $this->_getAIConfig($site_id, $app_module, 'AI_PLATFORM_CONFIG', $this->getCommonAIPlatformConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取AI智能客服的通用配置信息
|
||||
* @return array
|
||||
*/
|
||||
private function getCommonAIAgentServicesConfig()
|
||||
{
|
||||
return [
|
||||
// 是否开启AI功能
|
||||
'enable' => false,
|
||||
// 用户头像url
|
||||
'user_avatar' => [
|
||||
'en' => '',
|
||||
'zh_CN' => '',
|
||||
],
|
||||
// AI客服头像url
|
||||
'ai_avatar' => [
|
||||
'en' => '',
|
||||
'zh_CN' => '',
|
||||
],
|
||||
// AI客服姓名
|
||||
'ai_name' => [
|
||||
'en' => '',
|
||||
'zh_CN' => '',
|
||||
],
|
||||
// 欢迎语, 也称为开场白,初始化消息
|
||||
'welcome_messages' => [
|
||||
'en' => [],
|
||||
'zh_CN' => [],
|
||||
],
|
||||
// 是否显示加载更多按钮
|
||||
'show_load_more_button' => true,
|
||||
// 最大消息数量
|
||||
'max_messages' => 100,
|
||||
// 是否启用流式响应
|
||||
'stream_mode' => true,
|
||||
// 流式响应的超时时间,单位:秒
|
||||
'stream_timeout' => 30,
|
||||
// 流式响应速度(字符/秒)
|
||||
'stream_speed' => 20,
|
||||
// 是否开启支持语音输入
|
||||
'support_voice_input' => false,
|
||||
// 语音输入的提示信息
|
||||
'voice_input_prompt' => [
|
||||
'en' => 'Please click the microphone icon to start recording',
|
||||
'zh_CN' => '请点击麦克风图标开始录音',
|
||||
],
|
||||
// 是否开启语音输入提示
|
||||
'support_voice_input_prompt' => false,
|
||||
// 输入文本内容提示
|
||||
'text_input_prompt' => [
|
||||
'en' => 'Please enter your problem',
|
||||
'zh_CN' => '请输入您的问题',
|
||||
],
|
||||
// 输入的问题描述的字符长度限制
|
||||
'max_char_length_for_problem' => 500,
|
||||
// 是否支持显示更多工具面板
|
||||
'tool_panel_config' => [
|
||||
'enable' => false,
|
||||
'title' => [
|
||||
'en' => 'More Tools',
|
||||
'zh_CN' => '更多功能',
|
||||
],
|
||||
'icon' => 'icon-more',
|
||||
// 工具面板中的工具项
|
||||
'tools' => [
|
||||
'image' => [
|
||||
'enable' => false,
|
||||
'name' => [
|
||||
'en' => 'Image',
|
||||
'zh_CN' => '图片',
|
||||
],
|
||||
'description' => [
|
||||
'en' => 'Upload image',
|
||||
'zh_CN' => '上传图片',
|
||||
],
|
||||
'icon' => 'icon-image',
|
||||
],
|
||||
'video' => [
|
||||
'enable' => false,
|
||||
'name' => [
|
||||
'en' => 'Video',
|
||||
'zh_CN' => '视频',
|
||||
],
|
||||
'description' => [
|
||||
'en' => 'Upload video',
|
||||
'zh_CN' => '上传视频',
|
||||
],
|
||||
'icon' => 'icon-video',
|
||||
],
|
||||
'file' => [
|
||||
'enable' => false,
|
||||
'name' => [
|
||||
'en' => 'File',
|
||||
'zh_CN' => '文件',
|
||||
],
|
||||
'description' => [
|
||||
'en' => 'Upload file',
|
||||
'zh_CN' => '上传文件',
|
||||
],
|
||||
'icon' => 'icon-file',
|
||||
],
|
||||
'voice' => [
|
||||
'enable' => false,
|
||||
'name' => [
|
||||
'en' => 'Voice',
|
||||
'zh_CN' => '语音',
|
||||
],
|
||||
'description' => [
|
||||
'en' => 'Voice input',
|
||||
'zh_CN' => '语音输入',
|
||||
],
|
||||
'icon' => 'icon-voice',
|
||||
],
|
||||
'location' => [
|
||||
'enable' => false,
|
||||
'name' => [
|
||||
'en' => 'Location',
|
||||
'zh_CN' => '位置',
|
||||
],
|
||||
'description' => [
|
||||
'en' => 'Location input',
|
||||
'zh_CN' => '位置输入',
|
||||
],
|
||||
'icon' => 'icon-location',
|
||||
],
|
||||
],
|
||||
]
|
||||
];
|
||||
}
|
||||
/**
|
||||
* 获得AI智能客服配置信息
|
||||
* @param int $site_id 站点ID, 默认为1, 业务站点uniacid值与site_id保持一致
|
||||
* @param string $app_module 应用模块, 默认为*, 表示所有应用模块都生效
|
||||
* @return array
|
||||
*/
|
||||
public function getAIAgentServicesConfig($site_id = 1, $app_module = '*')
|
||||
{
|
||||
return $this->_getAIConfig($site_id, $app_module, 'AI_AGENT_SERVICES_CONFIG', $this->getCommonAIAgentServicesConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置获取H5域名配置
|
||||
* @param $data
|
||||
|
||||
Reference in New Issue
Block a user