🎨 引入mvu变量和全局正则到ai对话

Signed-off-by: Echo <1711788888@qq.com>
This commit is contained in:
2026-03-02 01:15:22 +08:00
parent 20d99cf3bf
commit a857917b53
2 changed files with 21 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import Navbar from '../components/Navbar'
import {Book, Code2, Download, Edit, FileJson, FileUp, Image as ImageIcon, Plus, Search, Trash2, X} from 'lucide-react'
import {type Character, characterApi} from '../api/character'
import {type RegexScript, regexScriptApi} from '../api/regex'
import {useAppStore} from '../store'
interface WorldBookEntry {
keys: string[]

View File

@@ -7,18 +7,28 @@ import CharacterPanel from '../components/CharacterPanel'
import SettingsPanel from '../components/SettingsPanel'
import {type Conversation, conversationApi} from '../api/conversation'
import {type Character, characterApi} from '../api/character'
import {useAppStore} from '../store'
export default function ChatPage() {
const [searchParams] = useSearchParams()
const navigate = useNavigate()
const [activePanel, setActivePanel] = useState<'chat' | 'settings'>('chat')
const [currentConversation, setCurrentConversation] = useState<Conversation | null>(null)
const [currentCharacter, setCurrentCharacter] = useState<Character | null>(null)
const [loading, setLoading] = useState(true)
const [backgroundImage, setBackgroundImage] = useState<string>()
const [showSidebar, setShowSidebar] = useState(true)
const [showCharacterPanel, setShowCharacterPanel] = useState(true)
// 使用 MVU store
const {
currentConversation,
currentCharacter,
loading,
sidebarOpen: showSidebar,
setCurrentConversation,
setCurrentCharacter,
setLoading,
setSidebarOpen: setShowSidebar,
setVariable,
} = useAppStore()
// 从URL参数获取角色ID或对话ID
const characterId = searchParams.get('character')
const conversationId = searchParams.get('conversation')
@@ -67,12 +77,18 @@ export default function ChatPage() {
// 加载对话关联的角色
const charResp = await characterApi.getCharacterById(convResp.data.characterId)
setCurrentCharacter(charResp.data)
// 更新变量系统
setVariable('char', charResp.data.name)
}
// 如果有角色ID创建新对话
else if (characterId) {
const charResp = await characterApi.getCharacterById(Number(characterId))
setCurrentCharacter(charResp.data)
// 更新变量系统
setVariable('char', charResp.data.name)
// 创建新对话
const convResp = await conversationApi.createConversation({
characterId: Number(characterId),