mirror of
https://github.com/langgenius/dify.git
synced 2026-06-08 00:41:55 +08:00
fix: performance optimization on TTFE critical path (#36185)
This commit is contained in:
parent
cc72e56cd0
commit
0ef793f935
@ -7,7 +7,7 @@ from contextlib import contextmanager
|
||||
from threading import Thread
|
||||
from typing import Any, Union
|
||||
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy import select, update
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from constants.tts_auto_play_timeout import TTS_AUTO_PLAY_TIMEOUT, TTS_AUTO_PLAY_YIELD_CPU_TIME
|
||||
@ -311,11 +311,9 @@ class AdvancedChatAppGenerateTaskPipeline(GraphRuntimeStateSupport):
|
||||
self._workflow_run_id = run_id
|
||||
|
||||
with self._database_session() as session:
|
||||
message = self._get_message(session=session)
|
||||
if not message:
|
||||
raise ValueError(f"Message not found: {self._message_id}")
|
||||
|
||||
message.workflow_run_id = run_id
|
||||
session.execute(
|
||||
update(Message).where(Message.id == self._message_id).values(workflow_run_id=run_id)
|
||||
)
|
||||
|
||||
workflow_start_resp = self._workflow_response_converter.workflow_start_to_stream_response(
|
||||
task_id=self._application_generate_entity.task_id,
|
||||
|
||||
@ -63,9 +63,13 @@ class DifyModelFactory:
|
||||
|
||||
|
||||
def build_dify_model_access(tenant_id: str) -> tuple[CredentialsProvider, ModelFactory]:
|
||||
provider_manager = ProviderManager()
|
||||
return (
|
||||
DifyCredentialsProvider(tenant_id=tenant_id),
|
||||
DifyModelFactory(tenant_id=tenant_id),
|
||||
DifyCredentialsProvider(tenant_id=tenant_id, provider_manager=provider_manager),
|
||||
DifyModelFactory(
|
||||
tenant_id=tenant_id,
|
||||
model_manager=ModelManager(enable_credentials_cache=True, provider_manager=provider_manager),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@ -480,8 +480,8 @@ class ModelInstance:
|
||||
|
||||
|
||||
class ModelManager:
|
||||
def __init__(self, enable_credentials_cache: bool = False):
|
||||
self._provider_manager = ProviderManager()
|
||||
def __init__(self, enable_credentials_cache: bool = False, provider_manager: ProviderManager | None = None):
|
||||
self._provider_manager = provider_manager or ProviderManager()
|
||||
self._credentials_cache: dict[tuple[str, str, str, str], Any] = {}
|
||||
self._enable_credentials_cache = enable_credentials_cache
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user