Pywayne Llm Chat Window
by @wangyendt
PyQt5-based GUI chat window for LLM conversations with streaming responses and stop functionality. Use when working with pywayne.llm.chat_window module to cr...
clawhub install chat-windowπ About This Skill
name: pywayne-llm-chat-window description: PyQt5-based GUI chat window for LLM conversations with streaming responses and stop functionality. Use when working with pywayne.llm.chat_window module to create desktop chat applications with customizable window configuration, system message management, and real-time streaming display.
Pywayne Chat Window
This module provides a PyQt5-based desktop GUI chat window for LLM conversations.
Quick Start
from pywayne.llm.chat_window import ChatWindowBasic usage - quick launch
ChatWindow.launch(
base_url="https://api.deepseek.com/v1",
api_key="your_api_key",
model="deepseek-chat"
)
Configuration
Using ChatConfig dataclass for full customization:
from pywayne.llm.chat_window import ChatWindow, ChatConfigconfig = ChatConfig(
base_url="https://api.deepseek.com/v1",
api_key="your_api_key",
model="deepseek-chat",
temperature=0.8,
window_title="AI Assistant",
window_width=800,
window_height=600
)
chat = ChatWindow(config)
chat.run()
ChatConfig Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| base_url | required | API base URL |
| api_key | required | API key |
| model | "deepseek-chat" | Model name |
| temperature | 0.7 | Temperature (0-2) |
| max_tokens | 2048 | Max output tokens |
| top_p | 1.0 | Nucleus sampling |
| frequency_penalty | 0.0 | Frequency penalty (-2 to 2) |
| presence_penalty | 0.0 | Presence penalty (-2 to 2) |
| system_prompt | "δ½ ζ―δΈδΈͺδΈ₯θ°¨ηε©ζ" | System prompt |
| window_title | "AI Chat" | Window title |
| window_width | 600 | Window width |
| window_height | 800 | Window height |
| window_x | 300 | Window X position |
| window_y | 300 | Window Y position |
System Messages
Set custom system prompts:
# Replace all system messages
chat.set_system_messages([
{"role": "system", "content": "You are a Python expert"},
{"role": "system", "content": "Provide code examples"}
])Add single system message
chat.add_system_message("You are now a creative writer")
Quick Launch with System Messages
ChatWindow.launch(
base_url="https://api.deepseek.com/v1",
api_key="your_api_key",
model="deepseek-coder",
system_messages=[
{"role": "system", "content": "You are a Python expert"},
{"role": "system", "content": "Keep answers concise with code"}
],
window_title="Python Assistant"
)
Features
Requirements
PyQt5 - GUI frameworkopenai - OpenAI-compatible API clientAPI Reference
ChatWindow
| Method | Description |
|---------|-------------|
| __init__(config) | Initialize with ChatConfig |
| set_system_messages(messages) | Replace all system messages |
| add_system_message(content) | Add single system message |
| run() | Show window and start event loop |
| launch(base_url, api_key, ...) | Class method to quickly launch chat window |
ChatConfig
Dataclass for window and LLM configuration. All parameters optional except base_url and api_key.
π‘ Examples
from pywayne.llm.chat_window import ChatWindowBasic usage - quick launch
ChatWindow.launch(
base_url="https://api.deepseek.com/v1",
api_key="your_api_key",
model="deepseek-chat"
)
βοΈ Configuration
Using ChatConfig dataclass for full customization:
from pywayne.llm.chat_window import ChatWindow, ChatConfigconfig = ChatConfig(
base_url="https://api.deepseek.com/v1",
api_key="your_api_key",
model="deepseek-chat",
temperature=0.8,
window_title="AI Assistant",
window_width=800,
window_height=600
)
chat = ChatWindow(config)
chat.run()
ChatConfig Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| base_url | required | API base URL |
| api_key | required | API key |
| model | "deepseek-chat" | Model name |
| temperature | 0.7 | Temperature (0-2) |
| max_tokens | 2048 | Max output tokens |
| top_p | 1.0 | Nucleus sampling |
| frequency_penalty | 0.0 | Frequency penalty (-2 to 2) |
| presence_penalty | 0.0 | Presence penalty (-2 to 2) |
| system_prompt | "δ½ ζ―δΈδΈͺδΈ₯θ°¨ηε©ζ" | System prompt |
| window_title | "AI Chat" | Window title |
| window_width | 600 | Window width |
| window_height | 800 | Window height |
| window_x | 300 | Window X position |
| window_y | 300 | Window Y position |