Merge branch 'master' of https://gitea.ditaajipratama.net/aji/hendrik
This commit is contained in:
commit
ab5c798b1d
@ -5,9 +5,7 @@ import urllib.request
|
||||
import urllib.error
|
||||
|
||||
class _LLMFail(Exception):
|
||||
"""Kegagalan network dari satu kandidat chain.
|
||||
|
||||
kind:
|
||||
"""
|
||||
- 'auth' : 401/403 → rotasi key (coba key berikutnya di provider yang sama)
|
||||
- 'unreachable' : koneksi gagal / timeout / 5xx / 429 / 404 → pindah model/provider
|
||||
"""
|
||||
@ -16,14 +14,7 @@ class _LLMFail(Exception):
|
||||
self.kind = kind
|
||||
self.message = message
|
||||
|
||||
|
||||
class LLMClient:
|
||||
class Message:
|
||||
def __init__(self, msg):
|
||||
raw_content = msg.get('content', '') # Ambil konten mentah
|
||||
self.content = gadget.strip_thinking(raw_content) if isinstance(raw_content, str) else raw_content # Auto-strip <thinking> dari content
|
||||
self.tool_calls = msg.get('tool_calls', None) # Ambil tool calls
|
||||
self.warning = None
|
||||
|
||||
def __init__(self, base_url, model, api_key, timeout=600):
|
||||
self.base_url = (base_url or "").rstrip('/')
|
||||
@ -32,12 +23,19 @@ class LLMClient:
|
||||
self.timeout = timeout
|
||||
self.cancel_requested = False
|
||||
|
||||
# Chain kandidat per tipe ('llm', 'imagevision', ...)
|
||||
# Chaining kandidat set model per tipe ('llm', 'imagevision', ...)
|
||||
self._chains: dict[str, list[dict]] = {}
|
||||
self._chain: list[dict] | None = None
|
||||
self._chain_key: str | None = None
|
||||
self._chain_index = 0
|
||||
|
||||
class Message:
|
||||
def __init__(self, msg):
|
||||
raw_content = msg.get('content', '') # Ambil konten mentah
|
||||
self.content = gadget.strip_thinking(raw_content) if isinstance(raw_content, str) else raw_content # Auto-strip <thinking> dari content
|
||||
self.tool_calls = msg.get('tool_calls', None) # Ambil tool calls
|
||||
self.warning = None
|
||||
|
||||
# ------------------------------------------------------------ config ---
|
||||
|
||||
def set_chains(self, chains):
|
||||
@ -108,11 +106,15 @@ class LLMClient:
|
||||
return "llm"
|
||||
|
||||
def chat(self, messages, tools=None, on_stream_chunk=None, disable_reasoning=False, tool_reminder=None):
|
||||
if not self._chains:
|
||||
|
||||
if not self._chains: # kalau bukan chain
|
||||
return self._chat_once(
|
||||
self.base_url, self.model, self.api_key, messages,
|
||||
tools=tools, on_stream_chunk=on_stream_chunk,
|
||||
disable_reasoning=disable_reasoning, tool_reminder=tool_reminder,
|
||||
self.base_url, self.model, self.api_key,
|
||||
messages,
|
||||
tools=tools,
|
||||
on_stream_chunk=on_stream_chunk,
|
||||
disable_reasoning=disable_reasoning,
|
||||
tool_reminder=tool_reminder,
|
||||
)
|
||||
|
||||
chain_type = self._pick_chain_type(messages)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user