|
|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
import time
|
|
|
|
|
from collections.abc import Generator
|
|
|
|
|
from typing import Optional, Union
|
|
|
|
|
from typing import TYPE_CHECKING, Optional, Union
|
|
|
|
|
|
|
|
|
|
from core.app.app_config.entities import ExternalDataVariableEntity, PromptTemplateEntity
|
|
|
|
|
from core.app.apps.base_app_queue_manager import AppQueueManager, PublishFrom
|
|
|
|
|
@ -14,7 +14,6 @@ from core.app.entities.queue_entities import QueueAgentMessageEvent, QueueLLMChu
|
|
|
|
|
from core.app.features.annotation_reply.annotation_reply import AnnotationReplyFeature
|
|
|
|
|
from core.app.features.hosting_moderation.hosting_moderation import HostingModerationFeature
|
|
|
|
|
from core.external_data_tool.external_data_fetch import ExternalDataFetch
|
|
|
|
|
from core.file.file_obj import FileVar
|
|
|
|
|
from core.memory.token_buffer_memory import TokenBufferMemory
|
|
|
|
|
from core.model_manager import ModelInstance
|
|
|
|
|
from core.model_runtime.entities.llm_entities import LLMResult, LLMResultChunk, LLMResultChunkDelta, LLMUsage
|
|
|
|
|
@ -27,13 +26,16 @@ from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, Comp
|
|
|
|
|
from core.prompt.simple_prompt_transform import ModelMode, SimplePromptTransform
|
|
|
|
|
from models.model import App, AppMode, Message, MessageAnnotation
|
|
|
|
|
|
|
|
|
|
if TYPE_CHECKING:
|
|
|
|
|
from core.file.file_obj import FileVar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class AppRunner:
|
|
|
|
|
def get_pre_calculate_rest_tokens(self, app_record: App,
|
|
|
|
|
model_config: ModelConfigWithCredentialsEntity,
|
|
|
|
|
prompt_template_entity: PromptTemplateEntity,
|
|
|
|
|
inputs: dict[str, str],
|
|
|
|
|
files: list[FileVar],
|
|
|
|
|
files: list["FileVar"],
|
|
|
|
|
query: Optional[str] = None) -> int:
|
|
|
|
|
"""
|
|
|
|
|
Get pre calculate rest tokens
|
|
|
|
|
@ -126,7 +128,7 @@ class AppRunner:
|
|
|
|
|
model_config: ModelConfigWithCredentialsEntity,
|
|
|
|
|
prompt_template_entity: PromptTemplateEntity,
|
|
|
|
|
inputs: dict[str, str],
|
|
|
|
|
files: list[FileVar],
|
|
|
|
|
files: list["FileVar"],
|
|
|
|
|
query: Optional[str] = None,
|
|
|
|
|
context: Optional[str] = None,
|
|
|
|
|
memory: Optional[TokenBufferMemory] = None) \
|
|
|
|
|
|