# 建科·小智免认证单应用客户端
## 业务目标
适用于微信环境的公开单个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 # 生产构建
```