diff --git a/llama_cpp/llama.py b/llama_cpp/llama.py index 11fe169cf..d229063e8 100644 --- a/llama_cpp/llama.py +++ b/llama_cpp/llama.py @@ -1675,6 +1675,7 @@ def logit_bias_processor( token_logprobs: List[Optional[float]] = [] tokens: List[str] = [] top_logprobs: List[Optional[Dict[str, float]]] = [] + top_logprob_tokens: List[Optional[Dict[int, float]]] = [] if echo: # Remove leading BOS token if exists @@ -1719,8 +1720,13 @@ def logit_bias_processor( ): logprob for logprob, i in sorted_logprobs[:logprobs] } + top_logprob_token: Optional[Dict[int, float]] = { + i: logprob for logprob, i in sorted_logprobs[:logprobs] + } top_logprob.update({token_str: logprobs_token[int(token)]}) + top_logprob_token.update({token: logprobs_token[int(token)]}) top_logprobs.append(top_logprob) + top_logprob_tokens.append(top_logprob_token) # Weird idosincracy of the OpenAI API where # token_logprobs and top_logprobs are null for # the first token. @@ -1732,6 +1738,8 @@ def logit_bias_processor( "text_offset": text_offsets, "token_logprobs": token_logprobs, "top_logprobs": top_logprobs, + "top_logprob_tokens": top_logprob_tokens, + "all_logprobs": all_logprobs, } yield {