Pywayne Llm Chat Window
v0.1.0PyQt5-based GUI chat window for LLM conversations with streaming responses and stop functionality. Use when working with pywayne.llm.chat_window module to cr...
Security Scan
OpenClaw
Benign
medium confidencePurpose & Capability
Name/description (PyQt5 GUI chat window) matches the instructions: examples show ChatWindow.launch with base_url, api_key, model and mention PyQt5/openai. Requiring an API key and LLM client is proportionate to a chat UI.
Instruction Scope
SKILL.md only demonstrates calling the chat window API and setting system messages; it does not instruct the agent to read files, other env vars, or system paths. One minor issue: examples pass api_key directly as a literal parameter (discouraged practice); recommend advising use of environment variables or secure storage instead.
Install Mechanism
Instruction-only skill with no install spec or downloads — low risk. It lists PyQt5 and openai as runtime dependencies but does not attempt to install arbitrary code or fetch archives.
Credentials
No unrelated credentials are requested. The API key requirement is coherent with a client that talks to a remote LLM service. The skill does not declare env vars, but shows api_key as a parameter; that is reasonable though you should avoid hard-coding secrets.
Persistence & Privilege
always is false, no install or persistence requested, and the skill does not ask to modify other skills or system-wide settings. Normal (non-persistent) behavior.
Scan Findings in Context
[you-are-now] unexpected: The scanner flagged the 'you-are-now' pattern. In this SKILL.md the phrase appears in example system messages (e.g. add_system_message("You are now a creative writer")). This looks like a false positive for prompt-injection in the context of example system prompts, but it is flagged because the phrase can be used for prompt manipulation.
Assessment
This SKILL.md is coherent for a desktop LLM chat UI. Before using: (1) do not hard-code your API key into example code — use environment variables or a secrets manager; (2) verify the provenance of the pywayne.llm.chat_window module (no homepage/source provided here); untrusted GUI code can still contain harmful logic if you later install/run unknown packages; (3) confirm the base_url (https://api.deepseek.com/v1 in examples) is the service you intend to use; (4) the scanner flagged a prompt-injection pattern, but it appears in innocuous example system prompts — remain cautious about passing system messages you don't control. If you need higher assurance, request the actual package source or code for review before running.Like a lobster shell, security has layers — review code before you run it.
latest
Pywayne Chat Window
This module provides a PyQt5-based desktop GUI chat window for LLM conversations.
Quick Start
from pywayne.llm.chat_window import ChatWindow
# Basic 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, ChatConfig
config = 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
- Streaming responses: Real-time token-by-token display
- Stop generation: Button toggles between "发送" (Send) and "停止" (Stop)
- Message history: Maintains conversation context
- Enter to send: Press Enter in input field to send message
- System messages: Support for multiple system prompts
Requirements
PyQt5- GUI frameworkopenai- OpenAI-compatible API client
API 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.
Comments
Loading comments...
