Coverage for src/certus/interface.py: 100%
15 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-04 09:44 +0100
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-04 09:44 +0100
1"""Module for the log probability interface functions."""
3from google.genai import types
5from . import utils
6from .nodes import core
9def from_google(result: types.LogprobsResult) -> list[core.Token]:
10 """
11 Extract token nodes from a Google GenAI log-probs result.
13 Parameters
14 ----------
15 result : google.genai.types.LogprobsResult
16 Log-probs result.
18 Returns
19 -------
20 list of certus.nodes.Token
21 Token nodes.
22 """
23 if result.chosen_candidates is None:
24 return []
26 tokens, position = [], 0
27 for candidate in result.chosen_candidates:
28 value = candidate.token
29 logprob = candidate.log_probability
30 if value is None or logprob is None:
31 continue
33 tokens.append(core.Token(value, utils.clamp(logprob, upper=0.0), position))
34 position += len(value)
36 return tokens