feat(infographic): release v1.5.0 with smart language detection & organize debug tools

This commit is contained in:
fujie
2026-01-28 02:14:30 +08:00
parent e412aeb93d
commit 219ba83df3
24 changed files with 6320 additions and 99 deletions

View File

@@ -0,0 +1,182 @@
# Native Tool Display Usage Guide
## 🎨 What is Native Tool Display?
Native Tool Display is an experimental feature that integrates with OpenWebUI's built-in tool call visualization system. When enabled, tool calls and their results are displayed in **collapsible JSON panels** instead of plain markdown text.
### Visual Comparison
**Traditional Display (markdown):**
```
> 🔧 Running Tool: `get_current_time`
> ✅ Tool Completed: 2026-01-27 10:30:00
```
**Native Display (collapsible panels):**
- Tool call appears in a collapsible `assistant.tool_calls` panel
- Tool result appears in a separate collapsible `tool.content` panel
- JSON syntax highlighting for better readability
- Compact by default, expandable on click
## 🚀 How to Enable
1. Open the GitHub Copilot SDK Pipe configuration (Valves)
2. Set `USE_NATIVE_TOOL_DISPLAY` to `true`
3. Save the configuration
4. Start a new conversation with tool calls
## 📋 Requirements
- OpenWebUI with native tool display support
- `__event_emitter__` must support `message` type events
- Tool-enabled models (e.g., GPT-4, Claude Sonnet)
## ⚙️ How It Works
### OpenAI Standard Format
The native display uses the OpenAI standard message format:
**Tool Call (Assistant Message):**
```json
{
"role": "assistant",
"content": "",
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_current_time",
"arguments": "{\"timezone\":\"UTC\"}"
}
}
]
}
```
**Tool Result (Tool Message):**
```json
{
"role": "tool",
"tool_call_id": "call_abc123",
"content": "2026-01-27 10:30:00 UTC"
}
```
### Message Flow
1. **Tool Execution Start**:
- SDK emits `tool.execution_start` event
- Plugin sends `assistant` message with `tool_calls` array
- OpenWebUI displays collapsible tool call panel
2. **Tool Execution Complete**:
- SDK emits `tool.execution_complete` event
- Plugin sends `tool` message with `tool_call_id` and `content`
- OpenWebUI displays collapsible result panel
## 🔧 Troubleshooting
### Panel Not Showing
**Symptoms:** Tool calls still appear as markdown text
**Possible Causes:**
1. `__event_emitter__` doesn't support `message` type events
2. OpenWebUI version too old
3. Feature not enabled (`USE_NATIVE_TOOL_DISPLAY = false`)
**Solution:**
- Enable DEBUG mode to see error messages in browser console
- Check browser console for "Native message emission failed" warnings
- Update OpenWebUI to latest version
- Keep `USE_NATIVE_TOOL_DISPLAY = false` to use traditional markdown display
### Duplicate Tool Information
**Symptoms:** Tool calls appear in both native panels and markdown
**Cause:** Mixed display modes
**Solution:**
- Ensure `USE_NATIVE_TOOL_DISPLAY` is either `true` (native only) or `false` (markdown only)
- Restart the conversation after changing this setting
## 🧪 Experimental Status
This feature is marked as **EXPERIMENTAL** because:
1. **Event Emitter API**: The `__event_emitter__` support for `message` type events is not fully documented
2. **OpenWebUI Version Dependency**: Requires recent versions of OpenWebUI with native tool display support
3. **Streaming Architecture**: May have compatibility issues with streaming responses
### Fallback Behavior
If native message emission fails:
- Plugin automatically falls back to markdown display
- Error logged to browser console (when DEBUG is enabled)
- No interruption to conversation flow
## 📊 Performance Considerations
Native display has slightly better performance characteristics:
| Aspect | Native Display | Markdown Display |
|--------|----------------|------------------|
| **Rendering** | Native UI components | Markdown parser |
| **Interactivity** | Collapsible panels | Static text |
| **JSON Parsing** | Handled by UI | Not formatted |
| **Token Usage** | Minimal overhead | Formatting tokens |
## 🔮 Future Enhancements
Planned improvements for native tool display:
- [ ] Automatic fallback detection
- [ ] Tool call history persistence
- [ ] Rich metadata display (execution time, arguments preview)
- [ ] Copy tool call JSON button
- [ ] Tool call replay functionality
## 💡 Best Practices
1. **Enable DEBUG First**: Test with DEBUG mode before using in production
2. **Monitor Browser Console**: Check for warning messages during tool calls
3. **Test with Simple Tools**: Verify with built-in tools before custom implementations
4. **Keep Fallback Option**: Don't rely solely on native display until it exits experimental status
## 📖 Related Documentation
- [TOOLS_USAGE.md](TOOLS_USAGE.md) - How to create and use custom tools
- [NATIVE_TOOL_DISPLAY_GUIDE.md](NATIVE_TOOL_DISPLAY_GUIDE.md) - Technical implementation details
- [WORKFLOW.md](WORKFLOW.md) - Complete integration workflow
## 🐛 Reporting Issues
If you encounter issues with native tool display:
1. Enable `DEBUG` and `USE_NATIVE_TOOL_DISPLAY`
2. Open browser console (F12)
3. Trigger a tool call
4. Copy any error messages
5. Report to [GitHub Issues](https://github.com/Fu-Jie/awesome-openwebui/issues)
Include:
- OpenWebUI version
- Browser and version
- Error messages from console
- Steps to reproduce
---
**Author:** Fu-Jie | **Version:** 0.2.0 | **License:** MIT