| from typing import Literal, List, Tuple |
| from .groq_client import groq_chat |
| from .utils import get_answer |
|
|
| def build_prompt(question:str, |
| mode: Literal["cot", "base"]="base", |
| exampler: List[Tuple[str, str]]=None, |
| zero_shot: bool=False |
| ): |
| """ |
| to be written |
| """ |
| |
| if mode == "cot": |
|
|
| if not zero_shot: |
| prompt = "" |
|
|
| if exampler: |
| for q, a in exampler: |
| prompt+=f"Q: {q}\nA:{a}" |
|
|
| prompt+=f"Q: {question}\nA:" |
| return prompt |
| |
| return f"Q: {question}\nA:" |
|
|
| return f"Q: {question}\nA:" |
|
|
| def generate_answer( |
| question: str, |
| model_id: str="llama3-8b-8192", |
| temperature: float=0.5, |
| max_tokens: int=200, |
| mode: Literal["cot", "base"]="base", |
| exampler: List[Tuple[str ,str]]=None, |
| zero_shot: bool=False |
| ): |
| """ |
| to be written |
| """ |
| |
| prompt = build_prompt(question, mode, exampler, zero_shot) |
| reasoning = groq_chat(prompt, model_id, temperature, max_tokens) |
| last_line = get_answer(reasoning) |
|
|
| return reasoning, last_line |
|
|
|
|