o
    -i
                     @   s|   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ dd	lmZ e	eZG d
d deZdS )    )Sequence)PreTrainedTokenizerBase)ChatCompletionRequest)DeltaMessage)init_logger)ReasoningParser)DeepSeekR1ReasoningParser   )IdentityReasoningParserc                       s   e Zd ZdZdef fddZdee defddZ	dee d	ee defd
dZ
dee dee fddZdededeedB edB f fddZdedededee dee dee dedB fddZ  ZS )DeepSeekV3ReasoningParserz
    V3 parser that delegates to either DeepSeekR1ReasoningParser or
    IdentityReasoningParser based on `thinking` and `separate_reasoning`.
    	tokenizerc                    s   t  j|g|R i | |di pi }t|dd}t|dd}|p(|}|r9t|g|R i || _d S t|g|R i || _d S )Nchat_template_kwargsthinkingFenable_thinking)super__init__getboolr   _parserr
   )selfr   argskwargschat_kwargsr   r   	__class__ h/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/vllm/reasoning/deepseek_v3_reasoning_parser.pyr      s   z"DeepSeekV3ReasoningParser.__init__	input_idsreturnc                 C      | j |S N)r   is_reasoning_endr   r   r   r   r   r!   (      z*DeepSeekV3ReasoningParser.is_reasoning_end	delta_idsc                 C      | j ||S r    )r   is_reasoning_end_streaming)r   r   r$   r   r   r   r&   +      z4DeepSeekV3ReasoningParser.is_reasoning_end_streamingc                 C   r   r    )r   extract_content_idsr"   r   r   r   r(   0   r#   z-DeepSeekV3ReasoningParser.extract_content_idsmodel_outputrequestNc                 C   r%   r    )r   extract_reasoning)r   r)   r*   r   r   r   r+   3   r'   z+DeepSeekV3ReasoningParser.extract_reasoningprevious_textcurrent_text
delta_textprevious_token_idscurrent_token_idsdelta_token_idsc                 C   s   | j ||||||S r    )r   extract_reasoning_streaming)r   r,   r-   r.   r/   r0   r1   r   r   r   r2   8   s   	z5DeepSeekV3ReasoningParser.extract_reasoning_streaming)__name__
__module____qualname____doc__r   r   r   intr   r!   r&   listr(   strr   tupler+   r   r2   __classcell__r   r   r   r   r      sD    

r   N)collections.abcr   transformersr   0vllm.entrypoints.openai.chat_completion.protocolr   'vllm.entrypoints.openai.engine.protocolr   vllm.loggerr   vllm.reasoningr   +vllm.reasoning.deepseek_r1_reasoning_parserr   identity_reasoning_parserr
   r3   loggerr   r   r   r   r   <module>   s   