当前位置: 首页 > article >正文

dify_plugin数据库中的表总结

本文使用dify-plugin-daemon v0.1.0版本,主要对dify_plugin数据库中的数据表进行了总结。

一.agent_strategy_installations

源码位置:dify-plugin-daemon\internal\types\models\agent.go

type AgentStrategyInstallation struct {ModelTenantID               string `json:"tenant_id" gorm:"column:tenant_id;type:uuid;index;not null"`Provider               string `json:"provider" gorm:"column:provider;size:127;index;not null"`PluginUniqueIdentifier string `json:"plugin_unique_identifier" gorm:"index;size:255"`PluginID               string `json:"plugin_id" gorm:"index;size:255"`
}

internal/types/models/agent.go 文件中的代码定义了一个名为 AgentStrategyInstallation 的结构体,用于表示代理策略的安装信息。这是一个GORM模型,用于数据库操作。让我详细解释每个字段:

字段类型解释
Model-这是一个嵌入的基础结构体,通常包含如ID、创建时间、更新时间等通用字段。
TenantIDstring `json:“tenant_id” gorm:“column:tenant_id;type:uuid;index;not null”`租户ID,使用UUID格式,这表明系统支持多租户架构。该字段在数据库中创建了索引,并被标记为非空。
Providerstring `json:“provider” gorm:“column:provider;size:127;index;not null”`提供商名称,最大长度127个字符,创建了索引并且不能为空。这可能表示代理策略的来源或供应商。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“index;size:255”`插件的唯一标识符,最大长度255个字符,创建了索引。这可能用于标识与代理策略关联的特定插件。
PluginIDstring `json:“plugin_id” gorm:“index;size:255”`插件ID,最大长度255个字符,创建了索引。这是另一种识别相关插件的方式。

从整体上看,这个结构体是系统中代理策略安装的数据模型,用于追踪不同租户安装的代理策略及其关联的插件信息。它与系统中的插件管理功能紧密相关,该模型会在系统初始化时被自动迁移到数据库中。

二.ai_model_installations

源码位置:dify-plugin-daemon\internal\types\models\model.go

定义了一个名为 AIModelInstallation 的Go结构体,用于表示AI模型的安装信息,主要用于数据库存储和API交互。

type AIModelInstallation struct {ModelProvider               string `json:"provider" gorm:"column:provider;size:127;index;not null"`TenantID               string `json:"tenant_id" gorm:"column:tenant_id;type:uuid;index;not null"`PluginUniqueIdentifier string `json:"plugin_unique_identifier" gorm:"index;size:255"`PluginID               string `json:"plugin_id" gorm:"index;size:255"`
}
字段类型解释
Model-嵌入了 Model 结构体,继承了ID、创建时间和更新时间等基础字段,ID字段是UUID类型的主键。
Providerstring `json:“provider” gorm:“column:provider;size:127;index;not null”`AI模型提供商标识,JSON序列化名: “provider”,数据库限制: 最大127字符,建立索引,非空。
TenantIDstring `json:“tenant_id” gorm:“column:tenant_id;type:uuid;index;not null”`租户ID,JSON序列化名: “tenant_id”,数据库限制: UUID类型,建立索引,非空。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“index;size:255”`插件唯一标识符,JSON序列化名: “plugin_unique_identifier”,数据库限制: 最大255字符,建立索引。
PluginIDstring `json:“plugin_id” gorm:“index;size:255”`插件ID,JSON序列化名: “plugin_id”,数据库限制: 最大255字符,建立索引。

三.endpoints

源码位置:dify-plugin-daemon\internal\types\models\endpoint.go

Endpoint 结构体是用于管理插件终端点的数据模型,主要存储终端点相关的配置和状态信息。

// HookID is a pointer to plugin id and tenant id, using it to identify the endpoint plugin
type Endpoint struct {ModelName        string                                       `json:"name" gorm:"size:127;column:name;default:'default'"`HookID      string                                       `json:"hook_id" gorm:"unique;size:127;column:hook_id"`TenantID    string                                       `json:"tenant_id" gorm:"index;size:64;column:tenant_id"`UserID      string                                       `json:"user_id" gorm:"index;size:64;column:user_id"`PluginID    string                                       `json:"plugin_id" gorm:"index;size:64;column:plugin_id"`ExpiredAt   time.Time                                    `json:"expired_at" gorm:"column:expired_at"`Enabled     bool                                         `json:"enabled" gorm:"column:enabled"`Settings    map[string]any                               `json:"settings" gorm:"column:settings;serializer:json"`Declaration *plugin_entities.EndpointProviderDeclaration `json:"declaration" gorm:"-"` // not stored in db
}

该结构体通过GORM标签定义了如何将Go结构体映射到数据库表中,包括字段名称、大小限制、索引等信息。它是插件系统的核心组件之一,用于管理租户可以访问的不同插件终端点。

字段类型解释
Model-嵌入式结构体,包含基础字段如ID、创建时间、更新时间等。
Namestring `json:“name” gorm:“size:127;column:name;default:‘default’”`终端点名称,默认值为"default",最大长度127字符。
HookIDstring `json:“hook_id” gorm:“unique;size:127;column:hook_id”`唯一标识符,用于标识特定终端点插件,具有唯一性约束。
TenantIDstring `json:“tenant_id” gorm:“index;size:64;column:tenant_id”`租户ID,建立了索引以提高查询效率。
UserIDstring `json:“user_id” gorm:“index;size:64;column:user_id”`用户ID,表示终端点的创建者或所有者。
PluginIDstring `json:“plugin_id” gorm:“index;size:64;column:plugin_id”`关联的插件ID,建立了索引。
ExpiredAttime.Time `json:“expired_at” gorm:“column:expired_at”`终端点的过期时间。
Enabledbool `json:“enabled” gorm:“column:enabled”`布尔值,表示该终端点是否启用。
Settingsmap[string]any `json:“settings” gorm:“column:settings;serializer:json”`使用JSON序列化的键值对,存储终端点的配置参数。
Declaration*plugin_entities.EndpointProviderDeclaration `json:“declaration” gorm:“-”`插件终端点声明对象,包含终端点的元数据和能力描述,不存储在数据库中。

四.install_tasks

源码位置:dify-plugin-daemon\internal\types\models\task.go

这段代码定义了与插件安装任务相关的数据结构和状态枚举。这些数据结构设计用于跟踪和管理插件安装过程,支持多租户环境下的插件管理系统。

const (InstallTaskStatusPending InstallTaskStatus = "pending"InstallTaskStatusRunning InstallTaskStatus = "running"InstallTaskStatusSuccess InstallTaskStatus = "success"InstallTaskStatusFailed  InstallTaskStatus = "failed"
)type InstallTaskPluginStatus struct {PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier"`Labels                 plugin_entities.I18nObject             `json:"labels"`Icon                   string                                 `json:"icon"`PluginID               string                                 `json:"plugin_id"`Status                 InstallTaskStatus                      `json:"status"`Message                string                                 `json:"message"`
}type InstallTask struct {ModelStatus           InstallTaskStatus         `json:"status" gorm:"not null"`TenantID         string                    `json:"tenant_id" gorm:"type:uuid;not null"`TotalPlugins     int                       `json:"total_plugins" gorm:"not null"`CompletedPlugins int                       `json:"completed_plugins" gorm:"not null"`Plugins          []InstallTaskPluginStatus `json:"plugins" gorm:"serializer:json"`
}

1.InstallTaskStatus 类型

  • 自定义字符串类型,用于表示安装任务的状态

  • 增强类型安全性,限制状态只能使用预定义的常量

2.任务状态常量

  • InstallTaskStatusPending: 待处理状态

  • InstallTaskStatusRunning: 正在运行中

  • InstallTaskStatusSuccess: 安装成功

  • InstallTaskStatusFailed: 安装失败

3.InstallTaskPluginStatus 结构体

  • 记录单个插件的安装状态信息

  • 包含插件的唯一标识符、多语言标签、图标、ID等基本信息

  • Status字段表示该插件的具体安装状态

  • Message字段用于存储安装过程的信息或错误消息

4.InstallTask 结构体

  • 继承自Model基础结构

  • 表示一个完整的安装任务,可能包含多个插件

  • 记录了租户ID、总插件数和已完成插件数等统计信息

  • Plugins字段存储所有插件的详细安装状态

  • GORM标签用于数据库存储,JSON标签用于API交互

五.plugin_declarations

源码位置:dify-plugin-daemon\internal\types\models\plugin.go

这个模型与plugin_entities.PluginDeclaration紧密关联,后者包含了详细的插件信息如版本、作者、名称、描述、图标以及功能扩展(工具、模型、端点、智能体策略等)。

type PluginDeclaration struct {ModelPluginUniqueIdentifier string                            `json:"plugin_unique_identifier" gorm:"size:255;unique"`PluginID               string                            `json:"plugin_id" gorm:"size:255;index"`Declaration            plugin_entities.PluginDeclaration `json:"declaration" gorm:"serializer:json;type:text;size:65535"`
}
字段类型解释
Model-嵌入式结构体,提供了通用的数据库模型字段(如ID、创建时间等)。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“size:255;unique”`插件的唯一标识符,在数据库中建立了唯一索引(unique),确保不会有重复值,长度限制为255字符。
PluginIDstring `json:“plugin_id” gorm:“size:255;index”`插件ID,在数据库中建立了索引(index),优化查询性能,长度限制为255字符。
Declarationplugin_entities.PluginDeclaration `json:“declaration” gorm:“serializer:json;type:text;size:65535”`完整的插件声明信息,类型为plugin_entities.PluginDeclaration,包含丰富的插件元数据。通过GORM的serializer:json标签将复杂结构序列化为JSON存储,字段类型text,最大长度为65535字节。

1.PluginDeclaration

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\plugin_declaration.go

type PluginDeclaration struct {PluginDeclarationWithoutAdvancedFields `yaml:",inline"`Verified                               bool                              `json:"verified" yaml:"verified"`Endpoint                               *EndpointProviderDeclaration      `json:"endpoint,omitempty" yaml:"endpoint,omitempty" validate:"omitempty"`Model                                  *ModelProviderDeclaration         `json:"model,omitempty" yaml:"model,omitempty" validate:"omitempty"`Tool                                   *ToolProviderDeclaration          `json:"tool,omitempty" yaml:"tool,omitempty" validate:"omitempty"`AgentStrategy                          *AgentStrategyProviderDeclaration `json:"agent_strategy,omitempty" yaml:"agent_strategy,omitempty" validate:"omitempty"`
}

2.PluginDeclarationWithoutAdvancedFields

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\plugin_declaration.go

type PluginDeclarationWithoutAdvancedFields struct {Version     manifest_entities.Version          `json:"version" yaml:"version,omitempty" validate:"required,version"`Type        manifest_entities.DifyManifestType `json:"type" yaml:"type,omitempty" validate:"required,eq=plugin"`Author      string                             `json:"author" yaml:"author,omitempty" validate:"omitempty,max=64"`Name        string                             `json:"name" yaml:"name,omitempty" validate:"required,max=128"`Label       I18nObject                         `json:"label" yaml:"label" validate:"required"`Description I18nObject                         `json:"description" yaml:"description" validate:"required"`Icon        string                             `json:"icon" yaml:"icon,omitempty" validate:"required,max=128"`Resource    PluginResourceRequirement          `json:"resource" yaml:"resource,omitempty" validate:"required"`Plugins     PluginExtensions                   `json:"plugins" yaml:"plugins,omitempty" validate:"required"`Meta        PluginMeta                         `json:"meta" yaml:"meta,omitempty" validate:"required"`Tags        []manifest_entities.PluginTag      `json:"tags" yaml:"tags,omitempty" validate:"omitempty,dive,plugin_tag,max=128"`CreatedAt   time.Time                          `json:"created_at" yaml:"created_at,omitempty" validate:"required"`Privacy     *string                            `json:"privacy,omitempty" yaml:"privacy,omitempty" validate:"omitempty"`Repo        *string                            `json:"repo,omitempty" yaml:"repo,omitempty" validate:"omitempty,url"`
}

3.EndpointProviderDeclaration

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\endpoint_declaration.go

type EndpointProviderDeclaration struct {Settings      []ProviderConfig      `json:"settings" yaml:"settings" validate:"omitempty,dive"`Endpoints     []EndpointDeclaration `json:"endpoints" yaml:"endpoint_declarations" validate:"omitempty,dive"`EndpointFiles []string              `json:"-" yaml:"-"`
}

4.ModelProviderDeclaration

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\model_declaration.go

type ModelProviderDeclaration struct {Provider                 string                           `json:"provider" yaml:"provider" validate:"required,lt=256"`Label                    I18nObject                       `json:"label" yaml:"label" validate:"required"`Description              *I18nObject                      `json:"description" yaml:"description,omitempty" validate:"omitempty"`IconSmall                *I18nObject                      `json:"icon_small" yaml:"icon_small,omitempty" validate:"omitempty"`IconLarge                *I18nObject                      `json:"icon_large" yaml:"icon_large,omitempty" validate:"omitempty"`Background               *string                          `json:"background" yaml:"background,omitempty" validate:"omitempty"`Help                     *ModelProviderHelpEntity         `json:"help" yaml:"help,omitempty" validate:"omitempty"`SupportedModelTypes      []ModelType                      `json:"supported_model_types" yaml:"supported_model_types" validate:"required,lte=16,dive,model_type"`ConfigurateMethods       []ModelProviderConfigurateMethod `json:"configurate_methods" yaml:"configurate_methods" validate:"required,lte=16,dive,model_provider_configurate_method"`ProviderCredentialSchema *ModelProviderCredentialSchema   `json:"provider_credential_schema" yaml:"provider_credential_schema,omitempty" validate:"omitempty"`ModelCredentialSchema    *ModelCredentialSchema           `json:"model_credential_schema" yaml:"model_credential_schema,omitempty" validate:"omitempty"`Position                 *ModelPosition                   `json:"position,omitempty" yaml:"position,omitempty"`Models                   []ModelDeclaration               `json:"models" yaml:"model_declarations,omitempty"`ModelFiles               []string                         `json:"-" yaml:"-"`PositionFiles            map[string]string                `json:"-" yaml:"-"`
}

5.ToolProviderDeclaration

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\tool_declaration.go

type ToolProviderDeclaration struct {Identity          ToolProviderIdentity `json:"identity" yaml:"identity" validate:"required"`CredentialsSchema []ProviderConfig     `json:"credentials_schema" yaml:"credentials_schema" validate:"omitempty,dive"`OAuthSchema       *OAuthSchema         `json:"oauth_schema" yaml:"oauth_schema" validate:"omitempty,dive"`Tools             []ToolDeclaration    `json:"tools" yaml:"tools" validate:"required,dive"`ToolFiles         []string             `json:"-" yaml:"-"`
}

6.AgentStrategyProviderDeclaration

源码位置:dify-plugin-daemon\pkg\entities\plugin_entities\agent_declaration.go

type AgentStrategyProviderDeclaration struct {Identity      AgentStrategyProviderIdentity `json:"identity" yaml:"identity" validate:"required"`Strategies    []AgentStrategyDeclaration    `json:"strategies" yaml:"strategies" validate:"required,dive"`StrategyFiles []string                      `json:"-" yaml:"-"`
}

六.plugin_installations

源码位置:dify-plugin-daemon\internal\types\models\installation.go

type PluginInstallation struct {ModelTenantID               string         `json:"tenant_id" gorm:"index;type:uuid;"`PluginID               string         `json:"plugin_id" gorm:"index;size:255"`PluginUniqueIdentifier string         `json:"plugin_unique_identifier" gorm:"index;size:255"`RuntimeType            string         `json:"runtime_type" gorm:"size:127"`EndpointsSetups        int            `json:"endpoints_setups"`EndpointsActive        int            `json:"endpoints_active"`Source                 string         `json:"source" gorm:"column:source;size:63"`Meta                   map[string]any `json:"meta" gorm:"column:meta;serializer:json"`
}
字段类型解释
Model-嵌入了基础模型结构体,继承了IDCreatedAtUpdatedAt字段。
TenantIDstring `json:“tenant_id” gorm:“index;type:uuid;”`租户ID,UUID格式,在数据库中建立了索引以加快查询。
PluginIDstring `json:“plugin_id” gorm:“index;size:255”`插件ID,最大长度255,并建立索引。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“index;size:255”`插件唯一标识符,最大长度255的字符串,建立了索引。
RuntimeTypestring `json:“runtime_type” gorm:“size:127”`运行时类型,最大长度127,可能表示插件运行的环境或技术栈。
EndpointsSetupsint `json:“endpoints_setups”`已设置的端点数量,整型值。
EndpointsActiveint `json:“endpoints_active”`当前活跃的端点数量,整型值。
Sourcestring `json:“source” gorm:“column:source;size:63”`来源信息,最大长度63,可能指明插件的来源渠道。
Metamap[string]any `json:“meta” gorm:“column:meta;serializer:json”`存储元数据的映射,使用JSON序列化存储在数据库中,支持存储各种类型的附加信息。

七.plugins

源码位置:dify-plugin-daemon\internal\types\models\plugin.go

type Plugin struct {Model// PluginUniqueIdentifier is a unique identifier for the plugin, it contains version and checksumPluginUniqueIdentifier string `json:"plugin_unique_identifier" gorm:"index;size:255"`// PluginID is the id of the plugin, only plugin name is consideredPluginID          string                             `json:"id" gorm:"index;size:255"`Refers            int                                `json:"refers" gorm:"default:0"`InstallType       plugin_entities.PluginRuntimeType  `json:"install_type" gorm:"size:127;index"`ManifestType      manifest_entities.DifyManifestType `json:"manifest_type" gorm:"size:127"`RemoteDeclaration plugin_entities.PluginDeclaration  `json:"remote_declaration" gorm:"serializer:json;type:text;size:65535"` // enabled when plugin is remote
}
字段类型解释
Model-基础模型结构体,通常包含ID、创建时间、更新时间等通用字段。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“index;size:255”`插件的唯一标识符,包含版本和校验和信息,用于精确定位特定版本的插件。
PluginIDstring `json:“id” gorm:“index;size:255”`插件的ID,仅考虑插件名称,不含版本信息。
Refersint `json:“refers” gorm:“default:0”`引用计数,记录插件被引用的次数,默认值为0。
InstallTypeplugin_entities.PluginRuntimeType `json:“install_type” gorm:“size:127;index”`插件的运行时类型,定义插件的安装和运行方式。
ManifestTypemanifest_entities.DifyManifestType `json:“manifest_type” gorm:“size:127”`清单类型,指定插件使用的清单格式。
RemoteDeclarationplugin_entities.PluginDeclaration `json:“remote_declaration” gorm:“serializer:json;type:text;size:65535”`远程插件的声明信息,仅当插件为远程类型时使用,包含插件的详细配置信息。

八.serverless_runtimes

源码位置:dify-plugin-daemon\internal\types\models\plugin.go

type ServerlessRuntime struct {ModelPluginUniqueIdentifier string                `json:"plugin_unique_identifier" gorm:"size:255;unique"`FunctionURL            string                `json:"function_url" gorm:"size:255"`FunctionName           string                `json:"function_name" gorm:"size:127"`Type                   ServerlessRuntimeType `json:"type" gorm:"size:127"`Checksum               string                `json:"checksum" gorm:"size:127;index"`
}
字段类型解释
Model-基础模型结构体,包含ID、创建时间和更新时间等字段。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“size:255;unique”`插件的唯一标识符,包含版本和校验和信息,在数据库中设置为唯一。
FunctionURLstring `json:“function_url” gorm:“size:255”`无服务器函数的访问URL地址,用于调用相应函数。
FunctionNamestring `json:“function_name” gorm:“size:127”`函数的名称,用于标识特定的无服务器函数。
TypeServerlessRuntimeType `json:“type” gorm:“size:127”`无服务器运行时的类型,使用自定义的ServerlessRuntimeType枚举。
Checksumstring `json:“checksum” gorm:“size:127;index”`代码校验和,用于验证函数的完整性,防止代码被篡改。

九.tenant_storages

源码位置:dify-plugin-daemon\internal\types\models\storage.go

此结构体用于跟踪每个租户在各插件中的存储资源使用情况。

type TenantStorage struct {ModelTenantID string `gorm:"column:tenant_id;type:varchar(255);not null;index"`PluginID string `gorm:"column:plugin_id;type:varchar(255);not null;index"`Size     int64  `gorm:"column:size;type:bigint;not null"`
}
字段类型解释
Model-嵌入的基础模型结构体,包含通用字段如ID、创建时间和更新时间等。
TenantIDstring `gorm:“column:tenant_id;type:varchar(255);not null;index”`租户的唯一标识符,类型为字符串,数据库特性为varchar(255),非空,有索引。
PluginIDstring `gorm:“column:plugin_id;type:varchar(255);not null;index”`插件的ID,不含版本信息,类型为字符串,数据库特性为varchar(255),非空,有索引。
Sizeint64 `gorm:“column:size;type:bigint;not null”`记录租户在该插件中使用的存储空间大小,类型为int64 (8字节整数),数据库特性为bigint,非空。

十.tool_installations

源码位置:dify-plugin-daemon\internal\types\models\tool.go

此结构体用于跟踪和记录租户安装的工具或插件信息,建立了租户与其安装的插件之间的关联关系。通过这些字段可以唯一标识一个租户安装的特定插件实例。

type ToolInstallation struct {ModelTenantID               string `json:"tenant_id" gorm:"column:tenant_id;type:uuid;index;not null"`Provider               string `json:"provider" gorm:"column:provider;size:127;index;not null"`PluginUniqueIdentifier string `json:"plugin_unique_identifier" gorm:"index;size:255"`PluginID               string `json:"plugin_id" gorm:"index;size:255"`
}

这个结构体定义了工具或插件安装的数据模型,用于GORM数据库操作。

字段类型解释
Model-内嵌的基础模型结构体,通常包含ID、创建时间、更新时间等基本字段。
TenantIDstring `json:“tenant_id” gorm:“column:tenant_id;type:uuid;index;not null”`租户的唯一标识符,类型为UUID字符串,设置了数据库索引,不允许为空。
Providerstring `json:“provider” gorm:“column:provider;size:127;index;not null”`插件/工具提供者名称,最大长度为127字符,设置了数据库索引,不允许为空。
PluginUniqueIdentifierstring `json:“plugin_unique_identifier” gorm:“index;size:255”`插件的唯一标识符,最大长度为255字符,设置了数据库索引。
PluginIDstring `json:“plugin_id” gorm:“index;size:255”`插件ID,最大长度为255字符,设置了数据库索引。

参考文献

[1] https://github.com/langgenius/dify-plugin-daemon

[2] https://github.com/langgenius/dify-official-plugins

[3] https://github.com/langgenius/dify-plugins

[4] https://github.com/langgenius/dify-plugin-sdks

[5] dify_plugin数据库中的表总结:https://z0yrmerhgi8.feishu.cn/wiki/Q2FmwTyJJie8cAkSA5IcLdb3nY9

相关文章:

dify_plugin数据库中的表总结

本文使用dify-plugin-daemon v0.1.0版本,主要对dify_plugin数据库中的数据表进行了总结。 一.agent_strategy_installations 源码位置:dify-plugin-daemon\internal\types\models\agent.go type AgentStrategyInstallation struct {ModelTenantID …...

【数据仓库面试题合集④】SQL 性能调优:面试高频场景 + 调优策略解析

随着业务数据规模的持续增长,SQL 查询的执行效率直接影响到数据平台的稳定性与数据产出效率。因此,在数据仓库类岗位的面试中,SQL 性能调优常被作为重点考察内容。 本篇将围绕常见 SQL 调优问题,结合实际经验,整理出高频面试题与答题参考,助你在面试中游刃有余。 🎯 高…...

HarmonyOS学习——UIAbility组件(上)

UIAbility组件概述 应用程序有几种界面交互形式 UIAbility:应用程序的入口 概述 UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。 UIAbility的设计理念: 原生支持应用组件级的跨端迁移和多端协同。 支持多设备和多窗口形态。…...

【Linux】磁盘空间不足

错误提示: no space left on device 经典版(block占用) 模拟 dd if/dev/zero of/var/log/nginx.log bs1M count2000排查 #1. df -h 查看哪里空间不足,哪个分区#2. du -sh详细查看目录所占空间 du -sh /* 排查占用空间大的目录 du -sh /var/* du…...

持续更新 ,GPT-4o 风格提示词案例大全!附使用方式

本文汇集了各类4o风格提示词的精选案例,从基础指令到复杂任务,从创意写作到专业领域,为您提供全方位的参考和灵感。我们将持续更新这份案例集,确保您始终能够获取最新、最有效的提示词技巧。 让我们一起探索如何通过精心设计的提…...

线性代数之张量计算,支撑AI算法的数学原理

目录 一、张量计算的数学本质 1、线性代数:张量的几何与代数性质 2、微积分:梯度与自动微分 3、优化理论:张量分解与正则化 4、张量计算的核心操作 二、张量计算在AI算法中的作用 1、数据表示与处理 2、神经网络的参数表示 3、梯度计算与优化 三、张量计算在AI中的…...

QStandardItemModel的函数和信号介绍

前言 Qt版本:6.8.0 QStandardItem函数介绍 函数 部分函数有不同的重载来适应不同的模型,例如appendrow 构造函数与析构函数 1. QStandardItemModel(QObject *parent nullptr) 说明:创建一个空的模型(0行0列)。参数: parent&…...

Python 内存管理机制详解:从分配到回收的全流程剖析

在 Python 编程中,开发者无需像 C/C 那样手动分配和释放内存,但这并不意味着内存管理与我们无关。了解 Python 内存管理机制,能帮助我们编写出更高效、稳定的代码。接下来,我们将深入剖析 Python 内存管理的各个环节,并…...

【报错】Error attempting to get column ‘created_time‘ from result set.解决方法

postman报错以下内容 {"code": "500","msg": "查询失败:Error attempting to get column created_time from result set. Cause: java.sql.SQLFeatureNotSupportedException\n; null; nested exception is java.sql.SQLFeatur…...

Redis 3.0~8.0特性与数据结构全面解析

目录 引言 第一部分:Redis版本演进与核心特性 Redis 3.0(2015年):分布式架构的里程碑 Redis 4.0(2017年):模块化与性能优化 Redis 5.0(2018年):流数据结构…...

Google 推出 Flow —— AI 电影制作新平台

这周, Google I/O 2025 大会上发布了一些重磅 AI 公告。 他们推出了全新的图像模型 Imagen 4,还发布了升级版视频生成器 Veo 3、升级版 Gemini Pro 模型,以及一系列其他令人印象深刻的更新。 但将所有这些生成式媒体工具整合在一起的,是他们称为 Flow 的平台。 什么是 F…...

跨链风云:打破区块链孤岛,实现价值自由流转

嘿,各位技术爱好者们!今天我们来聊一个区块链领域非常火热且至关重要的话题——跨链技术。你可能听说过,比如想把在波场(Tron)链上的USDT转移到以太坊(Ethereum)网络上,这个过程就涉…...

鸿蒙开发:了解$$运算符

前言 本文基于Api13 有这样一个需求,一个Text组件,一个TextInput组件,要求Text组件同步展示TextInput组件里的内容,也就是TextInput组件输入什么内容,就要在Text组件里展示什么内容,这个需求如何实现呢&…...

基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析

基于CEEMDAN-Transformer-BiLSTM的多特征风速气候预测的完整实现方案及PyTorch源码解析 一、模型架构设计 1.1 整体框架 该模型采用三级架构设计(图1): CEEMDAN分解层:对非平稳风速序列进行自适应分解多模态特征融合模块&#…...

特征预处理

作为机器学习初学者,理解特征预处理就像学做菜前必须学会的"洗菜、切配、腌制"——它直接决定了最终模型的口感(性能)。我会用最生活化的比喻代码示例带你轻松掌握这个必备技能。 一、为什么要特征预处理? 原始数据的问…...

第七课 医学影像学临床研究数据管理与统计分析思路

引言 医学影像学作为现代医学的重要组成部分,在疾病诊断、治疗监测和预后评估中发挥着关键作用。随着影像技术的快速发展和临床研究需求的不断增长,如何有效管理和分析医学影像学研究数据已成为临床研究成功的关键因素。本文将系统介绍医学影像学临床研究中的数据管理流程、…...

基于TypeScript的全栈待办事项应用Demo

Demo地址:git clone https://gitcode.com/rmbnetlife/todo-app.git Todo List 应用 这是一个基于TypeScript的全栈待办事项应用,前端使用React,后端使用Node.js和Express。 项目概述 这个Todo List应用允许用户: 查看所有待办…...

obsidian 中的查找和替换插件,支持正则

最近用着 obsidian 时,发现想要在当前文档中 查找和替换 内容时,没有自动查找和替换的功能,去插件市场查找也没有发现好用的插件,那就自己写一个吧。 全程用的 AI 来写的,当然,我对 JS/CSS/TypeScript 等没…...

国际荐酒师(香港)协会亮相新西兰葡萄酒巡展深度参与赵凤仪大师班

国际荐酒师(香港)协会率团亮相2025新西兰葡萄酒巡展 深度参与赵凤仪MW“百年百碧祺”大师班 广州/上海/青岛,2025年5月12-16日——国际荐酒师(香港)协会(IRWA)近日率专业代表团出席“纯净独特&…...

【深度学习】2. 从梯度推导到优化策略:反向传播与 SGD, Mini SGD

反向传播算法详解 1. 前向传播与输出层误差定义 假设我们考虑一个典型的前馈神经网络,其最后一层为 softmax 分类器,损失函数为交叉熵。 前向传播过程 对于某一隐藏层神经元 j j j: 输入: x i x_i xi​ 权重: w j…...

工业软件国产化:构建自主创新生态,赋能制造强国建设

随着全球产业环境的变化和技术的发展,建立自主可控的工业体系成为我国工业转型升级、走新型工业化道路、推动国家制造业竞争水平提升的重要抓手。 市场倒逼与政策护航,国产化进程双轮驱动 据中商产业研究院预测,2025年中国工业软件市场规模…...

UART、RS232、RS485基础知识

一、UART串口通信介绍 UART是一种采用异步串行、全双工通信方式的通用异步收发传输器功能。 硬件电路: •简单双向串口通信有两根通信线(发送端TX和接收端RX) •TX与RX要交叉连接 •当只需单向的数据传输时,可以只接一根通信线…...

AI重塑数据治理的底层逻辑

AI重塑数据治理的底层逻辑 人治模式:一个必然失败的商业逻辑智治模式:重新定义数据治理的商业模式结语 上个月,一位老友约我喝茶。他是某知名互联网公司的数据总监,聊天时满脸愁容。 “润总,我们公司数据治理团队有50多…...

基于 AI 实现阿里云的智能财务管家

新钛云服已累计为您分享844篇技术干货 为了解决传统账单处理中人工查询效率低下、响应速度慢及易出错等问题,同时顺应AI技术发展趋势,提升服务智能化水平。随着业务规模扩大和账单数据复杂度增加,人工处理已难以满足高效管理需求。我们想到通…...

【成品论文】2025年电工杯数学建模竞赛B题50页保奖成品论文+matlab/python代码+数据集等(后续会更新)

文末获取资料 多约束条件下城市垃圾分类运输调度问题 摘要 随着城市化进程加快,城市生活垃圾产量持续增长,垃圾分类运输已成为城市环境治理的关键环节。本文针对城市垃圾分类运输中的路径优化与调度问题,综合考虑不同垃圾类型、车辆载重约束…...

​​IIS文件上传漏洞绕过:深入解析与高效防御​

目录 ​​一、IIS解析漏洞的底层逻辑​​ ​​二、绕过技巧:从基础到高级​​ ​​1. 分号截断与路径拼接(经典手法)​​ ​​2. 目录解析漏洞利用​​ ​​3. 操作系统特性与字符混淆​​ ​​4. 扩展名黑名单绕过​​ ​​5. 结合其他…...

【node.js】数据库与存储

个人主页:Guiat 归属专栏:node.js 文章目录 1. 数据库概述1.1 数据库在Node.js中的作用1.2 Node.js支持的数据库类型 2. 关系型数据库集成2.1 MySQL与Node.js2.1.1 安装MySQL驱动2.1.2 建立连接2.1.3 执行CRUD操作 2.2 PostgreSQL与Node.js2.2.1 安装pg驱…...

leetcode2081. k 镜像数字的和-hard

1 题目:k 镜像数字的和 官方标定难度:难 一个 k 镜像数字 指的是一个在十进制和 k 进制下从前往后读和从后往前读都一样的 没有前导 0 的 正 整数。 比方说,9 是一个 2 镜像数字。9 在十进制下为 9 ,二进制下为 1001 &#xff…...

Halcon 单目相机标定测量

文章目录 双面相机标定链接一维测量gen_cam_par_area_scan_division -为区域扫描相机生成一个相机参数元组,该相机的变形由分割模型建模。(相机自带参数)create_calib_data -创建Halcon 数据标定模型set_calib_data_cam_param -设置校准数据模型中摄像机的类型和初始…...

git子模块--常见操作

克隆仓库 标准化克隆流程 基本命令git clone <父仓库远程URL> [本地文件名] cd <本地仓库名> git submodule init # 初始化子模块配置 git submodule update # 拉取子模块内容一次性完成克隆和初始化流程 基本命令git clone --recurse-submodules <父仓库远…...