📦 Pywayne Llm Chat Bot — Pywayne工具
v0.1.0[AI辅助] LLM chat interface using OpenAI-compatible APIs with streaming support and session management. Use when working with pywayne.llm.chat_bot module for creating...
详细分析 ▾
运行时依赖
版本
Initial release of pywayne-llm-chat-bot, a flexible LLM chat interface with session and history management. - Provides synchronous chat interface using OpenAI-compatible APIs, with support for streaming responses. - Supports both single-turn and multi-turn conversations with history tracking. - Offers customizable configuration via LLMConfig, including dynamic system prompt updates. - Includes ChatManager for managing multiple independent chat sessions with configurable timeouts. - Compatible with OpenAI endpoints and local servers (e.g., Ollama).
安装命令
点击复制技能文档
This module provides a synchronous LLM chat interface compatible with OpenAI APIs (including local servers like Ollama).
Quick 开始
from pywayne.llm.chat_bot import LLMChat# Create chat instance chat = LLMChat( base_url="https://api.example.com/v1", api_key="your_api_key", model="deepseek-chat" )
# Single-turn conversation (non-streaming) response = chat.ask("Hello, LLM!", stream=False) print(response)
# Streaming response for token in chat.ask("Explain recursion", stream=True): print(token, end='', flush=True)
Multi-turn Conversation
# Use chat() for history tracking for token in chat.chat("What is a class in Python?"): print(token, end='', flush=True)# Continuation - remembers previous context for token in chat.chat("How do I define a constructor?"): print(token, end='', flush=True)
# View history for msg in chat.history: print(f"{msg['role']}: {msg['content']}")
# Clear history chat.clear_history()
Configuration
LLMConfig 类
from pywayne.llm.chat_bot import LLMConfigconfig = LLMConfig( base_url="https://api.example.com/v1", api_key="your_api_key", model="deepseek-chat", temperature=0.7, max_tokens=8192, top_p=1.0, frequency_penalty=0.0, presence_penalty=0.0, system_prompt="You are a helpful assistant" )
chat = LLMChat(**config.to_dict())
Dynamic System Prompt 更新
chat.update_system_prompt("You are now a Python expert, provide code examples")
Managing Multiple Sessions
from pywayne.llm.chat_bot import ChatManagermanager = ChatManager( base_url="https://api.example.com/v1", api_key="your_api_key", model="deepseek-chat", timeout=300 # Session timeout in seconds )
# Get or create chat instance (maintains per-session history) chat1 = manager.get_chat("user1") chat2 = manager.get_chat("user2")
# Sessions are independent chat1.chat("Hello from user1") chat2.chat("Hello from user2")
# Remove a session manager.remove_chat("user1")
Custom Configuration per 会话
custom_config = LLMConfig( base_url=base_url, api_key=api_key, model="deepseek-chat", temperature=0.9, system_prompt="You are a creative writer" )
chat3 = manager.get_chat("user3", config=custom_config)
API Reference
LLMChat
| Method | Description |
|---|---|
ask(prompt, stream=False) | Single-turn conversation without history |
chat(prompt, stream=True) | Multi-turn conversation with history tracking |
update_system_prompt(prompt) | Update system prompt in-place |
clear_history() | Clear conversation history (keeps system prompt) |
history (property) | Get copy of current conversation history |
ChatManager
| Method | Description |
|---|---|
get_chat(chat_id, stream=True, config=None) | Get or create chat instance by ID |
remove_chat(chat_id) | Remove chat session |
Parameters
| Parameter | Default | Description |
|---|---|---|
base_url | required | API base URL (e.g., https://api.deepseek.com/v1) |
api_key | required | API authentication key |
model | "deepseek-chat" | Model name |
temperature | 0.7 | Controls randomness (0-2) |
max_tokens | 2048/8192 | Maximum output tokens |
top_p | 1.0 | Nucleus sampling (0-1) |
frequency_penalty | 0.0 | Reduces repetition (-2 to 2) |
presence_penalty | 0.0 | Encourages new topics (-2 to 2) |
system_prompt | "你是一个严谨的助手" | System message |
timeout | inf | Session timeout in seconds (ChatManager only) |