Files
new-api/web/src/utils/constants.js
Apple\Apple 5107f1b84a feat: Add custom request body editor with persistent message storage
- Add CustomRequestEditor component with JSON validation and real-time formatting
- Implement bidirectional sync between chat messages and custom request body
- Add persistent local storage for chat messages (separate from config)
- Remove redundant System Prompt field in custom mode
- Refactor configuration storage to separate messages and settings

New Features:
• Custom request body mode with JSON editor and syntax highlighting
• Real-time bidirectional synchronization between chat UI and custom request body
• Persistent message storage that survives page refresh
• Enhanced configuration export/import including message data
• Improved parameter organization with collapsible sections

Technical Changes:
• Add loadMessages/saveMessages functions in configStorage
• Update usePlaygroundState hook to handle message persistence
• Refactor SettingsPanel to remove System Prompt in custom mode
• Add STORAGE_KEYS constants for better storage key management
• Implement debounced auto-save for both config and messages
• Add hash-based change detection to prevent unnecessary updates

UI/UX Improvements:
• Disabled state styling for parameters in custom mode
• Warning banners and visual feedback for mode switching
• Mobile-responsive design for custom request editor
• Consistent styling with existing design system
2025-06-01 17:07:36 +08:00

95 lines
2.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ========== 消息相关常量 ==========
export const MESSAGE_STATUS = {
LOADING: 'loading',
INCOMPLETE: 'incomplete',
COMPLETE: 'complete',
ERROR: 'error',
};
export const MESSAGE_ROLES = {
USER: 'user',
ASSISTANT: 'assistant',
SYSTEM: 'system',
};
// 默认消息示例
export const DEFAULT_MESSAGES = [
{
role: MESSAGE_ROLES.USER,
id: '2',
createAt: 1715676751919,
content: '你好',
},
{
role: MESSAGE_ROLES.ASSISTANT,
id: '3',
createAt: 1715676751919,
content: '你好,请问有什么可以帮助您的吗?',
reasoningContent: '',
isReasoningExpanded: false,
},
];
// ========== UI 相关常量 ==========
export const DEBUG_TABS = {
PREVIEW: 'preview',
REQUEST: 'request',
RESPONSE: 'response',
};
// ========== API 相关常量 ==========
export const API_ENDPOINTS = {
CHAT_COMPLETIONS: '/pg/chat/completions',
USER_MODELS: '/api/user/models',
USER_GROUPS: '/api/user/self/groups',
};
// ========== 配置默认值 ==========
export const DEFAULT_CONFIG = {
inputs: {
model: 'gpt-4o',
group: '',
temperature: 0.7,
top_p: 1,
max_tokens: 2048,
frequency_penalty: 0,
presence_penalty: 0,
seed: null,
stream: true,
imageEnabled: false,
imageUrls: [''],
},
parameterEnabled: {
temperature: true,
top_p: false,
max_tokens: false,
frequency_penalty: false,
presence_penalty: false,
seed: false,
},
systemPrompt: '',
showDebugPanel: false,
customRequestMode: false,
customRequestBody: '',
};
// ========== 正则表达式 ==========
export const THINK_TAG_REGEX = /<think>([\s\S]*?)<\/think>/g;
// ========== 错误消息 ==========
export const ERROR_MESSAGES = {
NO_TEXT_CONTENT: '此消息没有可复制的文本内容',
INVALID_MESSAGE_TYPE: '无法复制此类型的消息内容',
COPY_FAILED: '复制失败,请手动选择文本复制',
COPY_HTTPS_REQUIRED: '复制功能需要 HTTPS 环境,请手动复制',
BROWSER_NOT_SUPPORTED: '浏览器不支持复制功能,请手动复制',
JSON_PARSE_ERROR: '自定义请求体格式错误请检查JSON格式',
API_REQUEST_ERROR: '请求发生错误',
NETWORK_ERROR: '网络连接失败或服务器无响应',
};
// ========== 存储键名 ==========
export const STORAGE_KEYS = {
CONFIG: 'playground_config',
MESSAGES: 'playground_messages',
};