Skip to content

Commit 65da942

Browse files
authored
Fix: only retrieval plugin-compatible providers when provider_name starts with langgenius (#15133)
1 parent b7583e9 commit 65da942

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

api/core/entities/provider_configuration.py

+22-10
Original file line numberDiff line numberDiff line change
@@ -187,18 +187,30 @@ def custom_credentials_validate(self, credentials: dict) -> tuple[Provider | Non
187187
:return:
188188
"""
189189
# get provider
190-
provider_record = (
191-
db.session.query(Provider)
192-
.filter(
193-
Provider.tenant_id == self.tenant_id,
194-
Provider.provider_type == ProviderType.CUSTOM.value,
195-
or_(
196-
Provider.provider_name == ModelProviderID(self.provider.provider).plugin_name,
190+
model_provider_id = ModelProviderID(self.provider.provider)
191+
if model_provider_id.is_langgenius():
192+
provider_record = (
193+
db.session.query(Provider)
194+
.filter(
195+
Provider.tenant_id == self.tenant_id,
196+
Provider.provider_type == ProviderType.CUSTOM.value,
197+
or_(
198+
Provider.provider_name == model_provider_id.provider_name,
199+
Provider.provider_name == self.provider.provider,
200+
),
201+
)
202+
.first()
203+
)
204+
else:
205+
provider_record = (
206+
db.session.query(Provider)
207+
.filter(
208+
Provider.tenant_id == self.tenant_id,
209+
Provider.provider_type == ProviderType.CUSTOM.value,
197210
Provider.provider_name == self.provider.provider,
198-
),
211+
)
212+
.first()
199213
)
200-
.first()
201-
)
202214

203215
# Get provider credential secret variables
204216
provider_credential_secret_variables = self.extract_secret_variables(

api/core/plugin/entities/plugin.py

+3
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,9 @@ def __init__(self, value: str, is_hardcoded: bool = False) -> None:
164164
self.organization, self.plugin_name, self.provider_name = value.split("/")
165165
self.is_hardcoded = is_hardcoded
166166

167+
def is_langgenius(self) -> bool:
168+
return self.organization == "langgenius"
169+
167170
@property
168171
def plugin_id(self) -> str:
169172
return f"{self.organization}/{self.plugin_name}"

0 commit comments

Comments
 (0)