o
    پi                  
   @   sz   d dl mZ d dlmZ d dlmZ d dlmZ zd dlZW n e	y2 Z
 ze
ZW Y dZ
[
ndZ
[
ww G dd deZdS )    )BaseBackend)get_chat_template)StreamExecutor)SglSamplingParamsNc                       sH   e Zd Z fddZdd ZdedefddZdedefd	d
Z  Z	S )	Anthropicc                    s>   t    tttrt|| _td| _tj|i || _	d S )Nclaude)
super__init__
isinstance	anthropic	Exception
model_namer   chat_templater   client)selfr   argskwargs	__class__ Q/home/ubuntu/.local/lib/python3.10/site-packages/sglang/lang/backend/anthropic.pyr	      s   


zAnthropic.__init__c                 C   s   | j S )N)r   )r   r   r   r   r      s   zAnthropic.get_chat_templatessampling_paramsc                 C   sz   |j r|j }nd|jdg}|r |d d dkr |dd }nd}| jjjd	| j||d| }|jd j	}|i fS 
Nuser)rolecontentr   r   systemr    )modelr   messagesr   )
	messages_text_popr   r    creater   to_anthropic_kwargsr   text)r   r   r   r    r   retcompr   r   r   generate   s   
zAnthropic.generatec                 c   s    |j r|j }nd|jdg}|r!|d d dkr!|dd }nd}| jjjd	| j||d| }|jD ]}|i fV  q8W d    d S 1 sKw   Y  d S r   )	r!   r"   r#   r   r    streamr   r%   text_stream)r   r   r   r    r   r*   r&   r   r   r   generate_stream3   s&   

"zAnthropic.generate_stream)
__name__
__module____qualname__r	   r   r   r   r)   r,   __classcell__r   r   r   r   r      s    

r   ) sglang.lang.backend.base_backendr   sglang.lang.chat_templater   sglang.lang.interpreterr   sglang.lang.irr   r   ImportErrorer   r   r   r   r   <module>   s    