# 建科·小智免认证单应用客户端 ## 业务目标 适用于微信环境的公开单个RAG应用的客户端,单独打包 ## 开发与运行 路由映射: /knowledgeChat 路径直接映射到 组件 URL参数处理 1. showMenu=false 处理位置: sidebar.tsx#361 !location.search.includes('showMenu=false') && 作用: 控制侧边栏是否显示,showMenu=false 时隐藏侧边栏 2. chatMode=LOCAL 处理位置: chat.tsx 主要在两个地方处理 Chat组件初始化时: ``` const search = location.search; const params = new URLSearchParams(search); const chatMode = params.get('chatMode'); if (chatMode) { chatStore.setChatMode(chatMode as "ONLINE" | "LOCAL"); } ``` 作用: 控制聊天模式,chatMode=LOCAL 时使用本地大模型 Chat组件内部: ``` const search = location.search; const params = new URLSearchParams(search); const chatMode = params.get('chatMode'); if (chatMode) { setSelectedFruit(chatMode as "ONLINE" | "LOCAL"); const appId = params.get('appId'); if (appId) { setAppValue(appId); globalStore.setSelectedAppId(appId); chatStore.updateCurrentSession((session) => { session.appId = appId; }); } init(chatMode); } ``` 作用: 初始化聊天模式和应用ID 3. appId=2937075690977497088 处理位置: 同上,在_Chat组件中处理 作用: 设置应用ID到全局状态 globalStore.setSelectedAppId(appId) 更新当前会话的appId session.appId = appId 用于获取应用列表和预设问题 组件调用关系: ``` URL: /#/knowledgeChat?showMenu=false&chatMode=LOCAL&appId=xxx ↓ React Router 路由匹配 ↓ home.tsx Screen组件 renderContent() ↓ } /> ↓ Chat组件 (chat.tsx#2305) ↓ _Chat组件 (chat.tsx#952) ``` ### 安装依赖 ```bash npm ci ``` ### 开发模式 ```bash npm run dev ``` ### 生产构建 ```bash npm run build ``` ### 启动生产服务器 ```bash npm run start ``` ### 桌面应用构建 (Tauri) ```bash npm run tauri:dev # 开发模式 npm run tauri:build # 生产构建 ```