mirror of
https://github.com/langgenius/dify.git
synced 2026-01-08 07:14:14 +00:00
Compare commits
5 Commits
1.11.0
...
deploy/tri
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7dfe615613 | ||
|
|
a1a3fa0283 | ||
|
|
ff7344f3d3 | ||
|
|
bcd33be22a | ||
|
|
991f31f195 |
@@ -1004,6 +1004,11 @@ class RagPipelineRecommendedPluginApi(Resource):
|
|||||||
@login_required
|
@login_required
|
||||||
@account_initialization_required
|
@account_initialization_required
|
||||||
def get(self):
|
def get(self):
|
||||||
|
parser = reqparse.RequestParser()
|
||||||
|
parser.add_argument('type', type=str, location='args', required=False, default='all')
|
||||||
|
args = parser.parse_args()
|
||||||
|
type = args["type"]
|
||||||
|
|
||||||
rag_pipeline_service = RagPipelineService()
|
rag_pipeline_service = RagPipelineService()
|
||||||
recommended_plugins = rag_pipeline_service.get_recommended_plugins()
|
recommended_plugins = rag_pipeline_service.get_recommended_plugins(type)
|
||||||
return recommended_plugins
|
return recommended_plugins
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
"""Alter table pipeline_recommended_plugins add column type
|
||||||
|
|
||||||
|
Revision ID: 6bb0832495f0
|
||||||
|
Revises: 7bb281b7a422
|
||||||
|
Create Date: 2025-12-15 16:14:38.482072
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import models as models
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.dialects import postgresql
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = '6bb0832495f0'
|
||||||
|
down_revision = '7bb281b7a422'
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
with op.batch_alter_table('app_triggers', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('provider_name',
|
||||||
|
existing_type=sa.VARCHAR(length=255),
|
||||||
|
nullable=False,
|
||||||
|
existing_server_default=sa.text("''::character varying"))
|
||||||
|
|
||||||
|
with op.batch_alter_table('operation_logs', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('content',
|
||||||
|
existing_type=postgresql.JSON(astext_type=sa.Text()),
|
||||||
|
nullable=False)
|
||||||
|
|
||||||
|
with op.batch_alter_table('pipeline_recommended_plugins', schema=None) as batch_op:
|
||||||
|
batch_op.add_column(sa.Column('type', sa.String(length=50), nullable=True))
|
||||||
|
|
||||||
|
with op.batch_alter_table('providers', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('quota_used',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=False)
|
||||||
|
|
||||||
|
# ### end Alembic commands ###
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
# ### commands auto generated by Alembic - please adjust! ###
|
||||||
|
with op.batch_alter_table('providers', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('quota_used',
|
||||||
|
existing_type=sa.BIGINT(),
|
||||||
|
nullable=True)
|
||||||
|
|
||||||
|
with op.batch_alter_table('pipeline_recommended_plugins', schema=None) as batch_op:
|
||||||
|
batch_op.drop_column('type')
|
||||||
|
|
||||||
|
with op.batch_alter_table('operation_logs', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('content',
|
||||||
|
existing_type=postgresql.JSON(astext_type=sa.Text()),
|
||||||
|
nullable=True)
|
||||||
|
|
||||||
|
with op.batch_alter_table('app_triggers', schema=None) as batch_op:
|
||||||
|
batch_op.alter_column('provider_name',
|
||||||
|
existing_type=sa.VARCHAR(length=255),
|
||||||
|
nullable=True,
|
||||||
|
existing_server_default=sa.text("''::character varying"))
|
||||||
|
|
||||||
|
# ### end Alembic commands ###
|
||||||
@@ -1458,6 +1458,7 @@ class PipelineRecommendedPlugin(TypeBase):
|
|||||||
)
|
)
|
||||||
plugin_id: Mapped[str] = mapped_column(LongText, nullable=False)
|
plugin_id: Mapped[str] = mapped_column(LongText, nullable=False)
|
||||||
provider_name: Mapped[str] = mapped_column(LongText, nullable=False)
|
provider_name: Mapped[str] = mapped_column(LongText, nullable=False)
|
||||||
|
type: Mapped[str] = mapped_column(sa.String(50), nullable=True)
|
||||||
position: Mapped[int] = mapped_column(sa.Integer, nullable=False, default=0)
|
position: Mapped[int] = mapped_column(sa.Integer, nullable=False, default=0)
|
||||||
active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, default=True)
|
active: Mapped[bool] = mapped_column(sa.Boolean, nullable=False, default=True)
|
||||||
created_at: Mapped[datetime] = mapped_column(
|
created_at: Mapped[datetime] = mapped_column(
|
||||||
|
|||||||
@@ -907,19 +907,29 @@ class WorkflowNodeExecutionModel(Base): # This model is expected to have `offlo
|
|||||||
@property
|
@property
|
||||||
def extras(self) -> dict[str, Any]:
|
def extras(self) -> dict[str, Any]:
|
||||||
from core.tools.tool_manager import ToolManager
|
from core.tools.tool_manager import ToolManager
|
||||||
|
from core.trigger.trigger_manager import TriggerManager
|
||||||
|
|
||||||
extras: dict[str, Any] = {}
|
extras: dict[str, Any] = {}
|
||||||
if self.execution_metadata_dict:
|
execution_metadata = self.execution_metadata_dict
|
||||||
if self.node_type == NodeType.TOOL and "tool_info" in self.execution_metadata_dict:
|
if execution_metadata:
|
||||||
tool_info: dict[str, Any] = self.execution_metadata_dict["tool_info"]
|
if self.node_type == NodeType.TOOL and "tool_info" in execution_metadata:
|
||||||
|
tool_info: dict[str, Any] = execution_metadata["tool_info"]
|
||||||
extras["icon"] = ToolManager.get_tool_icon(
|
extras["icon"] = ToolManager.get_tool_icon(
|
||||||
tenant_id=self.tenant_id,
|
tenant_id=self.tenant_id,
|
||||||
provider_type=tool_info["provider_type"],
|
provider_type=tool_info["provider_type"],
|
||||||
provider_id=tool_info["provider_id"],
|
provider_id=tool_info["provider_id"],
|
||||||
)
|
)
|
||||||
elif self.node_type == NodeType.DATASOURCE and "datasource_info" in self.execution_metadata_dict:
|
elif self.node_type == NodeType.DATASOURCE and "datasource_info" in execution_metadata:
|
||||||
datasource_info = self.execution_metadata_dict["datasource_info"]
|
datasource_info = execution_metadata["datasource_info"]
|
||||||
extras["icon"] = datasource_info.get("icon")
|
extras["icon"] = datasource_info.get("icon")
|
||||||
|
elif self.node_type == NodeType.TRIGGER_PLUGIN and "trigger_info" in execution_metadata:
|
||||||
|
trigger_info = execution_metadata["trigger_info"] or {}
|
||||||
|
provider_id = trigger_info.get("provider_id")
|
||||||
|
if provider_id:
|
||||||
|
extras["icon"] = TriggerManager.get_trigger_plugin_icon(
|
||||||
|
tenant_id=self.tenant_id,
|
||||||
|
provider_id=provider_id,
|
||||||
|
)
|
||||||
return extras
|
return extras
|
||||||
|
|
||||||
def _get_offload_by_type(self, type_: ExecutionOffLoadType) -> Optional["WorkflowNodeExecutionOffload"]:
|
def _get_offload_by_type(self, type_: ExecutionOffLoadType) -> Optional["WorkflowNodeExecutionOffload"]:
|
||||||
|
|||||||
@@ -1248,12 +1248,14 @@ class RagPipelineService:
|
|||||||
session.commit()
|
session.commit()
|
||||||
return workflow_node_execution_db_model
|
return workflow_node_execution_db_model
|
||||||
|
|
||||||
def get_recommended_plugins(self) -> dict:
|
def get_recommended_plugins(self, type: str) -> dict:
|
||||||
# Query active recommended plugins
|
# Query active recommended plugins
|
||||||
|
query = db.session.query(PipelineRecommendedPlugin).where(PipelineRecommendedPlugin.active == True)
|
||||||
|
if type and type != "all":
|
||||||
|
query = query.where(PipelineRecommendedPlugin.type == type)
|
||||||
|
|
||||||
pipeline_recommended_plugins = (
|
pipeline_recommended_plugins = (
|
||||||
db.session.query(PipelineRecommendedPlugin)
|
query.order_by(PipelineRecommendedPlugin.position.asc())
|
||||||
.where(PipelineRecommendedPlugin.active == True)
|
|
||||||
.order_by(PipelineRecommendedPlugin.position.asc())
|
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user