
    Pi(                     p    d dl Z d dlmZ d dlZd dlmZ  G d de j                  Z G d de          Z	dS )    N)Anyc                   |    e Zd Zej        dej        ej                 de	dej        ej                 fd            Z
dS )LlamaDraftModel	input_idskwargsreturnc                    t                      N)NotImplementedErrorselfr   r   s      o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/llama_cpp/llama_speculative.py__call__zLlamaDraftModel.__call__
   s     "###    N)__name__
__module____qualname__abcabstractmethodnptNDArraynpintcr   r    r   r   r   r   	   s`        $RW-$<?$	RW	$ $ $ $ $ $r   r   c                       e Zd ZdZddedefdZedej        e	j
                 dedefd            Zdej        e	j
                 d	ed
ej        e	j
                 fdZdS )LlamaPromptLookupDecodingz>Based on https://github.com/apoorvumang/prompt-lookup-decoding   
   max_ngram_sizenum_pred_tokensc                 "    || _         || _        d S r
   )r   r    )r   r   r    s      r   __init__z"LlamaPromptLookupDecoding.__init__   s    ,.r   r   c                    | j         d         }t          t          ||dz
            dd          D ]}t          j        j                            | |f          }| | d          }t          j        ||k    d          }t          j        |          d         }|D ]0}	|	|z   }
|
|z   }t          ||          }|
|k     r| |
|         c c S 1t          j	        g t          j
                  S )Nr      )axis)dtype)shaperangeminr   libstride_trickssliding_window_viewallnonzeroarrayr   )r   r   r    input_length
ngram_sizewindowsngram_arraymatchesmatch_indicesidx	start_idxend_idxs               r   find_candidate_pred_tokensz4LlamaPromptLookupDecoding.find_candidate_pred_tokens   s    !q)NL14D E Eq"MM 	8 	8Jf*>>y:-XXG $ZKLL1K fW3!<<<G Jw//2M % 8 8*,	#o5g|44w&&$Yw%6777777 '8 x"'****r   r   r   c                F    |                      || j        | j                  S )N)r   r   r    )r:   r   r    r   s      r   r   z"LlamaPromptLookupDecoding.__call__9   s0     ... 0 / 
 
 	
r   N)r   r   )r   r   r   __doc__intr"   staticmethodr   r   r   r   r:   r   r   r   r   r   r   r      s        HH/ /s / / / / / +;rw'++ + + + \+@
RW-
<?
	RW	
 
 
 
 
 
r   r   )
r   typingr   numpyr   numpy.typingr   ABCr   r   r   r   r   <module>rC      s    



                $ $ $ $ $cg $ $ $/
 /
 /
 /
 /
 /
 /
 /
 /
 /
r   