dify_plugin数据库中的表总结

news2025/5/28 1:52:21

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

一.agent_strategy_installations

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

type AgentStrategyInstallation struct {
    Model
    TenantID               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 {
    Model
    Provider               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 {
    Model
    Name        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 {
    Model
    Status           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 {
    Model
    PluginUniqueIdentifier 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 {
    Model
    TenantID               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 checksum
    PluginUniqueIdentifier string `json:"plugin_unique_identifier" gorm:"index;size:255"`
    // PluginID is the id of the plugin, only plugin name is considered
    PluginID          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 {
    Model
    PluginUniqueIdentifier 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 {
    Model
    TenantID 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 {
    Model
    TenantID               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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2386092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

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

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…

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应用允许用户: 查看所有待办…

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

国际荐酒师(香港)协会率团亮相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代码+数据集等(后续会更新)

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

【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…