o
    piA                     @  s   d Z ddlmZ ddlmZmZ ddlmZmZ ddl	m
Z
 ddlmZmZmZmZmZmZmZmZ eddG d	d
 d
ZeddG dd dZdddddZdS )uX  单次补全门面：已拼好的消息上下文 -> 模型结果。

扩展说明（记忆 / 画像）：
- 短期多轮上下文：在传入本门面的 `messages` 之前，由 `PromptBuilder` 与
  `ConversationContext.recent_messages` 组装。
- 长期记忆检索：在 `ContextProvider.get` 中填充 `relevant_memories`，经
  Prompt 组装进入 `messages`；写入由 `MemoryStore` 承担。
- 用户画像：通过 `Persona` 与 `PersonaStore` 在编排层维护，同样进入 Prompt。

本模块不参与上述逻辑，仅封装「messages + tools + config -> API -> 解析结果」。
    )annotations)	dataclassfield)AnySequence)LLMTransport)ChatRequestChatResponseGenerationConfigLLMMessageToolCallToolSpecUsageT)slotsc                   @  sD   e Zd ZU dZded< dZded< dZded< eed	Z	d
ed< dS )CompletionContextu$   单次模型调用的输入边界。zlist[Message]messagesNzSequence[ToolSpec] | NonetoolszGenerationConfig | Noneconfig)default_factoryzdict[str, Any]meta)
__name__
__module____qualname____doc____annotations__r   r   r   dictr    r   r   1/home/dore/onebot/Bot_Ero/core/llm/chat_facade.pyr      s   
 r   c                   @  s:   e Zd ZU dZded< ded< ded< ded< d	ed
< dS )CompletionOutcomeu$   单次模型调用的输出边界。strmessagefinish_reasonr   usagezlist[ToolCall]
tool_callsr	   rawN)r   r   r   r   r   r   r   r   r   r   *   s   
 r   N)clientcontextr&   LLMTransport | Nonereturnc                C  sZ   |dur|nt  }| jdur| jnt }|t| j|| jd}t|j|j	|j
|j|dS )uB   执行一次补全：`CompletionContext` -> `CompletionOutcome`。N)r   r   r   )r!   r"   r#   r$   r%   )r   r   r
   chatr   r   r   r   r!   r"   r#   r$   )r'   r&   	transportcfgresponser   r   r   complete5   s   r.   )r'   r   r&   r(   r)   r   )r   
__future__r   dataclassesr   r   typingr   r   core.llm.client_protocolr   core.llm.llmr   r	   r
   r   r   r   r   r   r   r   r.   r   r   r   r   <module>   s    (

