UPSTREAM PR #18059: webui: Client-side implementation of tool calling (with two tools)#585
UPSTREAM PR #18059: webui: Client-side implementation of tool calling (with two tools)#585
Conversation
|
Explore the complete analysis inside the Version Insights Performance Analysis Summary: PR #585Scope: Web UI tool calling implementation (client-side only) Analysis FindingsThis PR modifies exclusively frontend TypeScript/Svelte code in Performance Metrics Status:
Code Changes:
Inference Performance Impact:
Browser Performance:
Power Consumption:
This PR enhances user experience without affecting the underlying LLM inference performance. |
ed74e7e to
765e416
Compare
3651c2e to
90ec9d1
Compare
|
Explore the complete analysis inside the Version Insights Performance Analysis Summary: PR #585 - WebUI Tool CallingCondition 1 Applied: No Performance Impact PR #585 implements client-side tool calling (calculator and JavaScript code interpreter) entirely within the WebUI frontend. All 3,605 additions and 413 deletions are confined to TypeScript/Svelte files under |
a014a6b to
eda9f43
Compare
a05d3f0 to
c9b2647
Compare
90ec9d1 to
5eb268e
Compare
8a19571 to
6b83243
Compare
…l and (javascript) code interpreter tool
|
Explore the complete analysis inside the Version Insights I've generated a summary report for your project. The analysis shows that Pull Request #585 in the llama.cpp repository (owned by auroralabs-loci) has no significant performance impact. Key findings:
The comparison between the base version (a7cb4ab1-e9f6-11f0-81f2-dbb430499cb5) and target version (bec12ad1-ea02-11f0-81f2-dbb430499cb5) indicates that the changes maintain performance stability without introducing any concerning regressions. |
Mirrored from ggml-org/llama.cpp#18059
This PR allows webui to give models access to two tools: a calculator and a code interpreter. The calculator is a simple expression calculator, used to enhance math abilities. The code interpreter runs arbitrary JavaScript in a (relatively isolated) Web Worker, and returns the output to the model, which can be used for more advanced analysis.
This PR also lays the groundwork for a modular tool system, such that one could easily imagine adding a Canvas tool or a Web Search tool.
When an assistant message emits tool calls, the web UI...
Included tools
output + the final evaluated value, with improved error reporting (line/column/snippet).
UX changes
(arguments + result + timing) to avoid extra message bubbles.
Configuration & extensibility
a Tools section (toggles + per-tool fields like timeout), and defaults are derived from tool registrations.
Tests
reactivity/regressions, etc. These tests were created when bugs were encountered. I would be perfectly fine with throwing most of them away, but I figured there was no harm in including them.
Videos
Calculator tool
Screen.Recording.2025-12-15.at.8.10.04.AM.mov
Code Interpreter tool
Screen.Recording.2025-12-15.at.8.11.08.AM.mov
Code interpreter and calculator, including the model recovering from a syntax error in its first code interpreter attempt
Screen.Recording.2025-12-15.at.8.14.48.AM.mov
Demonstrating how tool calling works for an Instruct model
Screen.Recording.2025-12-15.at.8.12.32.AM.mov
Demonstrating how the regenerate button will correctly treat the entire response as one message, instead of regenerating just the last segment after the last tool call.
Screen.Recording.2025-12-15.at.8.39.48.AM.mov
Deleting an entire response
Screen.Recording.2025-12-15.at.8.53.48.AM.mov
Screenshots
New Settings Screen for Tools
Known Bugs