Merge branch 'plugins/beta' into dev/plugin-deploy

fix/handle-agent-none-value
Yeuoly 1 year ago
commit 3ff07b8e4d

@ -20,6 +20,7 @@ from core.model_runtime.model_providers.__base.text_embedding_model import TextE
from core.model_runtime.model_providers.__base.tts_model import TTSModel from core.model_runtime.model_providers.__base.tts_model import TTSModel
from core.model_runtime.schema_validators.model_credential_schema_validator import ModelCredentialSchemaValidator from core.model_runtime.schema_validators.model_credential_schema_validator import ModelCredentialSchemaValidator
from core.model_runtime.schema_validators.provider_credential_schema_validator import ProviderCredentialSchemaValidator from core.model_runtime.schema_validators.provider_credential_schema_validator import ProviderCredentialSchemaValidator
from core.plugin.entities.plugin import ModelProviderID
from core.plugin.entities.plugin_daemon import PluginModelProviderEntity from core.plugin.entities.plugin_daemon import PluginModelProviderEntity
from core.plugin.manager.asset import PluginAssetManager from core.plugin.manager.asset import PluginAssetManager
from core.plugin.manager.model import PluginModelManager from core.plugin.manager.model import PluginModelManager
@ -112,6 +113,9 @@ class ModelProviderFactory:
:param provider: provider name :param provider: provider name
:return: provider schema :return: provider schema
""" """
if "/" not in provider:
provider = str(ModelProviderID(provider))
# fetch plugin model providers # fetch plugin model providers
plugin_model_provider_entities = self.get_plugin_model_providers() plugin_model_provider_entities = self.get_plugin_model_providers()
@ -363,4 +367,4 @@ class ModelProviderFactory:
plugin_id = "/".join(provider.split("/")[:-1]) plugin_id = "/".join(provider.split("/")[:-1])
provider_name = provider.split("/")[-1] provider_name = provider.split("/")[-1]
return plugin_id, provider_name return str(plugin_id), provider_name

@ -169,6 +169,21 @@ class GenericProviderID:
return f"{self.organization}/{self.plugin_name}" return f"{self.organization}/{self.plugin_name}"
class ModelProviderID(GenericProviderID):
def __init__(self, value: str, is_hardcoded: bool = False) -> None:
super().__init__(value, is_hardcoded)
if self.organization == "langgenius" and self.provider_name == "google":
self.provider_name = "gemini"
class ToolProviderID(GenericProviderID):
def __init__(self, value: str, is_hardcoded: bool = False) -> None:
super().__init__(value, is_hardcoded)
if self.organization == "langgenius":
if self.provider_name in ["jina", "siliconflow"]:
self.provider_name = f"{self.provider_name}_tool"
class PluginDependency(BaseModel): class PluginDependency(BaseModel):
class Type(enum.StrEnum): class Type(enum.StrEnum):
Github = PluginInstallationSource.Github.value Github = PluginInstallationSource.Github.value

@ -1,7 +1,6 @@
import datetime import datetime
import json import json
import logging import logging
import sys
import time import time
from collections.abc import Mapping, Sequence from collections.abc import Mapping, Sequence
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
@ -418,8 +417,6 @@ class PluginMigration:
logger.info("Uninstall plugins") logger.info("Uninstall plugins")
sys.exit(-1)
# get installation # get installation
try: try:
installation = manager.list_plugins(fake_tenant_id) installation = manager.list_plugins(fake_tenant_id)

@ -7,7 +7,7 @@ from sqlalchemy.orm import Session
from configs import dify_config from configs import dify_config
from core.helper.position_helper import is_filtered from core.helper.position_helper import is_filtered
from core.model_runtime.utils.encoders import jsonable_encoder from core.model_runtime.utils.encoders import jsonable_encoder
from core.plugin.entities.plugin import GenericProviderID from core.plugin.entities.plugin import GenericProviderID, ToolProviderID
from core.plugin.manager.exc import PluginDaemonClientSideError from core.plugin.manager.exc import PluginDaemonClientSideError
from core.tools.builtin_tool.providers._positions import BuiltinToolProviderSort from core.tools.builtin_tool.providers._positions import BuiltinToolProviderSort
from core.tools.entities.api_entities import ToolApiEntity, ToolProviderApiEntity from core.tools.entities.api_entities import ToolApiEntity, ToolProviderApiEntity
@ -240,10 +240,7 @@ class BuiltinToolManageService:
# rewrite db_providers # rewrite db_providers
for db_provider in db_providers: for db_provider in db_providers:
try: db_provider.provider = str(ToolProviderID(db_provider.provider))
GenericProviderID(db_provider.provider)
except Exception:
db_provider.provider = f"langgenius/{db_provider.provider}/{db_provider.provider}"
# find provider # find provider
def find_provider(provider): def find_provider(provider):

@ -87,10 +87,13 @@ const InstallByDSLList: FC<Props> = ({
const failedIndex: number[] = [] const failedIndex: number[] = []
const nextPlugins = produce(pluginsRef.current, (draft) => { const nextPlugins = produce(pluginsRef.current, (draft) => {
marketPlaceInDSLIndex.forEach((index, i) => { marketPlaceInDSLIndex.forEach((index, i) => {
if (payloads[i]) if (payloads[i]) {
draft[index] = payloads[i] draft[index] = {
else ...payloads[i],
failedIndex.push(index) version: payloads[i].version || payloads[i].latest_version,
}
}
else { failedIndex.push(index) }
}) })
}) })
setPlugins(nextPlugins) setPlugins(nextPlugins)
@ -192,8 +195,8 @@ const InstallByDSLList: FC<Props> = ({
key={index} key={index}
checked={!!selectedPlugins.find(p => p.plugin_id === plugins[index]?.plugin_id)} checked={!!selectedPlugins.find(p => p.plugin_id === plugins[index]?.plugin_id)}
onCheckedChange={handleSelect(index)} onCheckedChange={handleSelect(index)}
payload={plugins[index] as Plugin} payload={plugin}
version={(d as GitHubItemAndMarketPlaceDependency).value.version!} version={(d as GitHubItemAndMarketPlaceDependency).value.version! || plugin?.version || ''}
versionInfo={getVersionInfo(`${plugin?.org || plugin?.author}/${plugin?.name}`)} versionInfo={getVersionInfo(`${plugin?.org || plugin?.author}/${plugin?.name}`)}
/> />
) )

@ -29,8 +29,8 @@ const DebugInfo: FC = () => {
popupContent={ popupContent={
<> <>
<div className='flex items-center gap-1 self-stretch'> <div className='flex items-center gap-1 self-stretch'>
<span className='flex flex-col justify-center items-start flex-grow flex-shrink-0 basis-0 text-text-secondary system-sm-semibold'>{t(`${i18nPrefix}.title`)}</span> <span className='flex flex-col justify-center items-start grow shrink-0 basis-0 text-text-secondary system-sm-semibold'>{t(`${i18nPrefix}.title`)}</span>
<a href='' target='_blank' className='flex items-center gap-0.5 text-text-accent-light-mode-only cursor-pointer'> <a href='https://docs.dify.ai/plugins/quick-start/develop-plugins/debug-plugin' target='_blank' className='flex items-center gap-0.5 text-text-accent-light-mode-only cursor-pointer'>
<span className='system-xs-medium'>{t(`${i18nPrefix}.viewDocs`)}</span> <span className='system-xs-medium'>{t(`${i18nPrefix}.viewDocs`)}</span>
<RiArrowRightUpLine className='w-3 h-3' /> <RiArrowRightUpLine className='w-3 h-3' />
</a> </a>

Loading…
Cancel
Save