mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-29 03:56:43 +08:00
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
"""Agent 与消息查询依赖。"""
|
|
|
|
from fastapi import Depends
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from app.api.context import (
|
|
get_agent_chat_repository,
|
|
get_agent_chat_runtime,
|
|
get_agent_chat_transaction,
|
|
get_async_session,
|
|
get_host_runtime,
|
|
)
|
|
from app.application.messaging.chat import (
|
|
AgentChatPersistenceService,
|
|
AgentChatService,
|
|
AsyncAgentChatRepository,
|
|
AsyncUnitOfWork,
|
|
)
|
|
from app.application.messaging.message import MessageQueryService
|
|
from app.startup.composition.context import AgentChatRuntime, HostRuntime
|
|
|
|
|
|
def get_agent_chat_service(
|
|
chat_repository: AsyncAgentChatRepository = Depends(get_agent_chat_repository),
|
|
unit_of_work: AsyncUnitOfWork = Depends(get_agent_chat_transaction),
|
|
) -> AgentChatService:
|
|
"""组装类型化 Agent 会话历史查询和删除服务。"""
|
|
return AgentChatService(chat_repository, unit_of_work)
|
|
|
|
|
|
def get_agent_chat_persistence(
|
|
runtime: AgentChatRuntime = Depends(get_agent_chat_runtime),
|
|
) -> AgentChatPersistenceService:
|
|
"""从类型化 Agent 运行时获取有界会话写入端口。"""
|
|
return runtime.persistence
|
|
|
|
|
|
def get_message_query_service(
|
|
db: AsyncSession = Depends(get_async_session),
|
|
runtime: HostRuntime = Depends(get_host_runtime),
|
|
) -> MessageQueryService:
|
|
"""组装消息历史异步查询服务。"""
|
|
return MessageQueryService(repository=runtime.messaging.repository(db))
|