mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-07-31 00:22:01 +08:00
chore(quota): Update deduct quota (#14337)
Signed-off-by: -LAN- <laipz8200@outlook.com>
This commit is contained in:
parent
76bcdc2581
commit
7a71498a3e
@ -1,6 +1,7 @@
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from collections.abc import Generator, Mapping, Sequence
|
from collections.abc import Generator, Mapping, Sequence
|
||||||
|
from datetime import UTC, datetime
|
||||||
from typing import TYPE_CHECKING, Any, Optional, cast
|
from typing import TYPE_CHECKING, Any, Optional, cast
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
@ -29,6 +30,7 @@ from core.model_runtime.entities.message_entities import (
|
|||||||
from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey, ModelType
|
from core.model_runtime.entities.model_entities import ModelFeature, ModelPropertyKey, ModelType
|
||||||
from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel
|
from core.model_runtime.model_providers.__base.large_language_model import LargeLanguageModel
|
||||||
from core.model_runtime.utils.encoders import jsonable_encoder
|
from core.model_runtime.utils.encoders import jsonable_encoder
|
||||||
|
from core.plugin.entities.plugin import ModelProviderID
|
||||||
from core.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig
|
from core.prompt.entities.advanced_prompt_entities import CompletionModelPromptTemplate, MemoryConfig
|
||||||
from core.prompt.utils.prompt_message_util import PromptMessageUtil
|
from core.prompt.utils.prompt_message_util import PromptMessageUtil
|
||||||
from core.variables import (
|
from core.variables import (
|
||||||
@ -758,11 +760,17 @@ class LLMNode(BaseNode[LLMNodeData]):
|
|||||||
if used_quota is not None and system_configuration.current_quota_type is not None:
|
if used_quota is not None and system_configuration.current_quota_type is not None:
|
||||||
db.session.query(Provider).filter(
|
db.session.query(Provider).filter(
|
||||||
Provider.tenant_id == tenant_id,
|
Provider.tenant_id == tenant_id,
|
||||||
Provider.provider_name == model_instance.provider,
|
# TODO: Use provider name with prefix after the data migration.
|
||||||
|
Provider.provider_name == ModelProviderID(model_instance.provider).provider_name,
|
||||||
Provider.provider_type == ProviderType.SYSTEM.value,
|
Provider.provider_type == ProviderType.SYSTEM.value,
|
||||||
Provider.quota_type == system_configuration.current_quota_type.value,
|
Provider.quota_type == system_configuration.current_quota_type.value,
|
||||||
Provider.quota_limit > Provider.quota_used,
|
Provider.quota_limit > Provider.quota_used,
|
||||||
).update({"quota_used": Provider.quota_used + used_quota})
|
).update(
|
||||||
|
{
|
||||||
|
"quota_used": Provider.quota_used + used_quota,
|
||||||
|
"last_used": datetime.now(tz=UTC).replace(tzinfo=None),
|
||||||
|
}
|
||||||
|
)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
|
from datetime import UTC, datetime
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
from core.app.entities.app_invoke_entities import AgentChatAppGenerateEntity, ChatAppGenerateEntity
|
from core.app.entities.app_invoke_entities import AgentChatAppGenerateEntity, ChatAppGenerateEntity
|
||||||
from core.entities.provider_entities import QuotaUnit
|
from core.entities.provider_entities import QuotaUnit
|
||||||
|
from core.plugin.entities.plugin import ModelProviderID
|
||||||
from events.message_event import message_was_created
|
from events.message_event import message_was_created
|
||||||
from extensions.ext_database import db
|
from extensions.ext_database import db
|
||||||
from models.provider import Provider, ProviderType
|
from models.provider import Provider, ProviderType
|
||||||
@ -48,9 +51,15 @@ def handle(sender, **kwargs):
|
|||||||
if used_quota is not None and system_configuration.current_quota_type is not None:
|
if used_quota is not None and system_configuration.current_quota_type is not None:
|
||||||
db.session.query(Provider).filter(
|
db.session.query(Provider).filter(
|
||||||
Provider.tenant_id == application_generate_entity.app_config.tenant_id,
|
Provider.tenant_id == application_generate_entity.app_config.tenant_id,
|
||||||
Provider.provider_name == model_config.provider,
|
# TODO: Use provider name with prefix after the data migration.
|
||||||
|
Provider.provider_name == ModelProviderID(model_config.provider).provider_name,
|
||||||
Provider.provider_type == ProviderType.SYSTEM.value,
|
Provider.provider_type == ProviderType.SYSTEM.value,
|
||||||
Provider.quota_type == system_configuration.current_quota_type.value,
|
Provider.quota_type == system_configuration.current_quota_type.value,
|
||||||
Provider.quota_limit > Provider.quota_used,
|
Provider.quota_limit > Provider.quota_used,
|
||||||
).update({"quota_used": Provider.quota_used + used_quota})
|
).update(
|
||||||
|
{
|
||||||
|
"quota_used": Provider.quota_used + used_quota,
|
||||||
|
"last_used": datetime.now(tz=UTC).replace(tzinfo=None),
|
||||||
|
}
|
||||||
|
)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user