Fixing tool calling failure issue
This commit is contained in:
parent
03221ca119
commit
1dba9e32f2
@ -27,7 +27,13 @@ def execute_tool(tool_call, TOOL_HANDLERS):
|
||||
def run_agent_loop(session, llm_client, TOOLS, TOOL_HANDLERS, max_iterations, on_tool_calls=None):
|
||||
for step in range(max_iterations):
|
||||
print(f'[{_ts()}] Step {step + 1} — calling LLM...', flush=True)
|
||||
response = llm_client.chat(session.messages, tools=TOOLS)
|
||||
|
||||
# Ambil konfigurasi disable_reasoning dari personality karakter
|
||||
# Default ke False jika tidak didefinisikan
|
||||
personality = getattr(session, 'personality', {})
|
||||
disable_reasoning = personality.get('disable_reasoning', False)
|
||||
|
||||
response = llm_client.chat(session.messages, tools=TOOLS, disable_reasoning=disable_reasoning)
|
||||
|
||||
if response.tool_calls:
|
||||
amsg = {
|
||||
|
||||
@ -19,7 +19,7 @@ class LLMClient:
|
||||
self.timeout = timeout
|
||||
self.cancel_requested = False
|
||||
|
||||
def chat(self, messages, tools=None, on_stream_chunk=None):
|
||||
def chat(self, messages, tools=None, on_stream_chunk=None, disable_reasoning=False):
|
||||
url = f"{self.base_url}/chat/completions"
|
||||
payload = {
|
||||
"model": self.model,
|
||||
@ -30,8 +30,9 @@ class LLMClient:
|
||||
payload["tools"] = tools
|
||||
payload["tool_choice"] = "auto"
|
||||
|
||||
# Disable reasoning/thinking di level API bila didukung
|
||||
# OpenRouter & beberapa provider support ini
|
||||
# Hanya kirim parameter reasoning jika diminta eksplisit
|
||||
# Beberapa model/provider justru error jika parameter ini ada tapi tidak didukung
|
||||
if disable_reasoning:
|
||||
payload["reasoning"] = {"enabled": False}
|
||||
|
||||
data = json.dumps(payload).encode('utf-8')
|
||||
@ -102,11 +103,11 @@ class LLMClient:
|
||||
|
||||
# Stream content (text response)
|
||||
if 'content' in delta:
|
||||
chunk_text = delta['content']
|
||||
chunk_text = delta['content'] or ""
|
||||
full_content += chunk_text
|
||||
|
||||
# Callback untuk streaming ke UI
|
||||
if on_stream_chunk:
|
||||
if on_stream_chunk and chunk_text:
|
||||
on_stream_chunk(chunk_text)
|
||||
|
||||
# Build final response
|
||||
|
||||
Loading…
Reference in New Issue
Block a user