2-02 - update chat method

1

Add context_content, and prefix to the chat() method from previous script, 01- first vid from playlist page

context_content, calls all registered context functions,.. ? don't get quite yet

class chat(self, user_message: str) ->:
    self.messages.append({"role":"User","content": user_message})
    context_content = "\n\n".join(
        f"<context>\n<{fn()}<{n}><\n</context>"
        for n, fn in self.contexts.items()
    )
    prefix = list[dict[str,Any]] = [
        {"role":"system","content":self.system_prompt},
        {"role":"system","content",context_content},
    ]

1

keep the url, headers, request

context_content, calls all registered context functions,.. ? don't get quite yet

class chat(self, user_message: str) ->:
    self.messages.append({"role":"User","content": user_message})
    context_content = "\n\n".join(
        f"<context>\n<{fn()}<{n}><\n</context>"
        for n, fn in self.contexts.items()
    )
    prefix = list[dict[str,Any]] = [
        {"role":"system","content":self.system_prompt},
        {"role":"system","content",context_content},
    ]
    url = f"{self.base_url}/chat/completions
    headers = {
        "Authorization": f"Bearer:{self.api_key}",
        "Content-Type": "application.json",
    }
     = requests.post(
        url,
        headers=headers,
        json={"model": self.model, "messages", prefix + self.messages},
        timeout=300,
    )
    r.raise_for_status()
    data = r.json()
    choices = data.get("choices")

    if not choices:
        raise RuntimeError("Model response missing choices")

    message = choices[0].get("message")
    if message is None:
        raise RuntimeError("response missing message")
        
    response = message[0].get("content") or ""
    self.messages.append({"role":"assistant","content": response})
    return response