From 1048bc145cd0341fcbdd269f3275079bc40ede70 Mon Sep 17 00:00:00 2001 From: batsumaru <> Date: Fri, 11 Sep 2026 13:56:07 +0900 Subject: Added llm logic and config --- llm.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 llm.py (limited to 'llm.py') diff --git a/llm.py b/llm.py new file mode 100644 index 0000000..524f173 --- /dev/null +++ b/llm.py @@ -0,0 +1,42 @@ +import json +from collections.abc import Iterator + +import requests + +class LLM: + def __init__(self, url: str) -> None: + self.url = url + + def chat(self, messages: list[dict[str, str]], max_tokens: int = 256) -> Iterator[str]: + response = requests.post( + self.url, + json = { + "messages": messages, + "max_tokens": max_tokens, + "temperature": 0.7, + "stream": True, + }, + stream=True, + ) + response.raise_for_status() + + for line in response.iter_lines(): + if not line: + continue + + if not line.startswith(b"data: "): + continue + + data = line[6:] + + if data == b"[DONE]": + break + + chunk = json.loads(data) + + delta = chunk["choices"][0]["delta"] + content = delta.get("content") + + if content: + yield content + -- cgit v1.3