quanho114
Deploy VietQA API
ebb8326
import string
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from src.data_processing.models import QuestionInput
from src.state import GraphState
def question_to_state(q: "QuestionInput") -> "GraphState":
"""Convert QuestionInput to GraphState for pipeline processing."""
state: "GraphState" = {
"question_id": q.qid,
"question": q.question,
"all_choices": q.choices,
}
return state
def format_choices(choices: list[str]) -> str:
"""Format choices for LLM prompts (A. ..., B. ..., etc.)."""
return "\n".join(f"{label}. {text}" for label, text in zip(string.ascii_uppercase, choices))
def format_choices_display(choices: list[str]) -> str:
"""Format choices for console display (2 columns)."""
labels = string.ascii_uppercase
lines = []
for i in range(0, len(choices), 2):
parts = []
for j in range(2):
idx = i + j
if idx < len(choices):
label = labels[idx] if idx < len(labels) else str(idx)
parts.append(f"{label}. {choices[idx]:<30}")
if parts:
lines.append(" " + " ".join(parts))
return "\n".join(lines)