# Technical Documentation: chaitin/PandaWiki

> ℹ️ **Provenance:** Multi-Tier Ingestion · [CodeWiki Reference](https://codewiki.google/github.com/chaitin/PandaWiki)

### Overview (`README.md`)

<p align="center">
  <img src="/images/banner.png" width="400" />
</p>

<p align="center">
  <a target="_blank" href="https://ly.safepoint.cloud/Br48PoX">📖 官方网站</a> &nbsp; | &nbsp;
  <a target="_blank" href="/images/wechat.png">🙋‍♂️ 微信交流群</a>
</p>

## 👋 项目介绍

PandaWiki 是一款 AI 大模型驱动的**开源知识库搭建系统**，帮助你快速构建智能化的 **产品文档、技术文档、FAQ、博客系统**，借助大模型的力量为你提供 **AI 创作、AI 问答、AI 搜索** 等能力。

<p align="center">
  <img src="/images/setup.png" width="800" />
</p>

## ⚡️ 界面展示

| PandaWiki 控制台                                 | Wiki 网站前台                                    |
| ------------------------------------------------ | ------------------------------------------------ |
| <img src="/images/screenshot-1.png" width=370 /> | <img src="/images/screenshot-2.png" width=370 /> |
| <img src="/images/screenshot-3.png" width=370 /> | <img src="/images/screenshot-4.png" width=370 /> |

## 🔥 功能与特色

- AI 驱动智能化：AI 辅助创作、AI 辅助问答、AI 辅助搜索。
- 强大的富文本编辑能力：兼容 Markdown 和 HTML，支持导出为 word、pdf、markdown 等多种格式。
- 轻松与第三方应用进行集成：支持做成网页挂件挂在其他网站上，支持做成钉钉、飞书、企业微信等聊天机器人。
- 通过第三方来源导入内容：根据网页 URL 导入、通过网站 Sitemap 导入、通过 RSS 订阅、通过离线文件导入等。

## 🚀 上手指南

### 安装 PandaWiki

你需要一台支持 Docker 20.x 以上版本的 Linux 系统来安装 PandaWiki。

使用 root 权限登录你的服务器，然后执行以下命令。

```bash
bash -c "$(curl -fsSLk https://release.baizhi.cloud/panda-wiki/manager.sh)"
```

根据命令提示的选项进行安装，命令执行过程将会持续几分钟，请耐心等待，更多细节参考 [安装 PandaWiki](https://pandawiki.docs.baizhi.cloud/node/01971602-bb4e-7c90-99df-6d3c38cfd6d5)。

> PandaWiki 目前已提供 SaaS 版本，无需部署 开箱即用  👉 [百智云 AI 知识库](https://ragcloud.app.baizhi.cloud/)


### 登录 PandaWiki

在上一步中，安装命令执行结束后，你的终端会输出以下内容。

```
SUCCESS  控制台信息:
SUCCESS    访问地址(内网): http://*.*.*.*:2443
SUCCESS    访问地址(外网): http://*.*.*.*:2443
SUCCESS    用户名: admin
SUCCESS    密码: **********************
```

使用浏览器打开上述内容中的 “访问地址”，你将看到 PandaWiki 的控制台登录入口，使用上述内容中的 “用户名” 和 “密码” 登录即可。

### 配置 AI 模型

> PandaWiki 是由 AI 大模型驱动的 Wiki 系统，在未配置大模型的情况下 AI 创作、AI 问答、AI 搜索 等功能无法正常使用。
> 
首次登录时会提示需要先配置 AI 模型，可自行选择一键配置或手动配置。

<div align="center">
  <img src="/images/model-config-1.png" width="800" />
  <p><em>一键自动配置 AI 模型</em></p>

  <img src="/images/model-config-2.png" width="800" />
  <p><em>手动自定义配置 AI 模型</em></p>
</div>



> 推荐使用 [百智云模型广场](https://baizhi.cloud/) 快速接入 AI 模型，注册即可获赠 5 元的模型使用额度。
> 关于大模型的更多配置细节请参考 [接入 AI 模型](https://pandawiki.docs.baizhi.cloud/node/01971616-811c-70e1-82d9-706a202b8498)。

### 创建知识库

“知识库” 是一组文档的集合，PandaWiki 将会根据知识库中的文档，为不同的知识库分别创建 “Wiki 网站”。
<img src="/images/createkb.png" width="800" />

### 💪 开始使用

如果你顺利完成了以上步骤，那么恭喜你，属于你的 PandaWiki 搭建成功，你可以：

- 访问 **控制台** 来管理你的知识库并上传文档等待学习成功
- 访问 **Wiki 网站** 使用知识库并测试AI问答效果
<img src="/images/AI-QA.png" width="700" />

### 💬 遇到问题

如在使用产品过程中遇到问题，可通过以下方式获取帮助：
- 📘查阅官方文档：[常见问题](https://pandawiki.docs.baizhi.cloud/node/019b4952-4ed3-7514-ba57-c93a8ca13608)，更多内容请参考文档目录。
- 🤖不想翻文档？试试 [AI 问答](https://pandawiki.docs.baizhi.cloud/node/0197160c-782c-74ad-a4b7-857dae148f84)，快速获取答案。
- 🤝加入社区：扫码加入下方企业微信群，与更多用户及官方人员交流经验、获得帮助。


## 社区交流

欢迎加入我们的微信群进行交流。

<img src="/images/wechat.png" width="300" />

## 🙋‍♂️ 贡献

欢迎提交 [Pull Request](https://github.com/chaitin/PandaWiki/pulls) 或创建 [Issue](https://github.com/chaitin/PandaWiki/issues) 来帮助改进项目。

## 📝 许可证

本项目采用 GNU Affero General Public License v3.0 (AGPL-3.0) 许可证。这意味着：

- 你可以自由使用、修改和分发本软件
- 你必须以相同的许可证开源你的修改
- 如果你通过网络提供服务，也必须开源你的代码
- 商业使用需要遵守相同的开源要求


## Star History

[](https://star-history.dera.page/#chaitin/PandaWiki&Date)

---

### Overview (`web/admin/README.md`)

# PandaWiki Admin

## 项目概述

PandaWiki Admin 是一个基于现代前端技术栈构建的管理后台，用于管理 PandaWiki 的内容和功能。项目采用 React 19 和 Vite 作为开发工具，集成了丰富的 UI 组件和编辑器功能。

## 功能特性

- 富文本编辑：支持 Markdown 和 Tiptap 编辑器
- 拖拽排序：使用 DnD Kit 实现灵活的拖拽功能
- 图表展示：集成 ECharts 用于数据可视化
- 表单管理：基于 React Hook Form 实现动态表单
- API 文档生成：支持 Swagger API 自动生成

## 技术栈

- **前端框架**: React 19
- **构建工具**: Vite
- **UI 组件库**: Material-UI (MUI)
- **状态管理**: Redux Toolkit
- **路由**: React Router DOM
- **富文本编辑器**: Tiptap

## 安装与运行

1. 克隆项目：
   ```bash
   git clone https://github.com/your-repo/PandaWiki.git
   ```
2. 安装依赖：
   ```bash
   pnpm install
   ```
3. 配置环境变量：
   - 在项目根目录下，新建文件 `.env.local` , 根据需求修改环境变量，实际字段如下：

     ```env
     # 目标服务配置
     TARGET=http://your_target_ip:8000 # 后端服务地址
     STATIC_FILE_TARGET=https://your_static_file_ip:2443 # 静态文件服务地址

     # 开发相关
     DEV_KB_ID=your_dev_kb_id # 开发环境知识库ID

     # Swagger 配置
     SWAGGER_BASE_URL=http://your_swagger_ip:8000 # Swagger API 文档地址
     SWAGGER_AUTH_TOKEN=your_swagger_token # Swagger 认证令牌
     ```

4. 启动开发服务器：
   ```bash
   pnpm dev
   ```
5. 构建生产版本：
   ```bash
   pnpm build
   ```
6. 启动生产服务器：
   ```bash
   pnpm start
   ```

### 其他命令

- 下载图标资源：`pnpm icon`
- 生成 API 文档：`pnpm api`

## 环境配置

- 开发环境变量文件：`.env.local`
- 生产环境配置：`nginx.conf` 和 `Dockerfile`

## 项目结构

```
├── src/                  # 源代码目录
├── public/               # 静态资源
├── scripts/              # 脚本工具
├── api-templates/        # API 模板
├── dist/                 # 构建输出
├── ssl/                  # SSL 证书
└── ...
```

---

### Overview (`web/app/README.md`)

# PandaWiki

## 项目描述

PandaWiki 是一个基于 Next.js 的 Wiki 知识库系统，支持文档管理、搜索和分类功能。

## 技术栈

- **前端框架**: Next.js 15.3.2, React 19
- **UI 组件库**: Material-UI (@mui/material 7.1.0)
- **状态管理**: 内置 React Hooks
- **Markdown 解析**: markdown-it, react-markdown
- **代码规范**: ESLint, TypeScript 5
- **包管理**: pnpm
- **API 文档**: cx-swagger-api

## 安装与运行

1. 克隆项目：
   ```bash
   git clone https://github.com/your-repo/PandaWiki.git
   ```
2. 安装依赖：
   ```bash
   pnpm install
   ```
3. 配置环境变量：
   - 在项目根目录下，新建文件 `.env.local` , 根据需求修改环境变量，实际字段如下：

     ```env
     # 目标服务配置
     TARGET=http://your_target_ip:8000 # 后端服务地址
     STATIC_FILE_TARGET=https://your_static_file_ip:2443 # 静态文件服务地址

     # 开发相关
     DEV_KB_ID=your_dev_kb_id # 开发环境知识库ID

     # Swagger 配置
     SWAGGER_BASE_URL=http://your_swagger_ip:8000 # Swagger API 文档地址
     SWAGGER_AUTH_TOKEN=your_swagger_token # Swagger 认证令牌
     ```

4. 启动开发服务器：
   ```bash
   pnpm dev
   ```
5. 构建生产版本：
   ```bash
   pnpm build
   ```
6. 启动生产服务器：
   ```bash
   pnpm start
   ```

## 可用命令

- `pnpm dev`: 开发模式 (端口 3010)
- `pnpm build`: 构建生产版本
- `pnpm start`: 启动生产服务器
- `pnpm lint`: 代码检查
- `pnpm api`: 生成 API 文档(环境变量需提供 `SWAGGER_BASE_URL`、`SWAGGER_AUTH_TOKEN`)

## 开发指南

1. 确保代码符合 ESLint 和 Stylelint 规范。
2. 如需代码格式化，运行：
   ```bash
   pnpm format
   ```
3. 提交 Pull Request 时描述清楚改动内容。

---

### Backend Docs Swagger.Json (`backend/docs/swagger.json`)

{
    "swagger": "2.0",
    "info": {
        "description": "panda-wiki API documentation",
        "title": "panda-wiki API",
        "contact": {},
        "version": "1.0"
    },
    "basePath": "/",
    "paths": {
        "/api/v1/app": {
            "put": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Update app",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "app"
                ],
                "summary": "Update app",
                "parameters": [
                    {
                        "type": "string",
                        "description": "id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "description": "app",
                        "name": "app",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.UpdateAppReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            },
            "delete": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Delete app",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "app"
                ],
                "summary": "Delete app",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "app id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/app/detail": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get app detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "app"
                ],
                "summary": "Get app detail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "app type",
                        "name": "type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.AppDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/auth/delete": {
            "delete": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "删除授权信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "删除授权信息",
                "operationId": "v1-OpenAuthDelete",
                "parameters": [
                    {
                        "type": "integer",
                        "name": "id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/auth/get": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "获取授权信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "获取授权信息",
                "operationId": "v1-OpenAuthGet",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "dingtalk",
                            "feishu",
                            "wecom",
                            "oauth",
                            "github",
                            "cas",
                            "ldap",
                            "widget",
                            "dingtalk_bot",
                            "feishu_bot",
                            "lark_bot",
                            "wechat_bot",
                            "wecom_ai_bot",
                            "wechat_service_bot",
                            "discord_bot",
                            "wechat_official_account",
                            "openai_api",
                            "mcp_server"
                        ],
                        "type": "string",
                        "x-enum-varnames": [
                            "SourceTypeDingTalk",
                            "SourceTypeFeishu",
                            "SourceTypeWeCom",
                            "SourceTypeOAuth",
                            "SourceTypeGitHub",
                            "SourceTypeCAS",
                            "SourceTypeLDAP",
                            "SourceTypeWidget",
                            "SourceTypeDingtalkBot",
                            "SourceTypeFeishuBot",
                            "SourceTypeLarkBot",
                            "SourceTypeWechatBot",
                            "SourceTypeWecomAIBot",
                            "SourceTypeWechatServiceBot",
                            "SourceTypeDiscordBot",
                            "SourceTypeWechatOfficialAccount",
                            "SourceTypeOpenAIAPI",
                            "SourceTypeMcpServer"
                        ],
                        "name": "source_type",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthGetResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/auth/set": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "设置授权信息",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Auth"
                ],
                "summary": "设置授权信息",
                "operationId": "v1-OpenAuthSet",
                "parameters": [
                    {
                        "description": "para",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthSetReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/comment": {
            "get": {
                "description": "GetCommentModeratedList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "comment"
                ],
                "summary": "GetCommentModeratedList",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "per_page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "enum": [
                            -1,
                            0,
                            1
                        ],
                        "type": "integer",
                        "format": "int32",
                        "x-enum-varnames": [
                            "CommentStatusReject",
                            "CommentStatusPending",
                            "CommentStatusAccepted"
                        ],
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "conversationList",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CommentLists"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/comment/delete": {
            "post": {
                "description": "CommentDelete",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "comment"
                ],
                "summary": "CommentDelete",
                "parameters": [
                    {
                        "description": "CommentDeleteReq",
                        "name": "req",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CommentDeleteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "total",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/conversation": {
            "get": {
                "description": "get conversation list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "conversation"
                ],
                "summary": "get conversation list",
                "parameters": [
                    {
                        "type": "string",
                        "name": "app_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "per_page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "remote_ip",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "subject",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.ConversationListItems"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/conversation/detail": {
            "get": {
                "description": "get conversation detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "conversation"
                ],
                "summary": "get conversation detail",
                "parameters": [
                    {
                        "type": "string",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ConversationDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/conversation/message/detail": {
            "get": {
                "description": "Get message detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Message"
                ],
                "summary": "Get message detail",
                "parameters": [
                    {
                        "type": "string",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ConversationMessage"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/conversation/message/list": {
            "get": {
                "description": "GetMessageFeedBackList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Message"
                ],
                "summary": "GetMessageFeedBackList",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "page",
                        "in": "query",
                        "required": true
                    },
                    {
                        "minimum": 1,
                        "type": "integer",
                        "name": "per_page",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "MessageList",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.PaginatedResult-array_domain_ConversationMessageListItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/crawler/export": {
            "post": {
                "description": "CrawlerExport",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "crawler"
                ],
                "summary": "CrawlerExport",
                "parameters": [
                    {
                        "description": "Scrape",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.CrawlerExportReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CrawlerExportResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/crawler/parse": {
            "post": {
                "description": "解析文档树",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "crawler"
                ],
                "summary": "解析文档树",
                "parameters": [
                    {
                        "description": "Scrape",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.CrawlerParseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CrawlerParseResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/crawler/result": {
            "get": {
                "description": "Retrieve the result of a previously started scraping task",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "crawler"
                ],
                "summary": "Get Crawler Result",
                "parameters": [
                    {
                        "description": "Crawler Result Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.CrawlerResultReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CrawlerResultResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/crawler/results": {
            "post": {
                "description": "Retrieve the results of a previously started scraping task",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "crawler"
                ],
                "summary": "Get Crawler Results",
                "parameters": [
                    {
                        "description": "Crawler Results Request",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.CrawlerResultsReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CrawlerResultsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/creation/tab-complete": {
            "post": {
                "description": "Tab-based document completion similar to AI coding's FIM (Fill in Middle)",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "creation"
                ],
                "summary": "Tab-based document completion",
                "parameters": [
                    {
                        "description": "tab completion request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CompleteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/creation/text": {
            "post": {
                "description": "Text creation",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "creation"
                ],
                "summary": "Text creation",
                "parameters": [
                    {
                        "description": "text creation request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.TextReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "success",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/file/upload": {
            "post": {
                "description": "Upload File",
                "consumes": [
                    "multipart/form-data"
                ],
                "tags": [
                    "file"
                ],
                "summary": "Upload File",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "kb_id",
                        "in": "formData"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.ObjectUploadResp"
                        }
                    }
                }
            }
        },
        "/api/v1/file/upload/anydoc": {
            "post": {
                "description": "Upload Anydoc File",
                "consumes": [
                    "multipart/form-data"
                ],
                "tags": [
                    "file"
                ],
                "summary": "Upload Anydoc File",
                "parameters": [
                    {
                        "type": "file",
                        "description": "File",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "File Path",
                        "name": "path",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.AnydocUploadResp"
                        }
                    }
                }
            }
        },
        "/api/v1/file/upload/url": {
            "post": {
                "description": "Upload File By Url",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "file"
                ],
                "summary": "Upload File By Url",
                "parameters": [
                    {
                        "description": "Request Body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.UploadByUrlReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ObjectUploadResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base": {
            "post": {
                "description": "CreateKnowledgeBase",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "CreateKnowledgeBase",
                "parameters": [
                    {
                        "description": "CreateKnowledgeBase Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CreateKnowledgeBaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/detail": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "GetKnowledgeBaseDetail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "GetKnowledgeBaseDetail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.KnowledgeBaseDetail"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "description": "UpdateKnowledgeBase",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "UpdateKnowledgeBase",
                "parameters": [
                    {
                        "description": "UpdateKnowledgeBase Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.UpdateKnowledgeBaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            },
            "delete": {
                "description": "DeleteKnowledgeBase",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "DeleteKnowledgeBase",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/list": {
            "get": {
                "description": "GetKnowledgeBaseList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "GetKnowledgeBaseList",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.KnowledgeBaseListItem"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/release": {
            "post": {
                "description": "CreateKBRelease",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "CreateKBRelease",
                "parameters": [
                    {
                        "description": "CreateKBRelease Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CreateKBReleaseReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/release/list": {
            "get": {
                "description": "GetKBReleaseList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "GetKBReleaseList",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.GetKBReleaseListResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/user/delete": {
            "delete": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Remove user from knowledge base",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "KBUserDelete",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "user_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/user/invite": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Invite user to knowledge base",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "KBUserInvite",
                "parameters": [
                    {
                        "description": "Invite User Request",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.KBUserInviteReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/user/list": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "KBUserList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "KBUserList",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/v1.KBUserListItemResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/knowledge_base/user/update": {
            "patch": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Update user permission in knowledge base",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "knowledge_base"
                ],
                "summary": "KBUserUpdate",
                "parameters": [
                    {
                        "description": "Update User Permission Request",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.KBUserUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/model": {
            "put": {
                "description": "update model",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "parameters": [
                    {
                        "description": "update model request",
                        "name": "model",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.UpdateModelReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            },
            "post": {
                "description": "create model",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "create model",
                "parameters": [
                    {
                        "description": "create model request",
                        "name": "model",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CreateModelReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/model/check": {
            "post": {
                "description": "check model",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "check model",
                "parameters": [
                    {
                        "description": "check model request",
                        "name": "model",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.CheckModelReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.CheckModelResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/model/list": {
            "get": {
                "description": "get model list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "get model list",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelListItem"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/model/mode-setting": {
            "get": {
                "description": "get current model mode setting including mode, API key and chat model",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "get model mode setting",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ModelModeSetting"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/model/provider/supported": {
            "post": {
                "description": "get provider supported model list",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "get provider supported model list",
                "parameters": [
                    {
                        "description": "get supported model list request",
                        "name": "params",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.GetProviderModelListReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.GetProviderModelListResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/model/switch-mode": {
            "post": {
                "description": "switch model mode between manual and auto",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "model"
                ],
                "summary": "switch mode",
                "parameters": [
                    {
                        "description": "switch mode request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.SwitchModeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.SwitchModeResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/nav/add": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Add Nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Nav"
                ],
                "summary": "添加分栏",
                "parameters": [
                    {
                        "description": "Params",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NavAddReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PWResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/nav/delete": {
            "delete": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "DeleteNav Nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Nav"
                ],
                "summary": "删除栏目",
                "parameters": [
                    {
                        "type": "string",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PWResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/nav/list": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get Nav List",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Nav"
                ],
                "summary": "获取分栏列表",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/v1.NavListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/nav/move": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Move Nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Nav"
                ],
                "summary": "移动栏目",
                "parameters": [
                    {
                        "description": "Params",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NavMoveReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PWResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/nav/update": {
            "patch": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Update Nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Nav"
                ],
                "summary": "更新栏目信息",
                "parameters": [
                    {
                        "description": "Params",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NavUpdateReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PWResponse"
                        }
                    }
                }
            }
        },
        "/api/v1/node": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Create Node",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Create Node",
                "parameters": [
                    {
                        "description": "Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CreateNodeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/action": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Node Action",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Node Action",
                "parameters": [
                    {
                        "description": "Action",
                        "name": "action",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.NodeActionReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/batch_move": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Batch Move Node",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Batch Move Node",
                "parameters": [
                    {
                        "description": "Batch Move Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.BatchMoveReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/node/detail": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get Node Detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Get Node Detail",
                "parameters": [
                    {
                        "type": "string",
                        "name": "format",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.NodeDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "put": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Update Node Detail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Update Node Detail",
                "parameters": [
                    {
                        "description": "Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.UpdateNodeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/node/list": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get Node List",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Get Node List",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "nav_id",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "search",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.NodeListItemResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/list/group/nav": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get unpublished or unstudied document list grouped by nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Get Node List Grouped by Nav",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "nav_ids",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "search",
                        "in": "query"
                    },
                    {
                        "enum": [
                            "released",
                            "unpublished",
                            "unstudied"
                        ],
                        "type": "string",
                        "name": "status",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_node_v1.NodeListGroupNavResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/move": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Move Node",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Move Node",
                "parameters": [
                    {
                        "description": "Move Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.MoveNodeReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/node/move/nav": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Move node (and all its descendants if folder) to a different nav",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Move Node to Nav",
                "parameters": [
                    {
                        "description": "Move Node Nav",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NodeMoveNavReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/node/permission": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "文档授权信息获取",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "NodePermission"
                ],
                "summary": "文档授权信息获取",
                "operationId": "v1-NodePermission",
                "parameters": [
                    {
                        "type": "string",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.NodePermissionResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/permission/edit": {
            "patch": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "文档授权信息更新",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "NodePermission"
                ],
                "summary": "文档授权信息更新",
                "operationId": "v1-NodePermissionEdit",
                "parameters": [
                    {
                        "description": "para",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NodePermissionEditReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.NodePermissionEditResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/recommend_nodes": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Recommend Nodes",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Recommend Nodes",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "nav_ids",
                        "in": "query"
                    },
                    {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "collectionFormat": "csv",
                        "name": "node_ids",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.RecommendNodeListResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/restudy": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "文档重新学习",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Node"
                ],
                "summary": "文档重新学习",
                "operationId": "v1-NodeRestudy",
                "parameters": [
                    {
                        "description": "para",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.NodeRestudyReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.NodeRestudyResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/stats": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Get Node Statistics",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Get Node Statistics",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.NodeStatsResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/node/summary": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Summary Node",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Summary Node 异步后台生成",
                "parameters": [
                    {
                        "description": "Summary Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.NodeSummaryReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/node/summary/stream": {
            "post": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "Stream Summary Node for single document",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "text/event-stream"
                ],
                "tags": [
                    "node"
                ],
                "summary": "Stream Summary Node",
                "parameters": [
                    {
                        "description": "Summary Node",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.NodeSummaryReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "SSE stream",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            }
        },
        "/api/v1/stat/browsers": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "客户端统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "客户端统计",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.HotBrowser"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/conversation_distribution": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "问答来源",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "问答来源",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/v1.StatConversationDistributionResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/count": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "全局统计",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "全局统计",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.StatCountResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/geo_count": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "用户地理分布",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "用户地理分布",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/stat/hot_pages": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "热门文档",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "热门文档",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.HotPage"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/instant_count": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "GetInstantCount",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "GetInstantCount",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.InstantCountResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/instant_pages": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "GetInstantPages",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "GetInstantPages",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.InstantPageResp"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/stat/referer_hosts": {
            "get": {
                "security": [
                    {
                        "bearerAuth": []
                    }
                ],
                "description": "来源域名",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "stat"
                ],
                "summary": "来源域名",
                "parameters": [
                    {
                        "enum": [
                            1,
                            7,
                            30,
                            90
                        ],
                        "type": "integer",
                        "x-enum-varnames": [
                            "StatDay1",
                            "StatDay7",
                            "StatDay30",
                            "StatDay90"
                        ],
                        "name": "day",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/domain.HotRefererHost"
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/user": {
            "get": {
                "description": "GetUser",
                "consumes": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "GetUser",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.UserInfoResp"
                        }
                    }
                }
            }
        },
        "/api/v1/user/create": {
            "post": {
                "description": "CreateUser",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "CreateUser",
                "parameters": [
                    {
                        "description": "CreateUser Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.CreateUserReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.CreateUserResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/user/delete": {
            "delete": {
                "description": "DeleteUser",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "DeleteUser",
                "parameters": [
                    {
                        "type": "string",
                        "name": "user_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/api/v1/user/list": {
            "get": {
                "description": "ListUsers",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "ListUsers",
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.UserListResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/api/v1/user/login": {
            "post": {
                "description": "Login",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "Login",
                "parameters": [
                    {
                        "description": "Login Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.LoginReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/v1.LoginResp"
                        }
                    }
                }
            }
        },
        "/api/v1/user/reset_password": {
            "put": {
                "description": "ResetPassword",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "user"
                ],
                "summary": "ResetPassword",
                "parameters": [
                    {
                        "description": "ResetPassword Request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.ResetPasswordReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/app/web/info": {
            "get": {
                "description": "GetAppInfo",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_app"
                ],
                "summary": "GetAppInfo",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.AppInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/app/wechat/info": {
            "get": {
                "description": "WechatAppInfo",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_chat"
                ],
                "summary": "WechatAppInfo",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.WechatAppInfoResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/app/wechat/service/answer": {
            "get": {
                "description": "GetWechatAnswer",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Wechat"
                ],
                "summary": "GetWechatAnswer",
                "parameters": [
                    {
                        "type": "string",
                        "description": "conversation id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/app/widget/info": {
            "get": {
                "description": "GetWidgetAppInfo",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_app"
                ],
                "summary": "GetWidgetAppInfo",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/auth/get": {
            "get": {
                "description": "AuthGet",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_auth"
                ],
                "summary": "AuthGet",
                "operationId": "v1-AuthGet",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb_id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGetResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/auth/github": {
            "post": {
                "description": "GitHub登录",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShareAuth"
                ],
                "summary": "GitHub登录",
                "operationId": "v1-AuthGitHub",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "para",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/auth/login/simple": {
            "post": {
                "description": "AuthLoginSimple",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_auth"
                ],
                "summary": "AuthLoginSimple",
                "operationId": "v1-AuthLoginSimple",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb_id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "para",
                        "name": "param",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.AuthLoginSimpleReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/captcha/challenge": {
            "post": {
                "description": "CreateCaptcha",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_captcha"
                ],
                "summary": "CreateCaptcha",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/gocap.ChallengeData"
                        }
                    }
                }
            }
        },
        "/share/v1/captcha/redeem": {
            "post": {
                "description": "RedeemCaptcha",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_captcha"
                ],
                "summary": "RedeemCaptcha",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/consts.RedeemCaptchaReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/gocap.VerificationResult"
                        }
                    }
                }
            }
        },
        "/share/v1/chat/completions": {
            "post": {
                "description": "OpenAI API compatible chat completions endpoint",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_chat"
                ],
                "summary": "ChatCompletions",
                "parameters": [
                    {
                        "type": "string",
                        "description": "Knowledge Base ID",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "description": "OpenAI API request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.OpenAICompletionsRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.OpenAICompletionsResponse"
                        }
                    },
                    "400": {
                        "description": "Bad Request",
                        "schema": {
                            "$ref": "#/definitions/domain.OpenAIErrorResponse"
                        }
                    }
                }
            }
        },
        "/share/v1/chat/feedback": {
            "post": {
                "description": "Process user feedback for chat conversations",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_chat"
                ],
                "summary": "Handle chat feedback",
                "parameters": [
                    {
                        "description": "feedback request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.FeedbackRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/chat/message": {
            "post": {
                "description": "ChatMessage",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_chat"
                ],
                "summary": "ChatMessage",
                "parameters": [
                    {
                        "type": "string",
                        "description": "app type",
                        "name": "app_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.ChatRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/chat/search": {
            "post": {
                "description": "ChatSearch",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_chat_search"
                ],
                "summary": "ChatSearch",
                "parameters": [
                    {
                        "description": "request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.ChatSearchReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ChatSearchResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/chat/widget": {
            "post": {
                "description": "ChatWidget",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Widget"
                ],
                "summary": "ChatWidget",
                "parameters": [
                    {
                        "type": "string",
                        "description": "app type",
                        "name": "app_type",
                        "in": "query",
                        "required": true
                    },
                    {
                        "description": "request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.ChatRequest"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/chat/widget/search": {
            "post": {
                "description": "WidgetSearch",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "Widget"
                ],
                "summary": "WidgetSearch",
                "parameters": [
                    {
                        "description": "Comment",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.ChatSearchReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ChatSearchResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/comment": {
            "post": {
                "description": "CreateComment",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_comment"
                ],
                "summary": "CreateComment",
                "parameters": [
                    {
                        "description": "Comment",
                        "name": "comment",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.CommentReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "CommentID",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "string"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/comment/list": {
            "get": {
                "description": "GetCommentList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_comment"
                ],
                "summary": "GetCommentList",
                "parameters": [
                    {
                        "type": "string",
                        "description": "nodeID",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "CommentList",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/share.ShareCommentLists"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/common/file/upload": {
            "post": {
                "description": "前台用户上传文件,目前只支持图片文件上传",
                "consumes": [
                    "multipart/form-data"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShareFile"
                ],
                "summary": "文件上传",
                "operationId": "share-FileUpload",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "file",
                        "description": "File",
                        "name": "file",
                        "in": "formData",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "captcha_token",
                        "name": "captcha_token",
                        "in": "formData",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_share_v1.FileUploadResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/common/file/upload/url": {
            "post": {
                "description": "前台用户上传文件,目前只支持图片文件上传",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShareFile"
                ],
                "summary": "文件上传",
                "operationId": "share-FileUploadByUrl",
                "parameters": [
                    {
                        "description": "body",
                        "name": "body",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/v1.ShareFileUploadUrlReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.ShareFileUploadUrlResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/conversation/detail": {
            "get": {
                "description": "GetConversationDetail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_conversation"
                ],
                "summary": "GetConversationDetail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "conversation id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/domain.ShareConversationDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/nav/list": {
            "get": {
                "description": "ShareNavList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_nav"
                ],
                "summary": "前台获取栏目列表",
                "parameters": [
                    {
                        "type": "string",
                        "name": "kb_id",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/node/detail": {
            "get": {
                "description": "GetNodeDetail",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_node"
                ],
                "summary": "GetNodeDetail",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "node id",
                        "name": "id",
                        "in": "query",
                        "required": true
                    },
                    {
                        "type": "string",
                        "description": "format",
                        "name": "format",
                        "in": "query",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.Response"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/v1.ShareNodeDetailResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/node/list": {
            "get": {
                "description": "ShareNodeList",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_node"
                ],
                "summary": "ShareNodeList",
                "parameters": [
                    {
                        "type": "string",
                        "description": "kb id",
                        "name": "X-KB-ID",
                        "in": "header",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        },
        "/share/v1/openapi/github/callback": {
            "get": {
                "description": "GitHub回调",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShareOpenapi"
                ],
                "summary": "GitHub回调",
                "operationId": "v1-GitHubCallback",
                "parameters": [
                    {
                        "type": "string",
                        "name": "code",
                        "in": "query"
                    },
                    {
                        "type": "string",
                        "name": "state",
                        "in": "query"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "allOf": [
                                {
                                    "$ref": "#/definitions/domain.PWResponse"
                                },
                                {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_share_v1.GitHubCallbackResp"
                                        }
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        },
        "/share/v1/openapi/lark/bot/{kb_id}": {
            "post": {
                "description": "Lark机器人请求",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "ShareOpenapi"
                ],
                "summary": "Lark机器人请求",
                "operationId": "v1-LarkBot",
                "parameters": [
                    {
                        "type": "string",
                        "description": "知识库ID",
                        "name": "kb_id",
                        "in": "path",
                        "required": true
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.PWResponse"
                        }
                    }
                }
            }
        },
        "/share/v1/stat/page": {
            "post": {
                "description": "RecordPage",
                "consumes": [
                    "application/json"
                ],
                "produces": [
                    "application/json"
                ],
                "tags": [
                    "share_stat"
                ],
                "summary": "RecordPage",
                "parameters": [
                    {
                        "description": "request",
                        "name": "request",
                        "in": "body",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/domain.StatPageReq"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/domain.Response"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "anydoc.Child": {
            "type": "object",
            "properties": {
                "children": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/anydoc.Child"
                    }
                },
                "value": {
                    "$ref": "#/definitions/anydoc.Value"
                }
            }
        },
        "anydoc.DingtalkSetting": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "app_secret": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "space_id": {
                    "type": "string"
                },
                "unionid": {
                    "type": "string"
                }
            }
        },
        "anydoc.FeishuSetting": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "app_secret": {
                    "type": "string"
                },
                "space_id": {
                    "type": "string"
                },
                "user_access_token": {
                    "type": "string"
                }
            }
        },
        "anydoc.Value": {
            "type": "object",
            "properties": {
                "file": {
                    "type": "boolean"
                },
                "file_type": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "consts.AuthType": {
            "type": "string",
            "enum": [
                "",
                "simple",
                "enterprise"
            ],
            "x-enum-comments": {
                "AuthTypeEnterprise": "企业认证",
                "AuthTypeNull": "无认证",
                "AuthTypeSimple": "简单口令"
            },
            "x-enum-descriptions": [
                "无认证",
                "简单口令",
                "企业认证"
            ],
            "x-enum-varnames": [
                "AuthTypeNull",
                "AuthTypeSimple",
                "AuthTypeEnterprise"
            ]
        },
        "consts.CopySetting": {
            "type": "string",
            "enum": [
                "",
                "append",
                "disabled"
            ],
            "x-enum-comments": {
                "CopySettingAppend": "增加内容尾巴",
                "CopySettingDisabled": "禁止复制内容",
                "CopySettingNone": "无限制"
            },
            "x-enum-descriptions": [
                "无限制",
                "增加内容尾巴",
                "禁止复制内容"
            ],
            "x-enum-varnames": [
                "CopySettingNone",
                "CopySettingAppend",
                "CopySettingDisabled"
            ]
        },
        "consts.CrawlerSource": {
            "type": "string",
            "enum": [
                "url",
                "rss",
                "sitemap",
                "notion",
                "feishu",
                "dingtalk",
                "file",
                "epub",
                "yuque",
                "siyuan",
                "mindoc",
                "wikijs",
                "confluence"
            ],
            "x-enum-varnames": [
                "CrawlerSourceUrl",
                "CrawlerSourceRSS",
                "CrawlerSourceSitemap",
                "CrawlerSourceNotion",
                "CrawlerSourceFeishu",
                "CrawlerSourceDingtalk",
                "CrawlerSourceFile",
                "CrawlerSourceEpub",
                "CrawlerSourceYuque",
                "CrawlerSourceSiyuan",
                "CrawlerSourceMindoc",
                "CrawlerSourceWikijs",
                "CrawlerSourceConfluence"
            ]
        },
        "consts.CrawlerStatus": {
            "type": "string",
            "enum": [
                "pending",
                "in_process",
                "completed",
                "failed"
            ],
            "x-enum-varnames": [
                "CrawlerStatusPending",
                "CrawlerStatusInProcess",
                "CrawlerStatusCompleted",
                "CrawlerStatusFailed"
            ]
        },
        "consts.HomePageSetting": {
            "type": "string",
            "enum": [
                "doc",
                "custom"
            ],
            "x-enum-comments": {
                "HomePageSettingCustom": "自定义首页",
                "HomePageSettingDoc": "文档页面"
            },
            "x-enum-descriptions": [
                "文档页面",
                "自定义首页"
            ],
            "x-enum-varnames": [
                "HomePageSettingDoc",
                "HomePageSettingCustom"
            ]
        },
        "consts.LicenseEdition": {
            "type": "integer",
            "format": "int32",
            "enum": [
                0,
                1,
                2,
                3
            ],
            "x-enum-comments": {
                "LicenseEditionBusiness": "商业版",
                "LicenseEditionEnterprise": "企业版",
                "LicenseEditionFree": "开源版",
                "LicenseEditionProfession": "专业版"
            },
            "x-enum-descriptions": [
                "开源版",
                "专业版",
                "企业版",
                "商业版"
            ],
            "x-enum-varnames": [
                "LicenseEditionFree",
                "LicenseEditionProfession",
                "LicenseEditionEnterprise",
                "LicenseEditionBusiness"
            ]
        },
        "consts.ModelSettingMode": {
            "type": "string",
            "enum": [
                "manual",
                "auto"
            ],
            "x-enum-varnames": [
                "ModelSettingModeManual",
                "ModelSettingModeAuto"
            ]
        },
        "consts.NodeAccessPerm": {
            "type": "string",
            "enum": [
                "open",
                "partial",
                "closed"
            ],
            "x-enum-comments": {
                "NodeAccessPermClosed": "完全禁止",
                "NodeAccessPermOpen": "完全开放",
                "NodeAccessPermPartial": "部分开放"
            },
            "x-enum-descriptions": [
                "完全开放",
                "部分开放",
                "完全禁止"
            ],
            "x-enum-varnames": [
                "NodeAccessPermOpen",
                "NodeAccessPermPartial",
                "NodeAccessPermClosed"
            ]
        },
        "consts.NodePermName": {
            "type": "string",
            "enum": [
                "visible",
                "visitable",
                "answerable"
            ],
            "x-enum-comments": {
                "NodePermNameAnswerable": "可被问答",
                "NodePermNameVisible": "导航内可见",
                "NodePermNameVisitable": "可被访问"
            },
            "x-enum-descriptions": [
                "导航内可见",
                "可被访问",
                "可被问答"
            ],
            "x-enum-varnames": [
                "NodePermNameVisible",
                "NodePermNameVisitable",
                "NodePermNameAnswerable"
            ]
        },
        "consts.NodeRagInfoStatus": {
            "type": "string",
            "enum": [
                "PENDING",
                "RUNNING",
                "FAILED",
                "SUCCEEDED",
                "REINDEX"
            ],
            "x-enum-comments": {
                "NodeRagStatusFailed": "处理失败",
                "NodeRagStatusPending": "等待处理",
                "NodeRagStatusReindexing": "重新索引中",
                "NodeRagStatusRunning": "正在进行处理（文本分割、向量化等）",
                "NodeRagStatusSucceeded": "处理成功"
            },
            "x-enum-descriptions": [
                "等待处理",
                "正在进行处理（文本分割、向量化等）",
                "处理失败",
                "处理成功",
                "重新索引中"
            ],
            "x-enum-varnames": [
                "NodeRagStatusPending",
                "NodeRagStatusRunning",
                "NodeRagStatusFailed",
                "NodeRagStatusSucceeded",
                "NodeRagStatusReindexing"
            ]
        },
        "consts.RedeemCaptchaReq": {
            "type": "object",
            "properties": {
                "solutions": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "consts.SourceType": {
            "type": "string",
            "enum": [
                "dingtalk",
                "feishu",
                "wecom",
                "oauth",
                "github",
                "cas",
                "ldap",
                "widget",
                "dingtalk_bot",
                "feishu_bot",
                "lark_bot",
                "wechat_bot",
                "wecom_ai_bot",
                "wechat_service_bot",
                "discord_bot",
                "wechat_official_account",
                "openai_api",
                "mcp_server"
            ],
            "x-enum-varnames": [
                "SourceTypeDingTalk",
                "SourceTypeFeishu",
                "SourceTypeWeCom",
                "SourceTypeOAuth",
                "SourceTypeGitHub",
                "SourceTypeCAS",
                "SourceTypeLDAP",
                "SourceTypeWidget",
                "SourceTypeDingtalkBot",
                "SourceTypeFeishuBot",
                "SourceTypeLarkBot",
                "SourceTypeWechatBot",
                "SourceTypeWecomAIBot",
                "SourceTypeWechatServiceBot",
                "SourceTypeDiscordBot",
                "SourceTypeWechatOfficialAccount",
                "SourceTypeOpenAIAPI",
                "SourceTypeMcpServer"
            ]
        },
        "consts.StatDay": {
            "type": "integer",
            "enum": [
                1,
                7,
                30,
                90
            ],
            "x-enum-varnames": [
                "StatDay1",
                "StatDay7",
                "StatDay30",
                "StatDay90"
            ]
        },
        "consts.UserKBPermission": {
            "type": "string",
            "enum": [
                "",
                "not null",
                "full_control",
                "doc_manage",
                "data_operate"
            ],
            "x-enum-comments": {
                "UserKBPermissionDataOperate": "数据运营",
                "UserKBPermissionDocManage": "文档管理",
                "UserKBPermissionFullControl": "完全控制",
                "UserKBPermissionNotNull": "有权限",
                "UserKBPermissionNull": "无权限"
            },
            "x-enum-descriptions": [
                "无权限",
                "有权限",
                "完全控制",
                "文档管理",
                "数据运营"
            ],
            "x-enum-varnames": [
                "UserKBPermissionNull",
                "UserKBPermissionNotNull",
                "UserKBPermissionFullControl",
                "UserKBPermissionDocManage",
                "UserKBPermissionDataOperate"
            ]
        },
        "consts.UserRole": {
            "type": "string",
            "enum": [
                "admin",
                "user"
            ],
            "x-enum-comments": {
                "UserRoleAdmin": "管理员",
                "UserRoleUser": "普通用户"
            },
            "x-enum-descriptions": [
                "管理员",
                "普通用户"
            ],
            "x-enum-varnames": [
                "UserRoleAdmin",
                "UserRoleUser"
            ]
        },
        "consts.WatermarkSetting": {
            "type": "string",
            "enum": [
                "",
                "hidden",
                "visible"
            ],
            "x-enum-comments": {
                "WatermarkDisabled": "未开启水印",
                "WatermarkHidden": "隐形水印",
                "WatermarkVisible": "显性水印"
            },
            "x-enum-descriptions": [
                "未开启水印",
                "隐形水印",
                "显性水印"
            ],
            "x-enum-varnames": [
                "WatermarkDisabled",
                "WatermarkHidden",
                "WatermarkVisible"
            ]
        },
        "domain.AIFeedbackSettings": {
            "type": "object",
            "properties": {
                "ai_feedback_type": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "is_enabled": {
                    "type": "boolean"
                }
            }
        },
        "domain.AccessSettings": {
            "type": "object",
            "properties": {
                "base_url": {
                    "type": "string"
                },
                "enterprise_auth": {
                    "$ref": "#/definitions/domain.EnterpriseAuth"
                },
                "hosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "is_forbidden": {
                    "description": "禁止访问",
                    "type": "boolean"
                },
                "ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "private_key": {
                    "type": "string"
                },
                "public_key": {
                    "type": "string"
                },
                "simple_auth": {
                    "$ref": "#/definitions/domain.SimpleAuth"
                },
                "source_type": {
                    "description": "企业认证来源",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.SourceType"
                        }
                    ]
                },
                "ssl_ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "trusted_proxies": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "domain.AnydocUploadResp": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer"
                },
                "data": {
                    "type": "string"
                },
                "err": {
                    "type": "string"
                }
            }
        },
        "domain.AppDetailResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "recommend_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.RecommendNodeListResp"
                    }
                },
                "settings": {
                    "$ref": "#/definitions/domain.AppSettingsResp"
                },
                "type": {
                    "$ref": "#/definitions/domain.AppType"
                }
            }
        },
        "domain.AppInfoResp": {
            "type": "object",
            "properties": {
                "base_url": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "recommend_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.RecommendNodeListResp"
                    }
                },
                "settings": {
                    "$ref": "#/definitions/domain.AppSettingsResp"
                }
            }
        },
        "domain.AppSettings": {
            "type": "object",
            "properties": {
                "ai_feedback_settings": {
                    "description": "AI feedback",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.AIFeedbackSettings"
                        }
                    ]
                },
                "body_code": {
                    "type": "string"
                },
                "btns": {
                    "type": "array",
                    "items": {}
                },
                "catalog_settings": {
                    "description": "catalog settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.CatalogSettings"
                        }
                    ]
                },
                "contribute_settings": {
                    "$ref": "#/definitions/domain.ContributeSettings"
                },
                "conversation_setting": {
                    "$ref": "#/definitions/domain.ConversationSetting"
                },
                "copy_setting": {
                    "enum": [
                        "",
                        "append",
                        "disabled"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.CopySetting"
                        }
                    ]
                },
                "desc": {
                    "description": "seo",
                    "type": "string"
                },
                "dingtalk_bot_client_id": {
                    "type": "string"
                },
                "dingtalk_bot_client_secret": {
                    "type": "string"
                },
                "dingtalk_bot_is_enabled": {
                    "description": "DingTalkBot",
                    "type": "boolean"
                },
                "dingtalk_bot_template_id": {
                    "type": "string"
                },
                "disclaimer_settings": {
                    "description": "Disclaimer Settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.DisclaimerSettings"
                        }
                    ]
                },
                "discord_bot_is_enabled": {
                    "description": "DisCordBot",
                    "type": "boolean"
                },
                "discord_bot_token": {
                    "type": "string"
                },
                "document_feedback_is_enabled": {
                    "description": "document feedback",
                    "type": "boolean"
                },
                "feishu_bot_app_id": {
                    "type": "string"
                },
                "feishu_bot_app_secret": {
                    "type": "string"
                },
                "feishu_bot_is_enabled": {
                    "description": "FeishuBot",
                    "type": "boolean"
                },
                "footer_settings": {
                    "description": "footer settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.FooterSettings"
                        }
                    ]
                },
                "head_code": {
                    "description": "inject code",
                    "type": "string"
                },
                "home_page_setting": {
                    "$ref": "#/definitions/consts.HomePageSetting"
                },
                "icon": {
                    "type": "string"
                },
                "keyword": {
                    "type": "string"
                },
                "lark_bot_settings": {
                    "description": "LarkBot",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.LarkBotSettings"
                        }
                    ]
                },
                "mcp_server_settings": {
                    "description": "MCP Server Settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.MCPServerSettings"
                        }
                    ]
                },
                "openai_api_bot_settings": {
                    "description": "OpenAI API Bot settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.OpenAIAPIBotSettings"
                        }
                    ]
                },
                "recommend_node_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "recommend_questions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "search_placeholder": {
                    "type": "string"
                },
                "stats_setting": {
                    "$ref": "#/definitions/domain.StatsSetting"
                },
                "theme_and_style": {
                    "$ref": "#/definitions/domain.ThemeAndStyle"
                },
                "theme_mode": {
                    "description": "theme",
                    "type": "string"
                },
                "title": {
                    "description": "nav",
                    "type": "string"
                },
                "watermark_content": {
                    "type": "string"
                },
                "watermark_setting": {
                    "enum": [
                        "",
                        "hidden",
                        "visible"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.WatermarkSetting"
                        }
                    ]
                },
                "web_app_comment_settings": {
                    "description": "webapp comment settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WebAppCommentSettings"
                        }
                    ]
                },
                "web_app_custom_style": {
                    "description": "WebAppCustomStyle",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WebAppCustomSettings"
                        }
                    ]
                },
                "web_app_landing_configs": {
                    "description": "WebAppLandingConfigs",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.WebAppLandingConfig"
                    }
                },
                "web_app_landing_theme": {
                    "$ref": "#/definitions/domain.WebAppLandingTheme"
                },
                "wechat_app_advanced_setting": {
                    "$ref": "#/definitions/domain.WeChatAppAdvancedSetting"
                },
                "wechat_app_agent_id": {
                    "type": "string"
                },
                "wechat_app_corpid": {
                    "type": "string"
                },
                "wechat_app_encodingaeskey": {
                    "type": "string"
                },
                "wechat_app_is_enabled": {
                    "description": "WechatAppBot 企业微信机器人",
                    "type": "boolean"
                },
                "wechat_app_secret": {
                    "type": "string"
                },
                "wechat_app_token": {
                    "type": "string"
                },
                "wechat_official_account_app_id": {
                    "type": "string"
                },
                "wechat_official_account_app_secret": {
                    "type": "string"
                },
                "wechat_official_account_encodingaeskey": {
                    "type": "string"
                },
                "wechat_official_account_is_enabled": {
                    "description": "WechatOfficialAccount",
                    "type": "boolean"
                },
                "wechat_official_account_token": {
                    "type": "string"
                },
                "wechat_service_contain_keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "wechat_service_corpid": {
                    "type": "string"
                },
                "wechat_service_encodingaeskey": {
                    "type": "string"
                },
                "wechat_service_equal_keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "wechat_service_is_enabled": {
                    "description": "WechatServiceBot",
                    "type": "boolean"
                },
                "wechat_service_logo": {
                    "type": "string"
                },
                "wechat_service_secret": {
                    "type": "string"
                },
                "wechat_service_token": {
                    "type": "string"
                },
                "wecom_ai_bot_settings": {
                    "description": "WecomAIBotSettings 企业微信智能机器人",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WecomAIBotSettings"
                        }
                    ]
                },
                "welcome_str": {
                    "description": "welcome",
                    "type": "string"
                },
                "widget_bot_settings": {
                    "description": "Widget bot settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WidgetBotSettings"
                        }
                    ]
                }
            }
        },
        "domain.AppSettingsResp": {
            "type": "object",
            "properties": {
                "ai_feedback_settings": {
                    "description": "AI feedback",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.AIFeedbackSettings"
                        }
                    ]
                },
                "body_code": {
                    "type": "string"
                },
                "btns": {
                    "type": "array",
                    "items": {}
                },
                "catalog_settings": {
                    "description": "catalog settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.CatalogSettings"
                        }
                    ]
                },
                "contribute_settings": {
                    "$ref": "#/definitions/domain.ContributeSettings"
                },
                "conversation_setting": {
                    "$ref": "#/definitions/domain.ConversationSetting"
                },
                "copy_setting": {
                    "$ref": "#/definitions/consts.CopySetting"
                },
                "desc": {
                    "description": "seo",
                    "type": "string"
                },
                "dingtalk_bot_client_id": {
                    "type": "string"
                },
                "dingtalk_bot_client_secret": {
                    "type": "string"
                },
                "dingtalk_bot_is_enabled": {
                    "description": "DingTalkBot",
                    "type": "boolean"
                },
                "dingtalk_bot_template_id": {
                    "type": "string"
                },
                "disclaimer_settings": {
                    "description": "Disclaimer Settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.DisclaimerSettings"
                        }
                    ]
                },
                "discord_bot_is_enabled": {
                    "description": "DisCordBot",
                    "type": "boolean"
                },
                "discord_bot_token": {
                    "type": "string"
                },
                "document_feedback_is_enabled": {
                    "description": "document feedback",
                    "type": "boolean"
                },
                "feishu_bot_app_id": {
                    "type": "string"
                },
                "feishu_bot_app_secret": {
                    "type": "string"
                },
                "feishu_bot_is_enabled": {
                    "description": "FeishuBot",
                    "type": "boolean"
                },
                "footer_settings": {
                    "description": "footer settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.FooterSettings"
                        }
                    ]
                },
                "head_code": {
                    "description": "inject code",
                    "type": "string"
                },
                "home_page_setting": {
                    "$ref": "#/definitions/consts.HomePageSetting"
                },
                "icon": {
                    "type": "string"
                },
                "keyword": {
                    "type": "string"
                },
                "lark_bot_settings": {
                    "description": "LarkBot",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.LarkBotSettings"
                        }
                    ]
                },
                "mcp_server_settings": {
                    "description": "MCP Server Settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.MCPServerSettings"
                        }
                    ]
                },
                "openai_api_bot_settings": {
                    "description": "OpenAI API settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.OpenAIAPIBotSettings"
                        }
                    ]
                },
                "recommend_node_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "recommend_questions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "search_placeholder": {
                    "type": "string"
                },
                "stats_setting": {
                    "$ref": "#/definitions/domain.StatsSetting"
                },
                "theme_and_style": {
                    "$ref": "#/definitions/domain.ThemeAndStyle"
                },
                "theme_mode": {
                    "description": "theme",
                    "type": "string"
                },
                "title": {
                    "description": "nav",
                    "type": "string"
                },
                "watermark_content": {
                    "type": "string"
                },
                "watermark_setting": {
                    "$ref": "#/definitions/consts.WatermarkSetting"
                },
                "web_app_comment_settings": {
                    "description": "webapp comment settings",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WebAppCommentSettings"
                        }
                    ]
                },
                "web_app_custom_style": {
                    "description": "WebAppCustomStyle",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WebAppCustomSettings"
                        }
                    ]
                },
                "web_app_landing_configs": {
                    "description": "WebApp Landing Settings",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.WebAppLandingConfigResp"
                    }
                },
                "web_app_landing_theme": {
                    "$ref": "#/definitions/domain.WebAppLandingTheme"
                },
                "wechat_app_advanced_setting": {
                    "$ref": "#/definitions/domain.WeChatAppAdvancedSetting"
                },
                "wechat_app_agent_id": {
                    "type": "string"
                },
                "wechat_app_corpid": {
                    "type": "string"
                },
                "wechat_app_encodingaeskey": {
                    "type": "string"
                },
                "wechat_app_is_enabled": {
                    "description": "WechatAppBot",
                    "type": "boolean"
                },
                "wechat_app_secret": {
                    "type": "string"
                },
                "wechat_app_token": {
                    "type": "string"
                },
                "wechat_official_account_app_id": {
                    "type": "string"
                },
                "wechat_official_account_app_secret": {
                    "type": "string"
                },
                "wechat_official_account_encodingaeskey": {
                    "type": "string"
                },
                "wechat_official_account_is_enabled": {
                    "description": "WechatOfficialAccount",
                    "type": "boolean"
                },
                "wechat_official_account_token": {
                    "type": "string"
                },
                "wechat_service_contain_keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "wechat_service_corpid": {
                    "type": "string"
                },
                "wechat_service_encodingaeskey": {
                    "type": "string"
                },
                "wechat_service_equal_keywords": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "wechat_service_is_enabled": {
                    "description": "WechatServiceBot",
                    "type": "boolean"
                },
                "wechat_service_logo": {
                    "type": "string"
                },
                "wechat_service_secret": {
                    "type": "string"
                },
                "wechat_service_token": {
                    "type": "string"
                },
                "wecom_ai_bot_settings": {
                    "$ref": "#/definitions/domain.WecomAIBotSettings"
                },
                "welcome_str": {
                    "description": "welcome",
                    "type": "string"
                },
                "widget_bot_settings": {
                    "description": "WidgetBot",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.WidgetBotSettings"
                        }
                    ]
                }
            }
        },
        "domain.AppType": {
            "type": "integer",
            "format": "int32",
            "enum": [
                1,
                2,
                3,
                4,
                5,
                6,
                7,
                8,
                9,
                10,
                11,
                12
            ],
            "x-enum-varnames": [
                "AppTypeWeb",
                "AppTypeWidget",
                "AppTypeDingTalkBot",
                "AppTypeFeishuBot",
                "AppTypeWechatBot",
                "AppTypeWechatServiceBot",
                "AppTypeDisCordBot",
                "AppTypeWechatOfficialAccount",
                "AppTypeOpenAIAPI",
                "AppTypeWecomAIBot",
                "AppTypeLarkBot",
                "AppTypeMcpServer"
            ]
        },
        "domain.AuthUserInfo": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "domain.BannerConfig": {
            "type": "object",
            "properties": {
                "bg_url": {
                    "type": "string"
                },
                "btns": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "href": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            },
                            "text": {
                                "type": "string"
                            },
                            "type": {
                                "type": "string"
                            }
                        }
                    }
                },
                "hot_search": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "placeholder": {
                    "type": "string"
                },
                "subtitle": {
                    "type": "string"
                },
                "subtitle_color": {
                    "type": "string"
                },
                "subtitle_font_size": {
                    "type": "integer"
                },
                "title": {
                    "type": "string"
                },
                "title_color": {
                    "type": "string"
                },
                "title_font_size": {
                    "type": "integer"
                }
            }
        },
        "domain.BasicDocConfig": {
            "type": "object",
            "properties": {
                "bg_color": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "title_color": {
                    "type": "string"
                }
            }
        },
        "domain.BatchMoveReq": {
            "type": "object",
            "required": [
                "ids",
                "kb_id"
            ],
            "properties": {
                "ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                }
            }
        },
        "domain.BlockGridConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.BrandGroup": {
            "type": "object",
            "properties": {
                "links": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.Link"
                    }
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.BrowserCount": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.CarouselConfig": {
            "type": "object",
            "properties": {
                "bg_color": {
                    "type": "string"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "desc": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            },
                            "title": {
                                "type": "string"
                            },
                            "url": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "domain.CaseConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "link": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.CatalogSettings": {
            "type": "object",
            "properties": {
                "catalog_folder": {
                    "description": "1: 展开, 2: 折叠, default: 1",
                    "type": "integer"
                },
                "catalog_visible": {
                    "description": "1: 显示, 2: 隐藏, default: 1",
                    "type": "integer"
                },
                "catalog_width": {
                    "description": "200 - 300, default: 260",
                    "type": "integer"
                }
            }
        },
        "domain.ChatRequest": {
            "type": "object",
            "required": [
                "app_type"
            ],
            "properties": {
                "app_type": {
                    "enum": [
                        1,
                        2
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.AppType"
                        }
                    ]
                },
                "captcha_token": {
                    "type": "string"
                },
                "conversation_id": {
                    "type": "string"
                },
                "image_paths": {
                    "type": "array",
                    "maxItems": 3,
                    "items": {
                        "type": "string"
                    }
                },
                "message": {
                    "type": "string"
                },
                "nonce": {
                    "type": "string"
                }
            }
        },
        "domain.ChatSearchReq": {
            "type": "object",
            "required": [
                "message"
            ],
            "properties": {
                "captcha_token": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                }
            }
        },
        "domain.ChatSearchResp": {
            "type": "object",
            "properties": {
                "node_result": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.NodeContentChunkSSE"
                    }
                }
            }
        },
        "domain.CommentConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "avatar": {
                                "type": "string"
                            },
                            "comment": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            },
                            "profession": {
                                "type": "string"
                            },
                            "user_name": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.CommentDeleteReq": {
            "type": "object",
            "required": [
                "ids",
                "kb_id"
            ],
            "properties": {
                "ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                }
            }
        },
        "domain.CommentInfo": {
            "type": "object",
            "properties": {
                "auth_user_id": {
                    "type": "integer"
                },
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "remote_ip": {
                    "type": "string"
                },
                "user_name": {
                    "type": "string"
                }
            }
        },
        "domain.CommentListItem": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "info": {
                    "$ref": "#/definitions/domain.CommentInfo"
                },
                "ip_address": {
                    "description": "ip地址",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.IPAddress"
                        }
                    ]
                },
                "node_id": {
                    "type": "string"
                },
                "node_name": {
                    "description": "文档标题",
                    "type": "string"
                },
                "node_type": {
                    "type": "integer"
                },
                "root_id": {
                    "type": "string"
                },
                "status": {
                    "description": "status : -1 reject 0 pending 1 accept",
                    "allOf": [
                        {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.CommentStatus"
                        }
                    ]
                }
            }
        },
        "domain.CommentReq": {
            "type": "object",
            "required": [
                "content",
                "node_id",
                "pic_urls"
            ],
            "properties": {
                "captcha_token": {
                    "type": "string"
                },
                "content": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "pic_urls": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "root_id": {
                    "type": "string"
                },
                "user_name": {
                    "type": "string"
                }
            }
        },
        "domain.CompleteReq": {
            "type": "object",
            "properties": {
                "prefix": {
                    "description": "For FIM (Fill in Middle) style completion",
                    "type": "string"
                },
                "suffix": {
                    "type": "string"
                }
            }
        },
        "domain.ContributeSettings": {
            "type": "object",
            "properties": {
                "is_enable": {
                    "type": "boolean"
                }
            }
        },
        "domain.ConversationDetailResp": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "ip_address": {
                    "$ref": "#/definitions/domain.IPAddress"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ConversationMessage"
                    }
                },
                "references": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ConversationReference"
                    }
                },
                "remote_ip": {
                    "type": "string"
                },
                "subject": {
                    "type": "string"
                }
            }
        },
        "domain.ConversationInfo": {
            "type": "object",
            "properties": {
                "user_info": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.UserInfo"
                }
            }
        },
        "domain.ConversationListItem": {
            "type": "object",
            "properties": {
                "app_name": {
                    "type": "string"
                },
                "app_type": {
                    "$ref": "#/definitions/domain.AppType"
                },
                "created_at": {
                    "type": "string"
                },
                "feedback_info": {
                    "description": "用户反馈信息",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.FeedBackInfo"
                        }
                    ]
                },
                "id": {
                    "type": "string"
                },
                "info": {
                    "description": "用户信息",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ConversationInfo"
                        }
                    ]
                },
                "ip_address": {
                    "$ref": "#/definitions/domain.IPAddress"
                },
                "remote_ip": {
                    "type": "string"
                },
                "subject": {
                    "type": "string"
                }
            }
        },
        "domain.ConversationMessage": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "completion_tokens": {
                    "type": "integer"
                },
                "content": {
                    "type": "string"
                },
                "conversation_id": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "image_paths": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "info": {
                    "description": "feedbackinfo",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.FeedBackInfo"
                        }
                    ]
                },
                "kb_id": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "parent_id": {
                    "description": "parent_id",
                    "type": "string"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "provider": {
                    "description": "model",
                    "allOf": [
                        {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                        }
                    ]
                },
                "remote_ip": {
                    "description": "stats",
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/schema.RoleType"
                },
                "total_tokens": {
                    "type": "integer"
                }
            }
        },
        "domain.ConversationMessageListItem": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "app_type": {
                    "$ref": "#/definitions/domain.AppType"
                },
                "conversation_id": {
                    "type": "string"
                },
                "conversation_info": {
                    "description": "userInfo",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ConversationInfo"
                        }
                    ]
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "info": {
                    "description": "feedbackInfo",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.FeedBackInfo"
                        }
                    ]
                },
                "ip_address": {
                    "$ref": "#/definitions/domain.IPAddress"
                },
                "question": {
                    "type": "string"
                },
                "remote_ip": {
                    "description": "stats",
                    "type": "string"
                }
            }
        },
        "domain.ConversationReference": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "conversation_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "domain.ConversationSetting": {
            "type": "object",
            "properties": {
                "copyright_hide_enabled": {
                    "type": "boolean"
                },
                "copyright_info": {
                    "type": "string"
                }
            }
        },
        "domain.CreateKBReleaseReq": {
            "type": "object",
            "required": [
                "kb_id",
                "message",
                "tag"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "node_ids": {
                    "description": "create release after these nodes published",
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "tag": {
                    "type": "string"
                }
            }
        },
        "domain.CreateKnowledgeBaseReq": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "hosts": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "private_key": {
                    "type": "string"
                },
                "public_key": {
                    "type": "string"
                },
                "ssl_ports": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "domain.CreateModelReq": {
            "type": "object",
            "required": [
                "base_url",
                "model",
                "provider",
                "type"
            ],
            "properties": {
                "api_header": {
                    "type": "string"
                },
                "api_key": {
                    "type": "string"
                },
                "api_version": {
                    "description": "for azure openai",
                    "type": "string"
                },
                "base_url": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "parameters": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam"
                },
                "provider": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                },
                "type": {
                    "enum": [
                        "chat",
                        "embedding",
                        "rerank",
                        "analysis",
                        "analysis-vl"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ModelType"
                        }
                    ]
                }
            }
        },
        "domain.CreateNodeReq": {
            "type": "object",
            "required": [
                "kb_id",
                "name",
                "nav_id",
                "type"
            ],
            "properties": {
                "content": {
                    "type": "string"
                },
                "content_type": {
                    "type": "string"
                },
                "emoji": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "position": {
                    "type": "number"
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "enum": [
                        1,
                        2
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.NodeType"
                        }
                    ]
                }
            }
        },
        "domain.DirDocConfig": {
            "type": "object",
            "properties": {
                "bg_color": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "title_color": {
                    "type": "string"
                }
            }
        },
        "domain.DisclaimerSettings": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                }
            }
        },
        "domain.EnterpriseAuth": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                }
            }
        },
        "domain.FaqConfig": {
            "type": "object",
            "properties": {
                "bg_color": {
                    "type": "string"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "link": {
                                "type": "string"
                            },
                            "question": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "title_color": {
                    "type": "string"
                }
            }
        },
        "domain.FeatureConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "desc": {
                                "type": "string"
                            },
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.FeedBackInfo": {
            "type": "object",
            "properties": {
                "feedback_content": {
                    "type": "string"
                },
                "feedback_type": {
                    "type": "string"
                },
                "score": {
                    "$ref": "#/definitions/domain.ScoreType"
                }
            }
        },
        "domain.FeedbackRequest": {
            "type": "object",
            "required": [
                "message_id"
            ],
            "properties": {
                "conversation_id": {
                    "type": "string"
                },
                "feedback_content": {
                    "description": "限制内容长度",
                    "type": "string",
                    "maxLength": 200
                },
                "message_id": {
                    "type": "string"
                },
                "score": {
                    "description": "-1 踩 ,0 1 赞成",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ScoreType"
                        }
                    ]
                },
                "type": {
                    "description": "内容不准确，没有帮助，.......",
                    "type": "string"
                }
            }
        },
        "domain.FooterSettings": {
            "type": "object",
            "properties": {
                "brand_desc": {
                    "type": "string"
                },
                "brand_groups": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.BrandGroup"
                    }
                },
                "brand_logo": {
                    "type": "string"
                },
                "brand_name": {
                    "type": "string"
                },
                "corp_name": {
                    "type": "string"
                },
                "footer_style": {
                    "type": "string"
                },
                "icp": {
                    "type": "string"
                }
            }
        },
        "domain.GetKBReleaseListResp": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.KBReleaseListItemResp"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "domain.GetProviderModelListReq": {
            "type": "object",
            "required": [
                "base_url",
                "provider",
                "type"
            ],
            "properties": {
                "api_header": {
                    "type": "string"
                },
                "api_key": {
                    "type": "string"
                },
                "base_url": {
                    "type": "string"
                },
                "provider": {
                    "type": "string"
                },
                "type": {
                    "enum": [
                        "chat",
                        "embedding",
                        "rerank",
                        "analysis",
                        "analysis-vl"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ModelType"
                        }
                    ]
                }
            }
        },
        "domain.GetProviderModelListResp": {
            "type": "object",
            "properties": {
                "models": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ProviderModelListItem"
                    }
                }
            }
        },
        "domain.HotBrowser": {
            "type": "object",
            "properties": {
                "browser": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.BrowserCount"
                    }
                },
                "os": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.BrowserCount"
                    }
                }
            }
        },
        "domain.HotPage": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "node_id": {
                    "type": "string"
                },
                "node_name": {
                    "type": "string"
                },
                "scene": {
                    "$ref": "#/definitions/domain.StatPageScene"
                }
            }
        },
        "domain.HotRefererHost": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "referer_host": {
                    "type": "string"
                }
            }
        },
        "domain.IPAddress": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string"
                },
                "country": {
                    "type": "string"
                },
                "ip": {
                    "type": "string"
                },
                "province": {
                    "type": "string"
                }
            }
        },
        "domain.ImgTextConfig": {
            "type": "object",
            "properties": {
                "item": {
                    "type": "object",
                    "properties": {
                        "desc": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        },
                        "url": {
                            "type": "string"
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.InstantCountResp": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "time": {
                    "type": "string"
                }
            }
        },
        "domain.InstantPageResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "info": {
                    "$ref": "#/definitions/domain.AuthUserInfo"
                },
                "ip": {
                    "type": "string"
                },
                "ip_address": {
                    "$ref": "#/definitions/domain.IPAddress"
                },
                "node_id": {
                    "type": "string"
                },
                "node_name": {
                    "type": "string"
                },
                "scene": {
                    "$ref": "#/definitions/domain.StatPageScene"
                },
                "user_id": {
                    "type": "integer"
                }
            }
        },
        "domain.KBReleaseListItemResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "publisher_account": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                }
            }
        },
        "domain.KnowledgeBaseDetail": {
            "type": "object",
            "properties": {
                "access_settings": {
                    "$ref": "#/definitions/domain.AccessSettings"
                },
                "created_at": {
                    "type": "string"
                },
                "dataset_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "perm": {
                    "description": "用户对知识库的权限",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserKBPermission"
                        }
                    ]
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.KnowledgeBaseListItem": {
            "type": "object",
            "properties": {
                "access_settings": {
                    "$ref": "#/definitions/domain.AccessSettings"
                },
                "created_at": {
                    "type": "string"
                },
                "dataset_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.LarkBotSettings": {
            "type": "object",
            "properties": {
                "app_id": {
                    "type": "string"
                },
                "app_secret": {
                    "type": "string"
                },
                "encrypt_key": {
                    "type": "string"
                },
                "is_enabled": {
                    "type": "boolean"
                },
                "verify_token": {
                    "type": "string"
                }
            }
        },
        "domain.Link": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "domain.MCPServerSettings": {
            "type": "object",
            "properties": {
                "docs_tool_settings": {
                    "$ref": "#/definitions/domain.MCPToolSettings"
                },
                "is_enabled": {
                    "type": "boolean"
                },
                "sample_auth": {
                    "$ref": "#/definitions/domain.SimpleAuth"
                }
            }
        },
        "domain.MCPToolSettings": {
            "type": "object",
            "properties": {
                "desc": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.MessageContent": {
            "type": "object"
        },
        "domain.MessageFrom": {
            "type": "integer",
            "enum": [
                1,
                2
            ],
            "x-enum-varnames": [
                "MessageFromGroup",
                "MessageFromPrivate"
            ]
        },
        "domain.MetricsConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "name": {
                                "type": "string"
                            },
                            "number": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.ModelModeSetting": {
            "type": "object",
            "properties": {
                "auto_mode_api_key": {
                    "description": "百智云 API Key",
                    "type": "string"
                },
                "auto_mode_provider": {
                    "description": "自动模式供应商",
                    "allOf": [
                        {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                        }
                    ]
                },
                "chat_model": {
                    "description": "自定义对话模型名称",
                    "type": "string"
                },
                "is_manual_embedding_updated": {
                    "description": "手动模式下嵌入模型是否更新",
                    "type": "boolean"
                },
                "mode": {
                    "description": "模式: manual 或 auto",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.ModelSettingMode"
                        }
                    ]
                }
            }
        },
        "domain.ModelType": {
            "type": "string",
            "enum": [
                "chat",
                "embedding",
                "rerank",
                "analysis",
                "analysis-vl"
            ],
            "x-enum-varnames": [
                "ModelTypeChat",
                "ModelTypeEmbedding",
                "ModelTypeRerank",
                "ModelTypeAnalysis",
                "ModelTypeAnalysisVL"
            ]
        },
        "domain.MoveNodeReq": {
            "type": "object",
            "required": [
                "id",
                "kb_id"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "next_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "prev_id": {
                    "type": "string"
                }
            }
        },
        "domain.NavDocConfig": {
            "type": "object",
            "properties": {
                "nav_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "title": {
                    "type": "string"
                }
            }
        },
        "domain.NodeActionReq": {
            "type": "object",
            "required": [
                "action",
                "ids",
                "kb_id"
            ],
            "properties": {
                "action": {
                    "type": "string",
                    "enum": [
                        "delete"
                    ]
                },
                "ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                }
            }
        },
        "domain.NodeContentChunkSSE": {
            "type": "object",
            "properties": {
                "emoji": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "node_path_names": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "summary": {
                    "type": "string"
                }
            }
        },
        "domain.NodeListItemResp": {
            "type": "object",
            "properties": {
                "content_type": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "creator": {
                    "type": "string"
                },
                "creator_id": {
                    "type": "string"
                },
                "editor": {
                    "type": "string"
                },
                "editor_id": {
                    "type": "string"
                },
                "emoji": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "position": {
                    "type": "number"
                },
                "publisher_id": {
                    "type": "string"
                },
                "rag_info": {
                    "$ref": "#/definitions/domain.RagInfo"
                },
                "status": {
                    "$ref": "#/definitions/domain.NodeStatus"
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/domain.NodeType"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.NodeMeta": {
            "type": "object",
            "properties": {
                "content_type": {
                    "type": "string"
                },
                "emoji": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                }
            }
        },
        "domain.NodePermissions": {
            "type": "object",
            "properties": {
                "answerable": {
                    "description": "可被问答",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.NodeAccessPerm"
                        }
                    ]
                },
                "visible": {
                    "description": "导航内可见",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.NodeAccessPerm"
                        }
                    ]
                },
                "visitable": {
                    "description": "可被访问",
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.NodeAccessPerm"
                        }
                    ]
                }
            }
        },
        "domain.NodeStatus": {
            "type": "integer",
            "format": "int32",
            "enum": [
                0,
                1,
                2
            ],
            "x-enum-comments": {
                "NodeStatusDraft": "更新未发布",
                "NodeStatusPublished": "已发布",
                "NodeStatusUnreleased": "草稿"
            },
            "x-enum-descriptions": [
                "草稿",
                "更新未发布",
                "已发布"
            ],
            "x-enum-varnames": [
                "NodeStatusUnreleased",
                "NodeStatusDraft",
                "NodeStatusPublished"
            ]
        },
        "domain.NodeSummaryReq": {
            "type": "object",
            "required": [
                "ids",
                "kb_id"
            ],
            "properties": {
                "ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                }
            }
        },
        "domain.NodeType": {
            "type": "integer",
            "format": "int32",
            "enum": [
                1,
                2
            ],
            "x-enum-varnames": [
                "NodeTypeFolder",
                "NodeTypeDocument"
            ]
        },
        "domain.ObjectUploadResp": {
            "type": "object",
            "properties": {
                "filename": {
                    "type": "string"
                },
                "key": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIAPIBotSettings": {
            "type": "object",
            "properties": {
                "is_enabled": {
                    "type": "boolean"
                },
                "secret_key": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIChoice": {
            "type": "object",
            "properties": {
                "delta": {
                    "description": "for streaming",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.OpenAIMessage"
                        }
                    ]
                },
                "finish_reason": {
                    "type": "string"
                },
                "index": {
                    "type": "integer"
                },
                "message": {
                    "$ref": "#/definitions/domain.OpenAIMessage"
                }
            }
        },
        "domain.OpenAICompletionsRequest": {
            "type": "object",
            "required": [
                "messages",
                "model"
            ],
            "properties": {
                "frequency_penalty": {
                    "type": "number"
                },
                "max_tokens": {
                    "type": "integer"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OpenAIMessage"
                    }
                },
                "model": {
                    "type": "string"
                },
                "presence_penalty": {
                    "type": "number"
                },
                "response_format": {
                    "$ref": "#/definitions/domain.OpenAIResponseFormat"
                },
                "stop": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "stream": {
                    "type": "boolean"
                },
                "stream_options": {
                    "$ref": "#/definitions/domain.OpenAIStreamOptions"
                },
                "temperature": {
                    "type": "number"
                },
                "tool_choice": {
                    "$ref": "#/definitions/domain.OpenAIToolChoice"
                },
                "tools": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OpenAITool"
                    }
                },
                "top_p": {
                    "type": "number"
                },
                "user": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAICompletionsResponse": {
            "type": "object",
            "properties": {
                "choices": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OpenAIChoice"
                    }
                },
                "created": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "object": {
                    "type": "string"
                },
                "usage": {
                    "$ref": "#/definitions/domain.OpenAIUsage"
                }
            }
        },
        "domain.OpenAIError": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "string"
                },
                "message": {
                    "type": "string"
                },
                "param": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIErrorResponse": {
            "type": "object",
            "properties": {
                "error": {
                    "$ref": "#/definitions/domain.OpenAIError"
                }
            }
        },
        "domain.OpenAIFunction": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "parameters": {
                    "type": "object",
                    "additionalProperties": true
                }
            }
        },
        "domain.OpenAIFunctionCall": {
            "type": "object",
            "required": [
                "arguments",
                "name"
            ],
            "properties": {
                "arguments": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIFunctionChoice": {
            "type": "object",
            "required": [
                "name"
            ],
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIMessage": {
            "type": "object",
            "required": [
                "role"
            ],
            "properties": {
                "content": {
                    "$ref": "#/definitions/domain.MessageContent"
                },
                "name": {
                    "type": "string"
                },
                "role": {
                    "type": "string"
                },
                "tool_call_id": {
                    "type": "string"
                },
                "tool_calls": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.OpenAIToolCall"
                    }
                }
            }
        },
        "domain.OpenAIResponseFormat": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIStreamOptions": {
            "type": "object",
            "properties": {
                "include_usage": {
                    "type": "boolean"
                }
            }
        },
        "domain.OpenAITool": {
            "type": "object",
            "required": [
                "type"
            ],
            "properties": {
                "function": {
                    "$ref": "#/definitions/domain.OpenAIFunction"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIToolCall": {
            "type": "object",
            "required": [
                "function",
                "id",
                "type"
            ],
            "properties": {
                "function": {
                    "$ref": "#/definitions/domain.OpenAIFunctionCall"
                },
                "id": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIToolChoice": {
            "type": "object",
            "properties": {
                "function": {
                    "$ref": "#/definitions/domain.OpenAIFunctionChoice"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.OpenAIUsage": {
            "type": "object",
            "properties": {
                "completion_tokens": {
                    "type": "integer"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "total_tokens": {
                    "type": "integer"
                }
            }
        },
        "domain.PWResponse": {
            "type": "object",
            "properties": {
                "code": {
                    "type": "integer"
                },
                "data": {},
                "message": {
                    "type": "string"
                },
                "success": {
                    "type": "boolean"
                }
            }
        },
        "domain.PaginatedResult-array_domain_ConversationMessageListItem": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ConversationMessageListItem"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "domain.ProviderModelListItem": {
            "type": "object",
            "properties": {
                "model": {
                    "type": "string"
                }
            }
        },
        "domain.QuestionConfig": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "question": {
                                "type": "string"
                            }
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.RagInfo": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/consts.NodeRagInfoStatus"
                },
                "synced_at": {
                    "type": "string"
                }
            }
        },
        "domain.RecommendNodeListResp": {
            "type": "object",
            "properties": {
                "emoji": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                },
                "nav_name": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "position": {
                    "type": "number"
                },
                "recommend_nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.RecommendNodeListResp"
                    }
                },
                "summary": {
                    "type": "string"
                },
                "type": {
                    "$ref": "#/definitions/domain.NodeType"
                }
            }
        },
        "domain.Response": {
            "type": "object",
            "properties": {
                "data": {},
                "message": {
                    "type": "string"
                },
                "success": {
                    "type": "boolean"
                }
            }
        },
        "domain.ScoreType": {
            "type": "integer",
            "enum": [
                1,
                -1
            ],
            "x-enum-varnames": [
                "Like",
                "DisLike"
            ]
        },
        "domain.ShareCommentListItem": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "info": {
                    "$ref": "#/definitions/domain.CommentInfo"
                },
                "ip_address": {
                    "description": "ip地址",
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.IPAddress"
                        }
                    ]
                },
                "kb_id": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "pic_urls": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "root_id": {
                    "type": "string"
                }
            }
        },
        "domain.ShareConversationDetailResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "messages": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ShareConversationMessage"
                    }
                },
                "subject": {
                    "type": "string"
                }
            }
        },
        "domain.ShareConversationMessage": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "image_paths": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "role": {
                    "$ref": "#/definitions/schema.RoleType"
                }
            }
        },
        "domain.ShareNodeDetailItem": {
            "type": "object",
            "properties": {
                "children": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ShareNodeDetailItem"
                    }
                },
                "emoji": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "meta": {
                    "$ref": "#/definitions/domain.NodeMeta"
                },
                "name": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "position": {
                    "type": "number"
                },
                "type": {
                    "$ref": "#/definitions/domain.NodeType"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "domain.SimpleAuth": {
            "type": "object",
            "properties": {
                "enabled": {
                    "type": "boolean"
                },
                "password": {
                    "type": "string"
                }
            }
        },
        "domain.SimpleDocConfig": {
            "type": "object",
            "properties": {
                "bg_color": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "title_color": {
                    "type": "string"
                }
            }
        },
        "domain.SocialMediaAccount": {
            "type": "object",
            "properties": {
                "channel": {
                    "type": "string"
                },
                "icon": {
                    "type": "string"
                },
                "link": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "domain.StatPageReq": {
            "type": "object",
            "required": [
                "scene"
            ],
            "properties": {
                "node_id": {
                    "type": "string"
                },
                "scene": {
                    "enum": [
                        1,
                        2,
                        3,
                        4
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.StatPageScene"
                        }
                    ]
                }
            }
        },
        "domain.StatPageScene": {
            "type": "integer",
            "enum": [
                1,
                2,
                3,
                4
            ],
            "x-enum-varnames": [
                "StatPageSceneWelcome",
                "StatPageSceneNodeDetail",
                "StatPageSceneChat",
                "StatPageSceneLogin"
            ]
        },
        "domain.StatsSetting": {
            "type": "object",
            "properties": {
                "pv_enable": {
                    "type": "boolean"
                }
            }
        },
        "domain.SwitchModeReq": {
            "type": "object",
            "required": [
                "mode"
            ],
            "properties": {
                "auto_mode_api_key": {
                    "description": "百智云 API Key",
                    "type": "string"
                },
                "auto_mode_provider": {
                    "description": "自动模式供应商",
                    "allOf": [
                        {
                            "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                        }
                    ]
                },
                "chat_model": {
                    "description": "自定义对话模型名称",
                    "type": "string"
                },
                "mode": {
                    "type": "string",
                    "enum": [
                        "manual",
                        "auto"
                    ]
                }
            }
        },
        "domain.SwitchModeResp": {
            "type": "object",
            "properties": {
                "message": {
                    "type": "string"
                }
            }
        },
        "domain.TextConfig": {
            "type": "object",
            "properties": {
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.TextImgConfig": {
            "type": "object",
            "properties": {
                "item": {
                    "type": "object",
                    "properties": {
                        "desc": {
                            "type": "string"
                        },
                        "name": {
                            "type": "string"
                        },
                        "url": {
                            "type": "string"
                        }
                    }
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.TextReq": {
            "type": "object",
            "required": [
                "text"
            ],
            "properties": {
                "action": {
                    "description": "action: improve, summary, extend, shorten, etc.",
                    "type": "string"
                },
                "text": {
                    "type": "string"
                }
            }
        },
        "domain.ThemeAndStyle": {
            "type": "object",
            "properties": {
                "bg_image": {
                    "type": "string"
                },
                "doc_width": {
                    "type": "string"
                }
            }
        },
        "domain.UpdateAppReq": {
            "type": "object",
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "settings": {
                    "$ref": "#/definitions/domain.AppSettings"
                }
            }
        },
        "domain.UpdateKnowledgeBaseReq": {
            "type": "object",
            "required": [
                "id"
            ],
            "properties": {
                "access_settings": {
                    "$ref": "#/definitions/domain.AccessSettings"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.UpdateModelReq": {
            "type": "object",
            "required": [
                "base_url",
                "id",
                "model",
                "provider",
                "type"
            ],
            "properties": {
                "api_header": {
                    "type": "string"
                },
                "api_key": {
                    "type": "string"
                },
                "api_version": {
                    "description": "for azure openai",
                    "type": "string"
                },
                "base_url": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_active": {
                    "type": "boolean"
                },
                "model": {
                    "type": "string"
                },
                "parameters": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam"
                },
                "provider": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                },
                "type": {
                    "enum": [
                        "chat",
                        "embedding",
                        "rerank",
                        "analysis",
                        "analysis-vl"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ModelType"
                        }
                    ]
                }
            }
        },
        "domain.UpdateNodeReq": {
            "type": "object",
            "required": [
                "id",
                "kb_id"
            ],
            "properties": {
                "content": {
                    "type": "string"
                },
                "content_type": {
                    "type": "string"
                },
                "emoji": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                },
                "position": {
                    "type": "number"
                },
                "summary": {
                    "type": "string"
                }
            }
        },
        "domain.UploadByUrlReq": {
            "type": "object",
            "required": [
                "url"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "domain.WeChatAppAdvancedSetting": {
            "type": "object",
            "properties": {
                "disclaimer_content": {
                    "type": "string"
                },
                "feedback_enable": {
                    "type": "boolean"
                },
                "feedback_type": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "prompt": {
                    "type": "string"
                },
                "text_response_enable": {
                    "type": "boolean"
                }
            }
        },
        "domain.WebAppCommentSettings": {
            "type": "object",
            "properties": {
                "is_enable": {
                    "type": "boolean"
                },
                "moderation_enable": {
                    "type": "boolean"
                }
            }
        },
        "domain.WebAppCustomSettings": {
            "type": "object",
            "properties": {
                "allow_theme_switching": {
                    "type": "boolean"
                },
                "footer_show_intro": {
                    "type": "boolean"
                },
                "header_search_placeholder": {
                    "type": "string"
                },
                "show_brand_info": {
                    "type": "boolean"
                },
                "social_media_accounts": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.SocialMediaAccount"
                    }
                }
            }
        },
        "domain.WebAppLandingConfig": {
            "type": "object",
            "properties": {
                "banner_config": {
                    "$ref": "#/definitions/domain.BannerConfig"
                },
                "basic_doc_config": {
                    "$ref": "#/definitions/domain.BasicDocConfig"
                },
                "block_grid_config": {
                    "$ref": "#/definitions/domain.BlockGridConfig"
                },
                "carousel_config": {
                    "$ref": "#/definitions/domain.CarouselConfig"
                },
                "case_config": {
                    "$ref": "#/definitions/domain.CaseConfig"
                },
                "com_config_order": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "comment_config": {
                    "$ref": "#/definitions/domain.CommentConfig"
                },
                "dir_doc_config": {
                    "$ref": "#/definitions/domain.DirDocConfig"
                },
                "faq_config": {
                    "$ref": "#/definitions/domain.FaqConfig"
                },
                "feature_config": {
                    "$ref": "#/definitions/domain.FeatureConfig"
                },
                "img_text_config": {
                    "$ref": "#/definitions/domain.ImgTextConfig"
                },
                "metrics_config": {
                    "$ref": "#/definitions/domain.MetricsConfig"
                },
                "nav_doc_config": {
                    "$ref": "#/definitions/domain.NavDocConfig"
                },
                "node_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "question_config": {
                    "$ref": "#/definitions/domain.QuestionConfig"
                },
                "simple_doc_config": {
                    "$ref": "#/definitions/domain.SimpleDocConfig"
                },
                "text_config": {
                    "$ref": "#/definitions/domain.TextConfig"
                },
                "text_img_config": {
                    "$ref": "#/definitions/domain.TextImgConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.WebAppLandingConfigResp": {
            "type": "object",
            "properties": {
                "banner_config": {
                    "$ref": "#/definitions/domain.BannerConfig"
                },
                "basic_doc_config": {
                    "$ref": "#/definitions/domain.BasicDocConfig"
                },
                "block_grid_config": {
                    "$ref": "#/definitions/domain.BlockGridConfig"
                },
                "carousel_config": {
                    "$ref": "#/definitions/domain.CarouselConfig"
                },
                "case_config": {
                    "$ref": "#/definitions/domain.CaseConfig"
                },
                "com_config_order": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "comment_config": {
                    "$ref": "#/definitions/domain.CommentConfig"
                },
                "dir_doc_config": {
                    "$ref": "#/definitions/domain.DirDocConfig"
                },
                "faq_config": {
                    "$ref": "#/definitions/domain.FaqConfig"
                },
                "feature_config": {
                    "$ref": "#/definitions/domain.FeatureConfig"
                },
                "img_text_config": {
                    "$ref": "#/definitions/domain.ImgTextConfig"
                },
                "metrics_config": {
                    "$ref": "#/definitions/domain.MetricsConfig"
                },
                "nav_doc_config": {
                    "$ref": "#/definitions/domain.NavDocConfig"
                },
                "node_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "nodes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.RecommendNodeListResp"
                    }
                },
                "question_config": {
                    "$ref": "#/definitions/domain.QuestionConfig"
                },
                "simple_doc_config": {
                    "$ref": "#/definitions/domain.SimpleDocConfig"
                },
                "text_config": {
                    "$ref": "#/definitions/domain.TextConfig"
                },
                "text_img_config": {
                    "$ref": "#/definitions/domain.TextImgConfig"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "domain.WebAppLandingTheme": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                }
            }
        },
        "domain.WecomAIBotSettings": {
            "type": "object",
            "properties": {
                "encodingaeskey": {
                    "type": "string"
                },
                "is_enabled": {
                    "type": "boolean"
                },
                "token": {
                    "type": "string"
                }
            }
        },
        "domain.WidgetBotSettings": {
            "type": "object",
            "properties": {
                "btn_id": {
                    "type": "string"
                },
                "btn_logo": {
                    "type": "string"
                },
                "btn_position": {
                    "type": "string"
                },
                "btn_style": {
                    "type": "string"
                },
                "btn_text": {
                    "type": "string"
                },
                "copyright_hide_enabled": {
                    "type": "boolean"
                },
                "copyright_info": {
                    "type": "string"
                },
                "disclaimer": {
                    "type": "string"
                },
                "is_open": {
                    "type": "boolean"
                },
                "modal_position": {
                    "type": "string"
                },
                "placeholder": {
                    "type": "string"
                },
                "recommend_node_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "recommend_questions": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "search_mode": {
                    "type": "string"
                },
                "theme_mode": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_auth_v1.AuthGetResp": {
            "type": "object",
            "properties": {
                "auths": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthItem"
                    }
                },
                "client_id": {
                    "type": "string"
                },
                "client_secret": {
                    "type": "string"
                },
                "proxy": {
                    "type": "string"
                },
                "source_type": {
                    "$ref": "#/definitions/consts.SourceType"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_auth_v1.AuthItem": {
            "type": "object",
            "properties": {
                "avatar_url": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "ip": {
                    "type": "string"
                },
                "last_login_time": {
                    "type": "string"
                },
                "source_type": {
                    "$ref": "#/definitions/consts.SourceType"
                },
                "username": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_auth_v1.AuthSetReq": {
            "type": "object",
            "required": [
                "source_type"
            ],
            "properties": {
                "client_id": {
                    "type": "string"
                },
                "client_secret": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "proxy": {
                    "type": "string"
                },
                "source_type": {
                    "enum": [
                        "github"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.SourceType"
                        }
                    ]
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_node_v1.NodeListGroupNavResp": {
            "type": "object",
            "properties": {
                "count": {
                    "type": "integer"
                },
                "is_released": {
                    "type": "boolean"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.NodeListItemResp"
                    }
                },
                "nav_id": {
                    "type": "string"
                },
                "nav_name": {
                    "type": "string"
                },
                "position": {
                    "type": "number"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_share_v1.AuthGetResp": {
            "type": "object",
            "properties": {
                "auth_type": {
                    "$ref": "#/definitions/consts.AuthType"
                },
                "license_edition": {
                    "$ref": "#/definitions/consts.LicenseEdition"
                },
                "source_type": {
                    "$ref": "#/definitions/consts.SourceType"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubReq": {
            "type": "object",
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "redirect_url": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubResp": {
            "type": "object",
            "properties": {
                "url": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_share_v1.FileUploadResp": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_api_share_v1.GitHubCallbackResp": {
            "type": "object"
        },
        "github_com_chaitin_panda-wiki_domain.CheckModelReq": {
            "type": "object",
            "required": [
                "base_url",
                "model",
                "provider",
                "type"
            ],
            "properties": {
                "api_header": {
                    "type": "string"
                },
                "api_key": {
                    "type": "string"
                },
                "api_version": {
                    "description": "for azure openai",
                    "type": "string"
                },
                "base_url": {
                    "type": "string"
                },
                "model": {
                    "type": "string"
                },
                "parameters": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam"
                },
                "provider": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                },
                "type": {
                    "enum": [
                        "chat",
                        "embedding",
                        "rerank",
                        "analysis",
                        "analysis-vl"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/domain.ModelType"
                        }
                    ]
                }
            }
        },
        "github_com_chaitin_panda-wiki_domain.CheckModelResp": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "error": {
                    "type": "string"
                }
            }
        },
        "github_com_chaitin_panda-wiki_domain.CommentStatus": {
            "type": "integer",
            "format": "int32",
            "enum": [
                -1,
                0,
                1
            ],
            "x-enum-varnames": [
                "CommentStatusReject",
                "CommentStatusPending",
                "CommentStatusAccepted"
            ]
        },
        "github_com_chaitin_panda-wiki_domain.ModelListItem": {
            "type": "object",
            "properties": {
                "api_header": {
                    "type": "string"
                },
                "api_key": {
                    "type": "string"
                },
                "api_version": {
                    "description": "for azure openai",
                    "type": "string"
                },
                "base_url": {
                    "type": "string"
                },
                "completion_tokens": {
                    "type": "integer"
                },
                "id": {
                    "type": "string"
                },
                "is_active": {
                    "type": "boolean"
                },
                "model": {
                    "type": "string"
                },
                "parameters": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam"
                },
                "prompt_tokens": {
                    "type": "integer"
                },
                "provider": {
                    "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider"
                },
                "total_tokens": {
                    "type": "integer"
                },
                "type": {
                    "$ref": "#/definitions/domain.ModelType"
                }
            }
        },
        "github_com_chaitin_panda-wiki_domain.ModelParam": {
            "type": "object",
            "properties": {
                "context_window": {
                    "type": "integer"
                },
                "max_tokens": {
                    "type": "integer"
                },
                "r1_enabled": {
                    "type": "boolean"
                },
                "support_computer_use": {
                    "type": "boolean"
                },
                "support_images": {
                    "type": "boolean"
                },
                "support_prompt_cache": {
                    "type": "boolean"
                },
                "temperature": {
                    "type": "number"
                }
            }
        },
        "github_com_chaitin_panda-wiki_domain.ModelProvider": {
            "type": "string",
            "enum": [
                "BaiZhiCloud",
                "BaiZhiCloudModelStore"
            ],
            "x-enum-varnames": [
                "ModelProviderBrandBaiZhiCloud",
                "ModelProviderBaiZhiCloudModelStore"
            ]
        },
        "github_com_chaitin_panda-wiki_domain.NodeGroupDetail": {
            "type": "object",
            "properties": {
                "auth_group_id": {
                    "type": "integer"
                },
                "auth_ids": {
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "node_id": {
                    "type": "string"
                },
                "perm": {
                    "$ref": "#/definitions/consts.NodePermName"
                }
            }
        },
        "github_com_chaitin_panda-wiki_domain.UserInfo": {
            "type": "object",
            "properties": {
                "auth_user_id": {
                    "type": "integer"
                },
                "avatar": {
                    "description": "avatar",
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "from": {
                    "$ref": "#/definitions/domain.MessageFrom"
                },
                "name": {
                    "type": "string"
                },
                "real_name": {
                    "type": "string"
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "gocap.ChallengeData": {
            "type": "object",
            "properties": {
                "challenge": {
                    "$ref": "#/definitions/gocap.ChallengeItem"
                },
                "expires": {
                    "description": "过期时间,毫秒级时间戳",
                    "type": "integer"
                },
                "token": {
                    "description": "质询令牌",
                    "type": "string"
                }
            }
        },
        "gocap.ChallengeItem": {
            "type": "object",
            "properties": {
                "c": {
                    "description": "质询数量",
                    "type": "integer"
                },
                "d": {
                    "description": "质询难度",
                    "type": "integer"
                },
                "s": {
                    "description": "质询大小",
                    "type": "integer"
                }
            }
        },
        "gocap.VerificationResult": {
            "type": "object",
            "properties": {
                "expires": {
                    "description": "过期时间,毫秒级时间戳",
                    "type": "integer"
                },
                "message": {
                    "type": "string"
                },
                "success": {
                    "type": "boolean"
                },
                "token": {
                    "description": "验证令牌",
                    "type": "string"
                }
            }
        },
        "schema.RoleType": {
            "type": "string",
            "enum": [
                "assistant",
                "user",
                "system",
                "tool"
            ],
            "x-enum-varnames": [
                "Assistant",
                "User",
                "System",
                "Tool"
            ]
        },
        "share.ShareCommentLists": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ShareCommentListItem"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "v1.AuthLoginSimpleReq": {
            "type": "object",
            "required": [
                "password"
            ],
            "properties": {
                "password": {
                    "type": "string"
                }
            }
        },
        "v1.CommentLists": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.CommentListItem"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "v1.ConversationListItems": {
            "type": "object",
            "properties": {
                "data": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ConversationListItem"
                    }
                },
                "total": {
                    "type": "integer"
                }
            }
        },
        "v1.CrawlerExportReq": {
            "type": "object",
            "required": [
                "doc_id",
                "id",
                "kb_id"
            ],
            "properties": {
                "doc_id": {
                    "type": "string"
                },
                "file_type": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "space_id": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerExportResp": {
            "type": "object",
            "properties": {
                "task_id": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerParseReq": {
            "type": "object",
            "required": [
                "crawler_source",
                "kb_id"
            ],
            "properties": {
                "crawler_source": {
                    "$ref": "#/definitions/consts.CrawlerSource"
                },
                "dingtalk_setting": {
                    "$ref": "#/definitions/anydoc.DingtalkSetting"
                },
                "feishu_setting": {
                    "$ref": "#/definitions/anydoc.FeishuSetting"
                },
                "filename": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "key": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerParseResp": {
            "type": "object",
            "properties": {
                "docs": {
                    "$ref": "#/definitions/anydoc.Child"
                },
                "id": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerResultItem": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/consts.CrawlerStatus"
                },
                "task_id": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerResultReq": {
            "type": "object",
            "required": [
                "task_id"
            ],
            "properties": {
                "task_id": {
                    "type": "string"
                }
            }
        },
        "v1.CrawlerResultResp": {
            "type": "object",
            "required": [
                "status"
            ],
            "properties": {
                "content": {
                    "type": "string"
                },
                "status": {
                    "$ref": "#/definitions/consts.CrawlerStatus"
                }
            }
        },
        "v1.CrawlerResultsReq": {
            "type": "object",
            "required": [
                "task_ids"
            ],
            "properties": {
                "task_ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.CrawlerResultsResp": {
            "type": "object",
            "properties": {
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v1.CrawlerResultItem"
                    }
                },
                "status": {
                    "$ref": "#/definitions/consts.CrawlerStatus"
                }
            }
        },
        "v1.CreateUserReq": {
            "type": "object",
            "required": [
                "account",
                "password",
                "role"
            ],
            "properties": {
                "account": {
                    "type": "string"
                },
                "password": {
                    "type": "string",
                    "minLength": 8
                },
                "role": {
                    "enum": [
                        "admin",
                        "user"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserRole"
                        }
                    ]
                }
            }
        },
        "v1.CreateUserResp": {
            "type": "object",
            "properties": {
                "id": {
                    "type": "string"
                }
            }
        },
        "v1.KBUserInviteReq": {
            "type": "object",
            "required": [
                "kb_id",
                "perm",
                "user_id"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "perm": {
                    "enum": [
                        "full_control",
                        "doc_manage",
                        "data_operate"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserKBPermission"
                        }
                    ]
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "v1.KBUserListItemResp": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "perms": {
                    "$ref": "#/definitions/consts.UserKBPermission"
                },
                "role": {
                    "$ref": "#/definitions/consts.UserRole"
                }
            }
        },
        "v1.KBUserUpdateReq": {
            "type": "object",
            "required": [
                "kb_id",
                "perm",
                "user_id"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "perm": {
                    "enum": [
                        "full_control",
                        "doc_manage",
                        "data_operate"
                    ],
                    "allOf": [
                        {
                            "$ref": "#/definitions/consts.UserKBPermission"
                        }
                    ]
                },
                "user_id": {
                    "type": "string"
                }
            }
        },
        "v1.LoginReq": {
            "type": "object",
            "required": [
                "account",
                "password"
            ],
            "properties": {
                "account": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                }
            }
        },
        "v1.LoginResp": {
            "type": "object",
            "properties": {
                "token": {
                    "type": "string"
                }
            }
        },
        "v1.NavAddReq": {
            "type": "object",
            "required": [
                "kb_id",
                "name"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "position": {
                    "type": "number"
                }
            }
        },
        "v1.NavListResp": {
            "type": "object",
            "properties": {
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "position": {
                    "type": "number"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "v1.NavMoveReq": {
            "type": "object",
            "required": [
                "id",
                "kb_id"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "next_id": {
                    "type": "string"
                },
                "prev_id": {
                    "type": "string"
                }
            }
        },
        "v1.NavUpdateReq": {
            "type": "object",
            "required": [
                "id",
                "kb_id",
                "name"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                }
            }
        },
        "v1.NodeDetailResp": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "creator_account": {
                    "type": "string"
                },
                "creator_id": {
                    "type": "string"
                },
                "editor_account": {
                    "type": "string"
                },
                "editor_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "meta": {
                    "$ref": "#/definitions/domain.NodeMeta"
                },
                "name": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "publisher_account": {
                    "type": "string"
                },
                "publisher_id": {
                    "type": "string"
                },
                "pv": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/domain.NodeStatus"
                },
                "type": {
                    "$ref": "#/definitions/domain.NodeType"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "v1.NodeMoveNavReq": {
            "type": "object",
            "required": [
                "ids",
                "kb_id",
                "nav_id"
            ],
            "properties": {
                "ids": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                },
                "nav_id": {
                    "type": "string"
                }
            }
        },
        "v1.NodePermissionEditReq": {
            "type": "object",
            "required": [
                "ids",
                "kb_id"
            ],
            "properties": {
                "answerable_groups": {
                    "description": "可被问答",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "ids": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "kb_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "visible_groups": {
                    "description": "导航内可见",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                },
                "visitable_groups": {
                    "description": "可被访问",
                    "type": "array",
                    "items": {
                        "type": "integer"
                    }
                }
            }
        },
        "v1.NodePermissionEditResp": {
            "type": "object"
        },
        "v1.NodePermissionResp": {
            "type": "object",
            "properties": {
                "answerable_groups": {
                    "description": "可被问答",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail"
                    }
                },
                "id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "visible_groups": {
                    "description": "导航内可见",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail"
                    }
                },
                "visitable_groups": {
                    "description": "可被访问",
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail"
                    }
                }
            }
        },
        "v1.NodeRestudyReq": {
            "type": "object",
            "required": [
                "kb_id",
                "node_ids"
            ],
            "properties": {
                "kb_id": {
                    "type": "string"
                },
                "node_ids": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "v1.NodeRestudyResp": {
            "type": "object"
        },
        "v1.NodeStatsResp": {
            "type": "object",
            "properties": {
                "unpublished_count": {
                    "description": "未发布的文档数",
                    "type": "integer"
                },
                "unreleased_nav_count": {
                    "description": "未发布目录数量",
                    "type": "integer"
                },
                "unstudied_count": {
                    "description": "未学习的文档数",
                    "type": "integer"
                }
            }
        },
        "v1.ResetPasswordReq": {
            "type": "object",
            "required": [
                "id",
                "new_password"
            ],
            "properties": {
                "id": {
                    "type": "string"
                },
                "new_password": {
                    "type": "string",
                    "minLength": 8
                }
            }
        },
        "v1.ShareFileUploadUrlReq": {
            "type": "object",
            "required": [
                "captcha_token",
                "url"
            ],
            "properties": {
                "captcha_token": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "v1.ShareFileUploadUrlResp": {
            "type": "object",
            "properties": {
                "key": {
                    "type": "string"
                }
            }
        },
        "v1.ShareNodeDetailResp": {
            "type": "object",
            "properties": {
                "content": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "creator_account": {
                    "type": "string"
                },
                "creator_id": {
                    "type": "string"
                },
                "editor_account": {
                    "type": "string"
                },
                "editor_id": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "kb_id": {
                    "type": "string"
                },
                "list": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/domain.ShareNodeDetailItem"
                    }
                },
                "meta": {
                    "$ref": "#/definitions/domain.NodeMeta"
                },
                "name": {
                    "type": "string"
                },
                "parent_id": {
                    "type": "string"
                },
                "permissions": {
                    "$ref": "#/definitions/domain.NodePermissions"
                },
                "publisher_account": {
                    "type": "string"
                },
                "publisher_id": {
                    "type": "string"
                },
                "pv": {
                    "type": "integer"
                },
                "status": {
                    "$ref": "#/definitions/domain.NodeStatus"
                },
                "type": {
                    "$ref": "#/definitions/domain.NodeType"
                },
                "updated_at": {
                    "type": "string"
                }
            }
        },
        "v1.StatConversationDistributionResp": {
            "type": "object",
            "properties": {
                "app_type": {
                    "$ref": "#/definitions/domain.AppType"
                },
                "count": {
                    "type": "integer"
                }
            }
        },
        "v1.StatCountResp": {
            "type": "object",
            "properties": {
                "conversation_count": {
                    "type": "integer"
                },
                "ip_count": {
                    "type": "integer"
                },
                "page_visit_count": {
                    "type": "integer"
                },
                "session_count": {
                    "type": "integer"
                }
            }
        },
        "v1.UserInfoResp": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "is_token": {
                    "type": "boolean"
                },
                "last_access": {
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/consts.UserRole"
                }
            }
        },
        "v1.UserListItemResp": {
            "type": "object",
            "properties": {
                "account": {
                    "type": "string"
                },
                "created_at": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "last_access": {
                    "type": "string"
                },
                "role": {
                    "$ref": "#/definitions/consts.UserRole"
                }
            }
        },
        "v1.UserListResp": {
            "type": "object",
            "properties": {
                "users": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/v1.UserListItemResp"
                    }
                }
            }
        },
        "v1.WechatAppInfoResp": {
            "type": "object",
            "properties": {
                "disclaimer_content": {
                    "type": "string"
                },
                "feedback_enable": {
                    "type": "boolean"
                },
                "feedback_type": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "wechat_app_is_enabled": {
                    "type": "boolean"
                }
            }
        }
    },
    "securityDefinitions": {
        "bearerAuth": {
            "description": "Type \"Bearer\" + a space + your token to authorize",
            "type": "apiKey",
            "name": "Authorization",
            "in": "header"
        }
    }
}

---

### Backend Docs Swagger.Yaml (`backend/docs/swagger.yaml`)

basePath: /
definitions:
  anydoc.Child:
    properties:
      children:
        items:
          $ref: '#/definitions/anydoc.Child'
        type: array
      value:
        $ref: '#/definitions/anydoc.Value'
    type: object
  anydoc.DingtalkSetting:
    properties:
      app_id:
        type: string
      app_secret:
        type: string
      phone:
        type: string
      space_id:
        type: string
      unionid:
        type: string
    type: object
  anydoc.FeishuSetting:
    properties:
      app_id:
        type: string
      app_secret:
        type: string
      space_id:
        type: string
      user_access_token:
        type: string
    type: object
  anydoc.Value:
    properties:
      file:
        type: boolean
      file_type:
        type: string
      id:
        type: string
      summary:
        type: string
      title:
        type: string
    type: object
  consts.AuthType:
    enum:
    - ""
    - simple
    - enterprise
    type: string
    x-enum-comments:
      AuthTypeEnterprise: 企业认证
      AuthTypeNull: 无认证
      AuthTypeSimple: 简单口令
    x-enum-descriptions:
    - 无认证
    - 简单口令
    - 企业认证
    x-enum-varnames:
    - AuthTypeNull
    - AuthTypeSimple
    - AuthTypeEnterprise
  consts.CopySetting:
    enum:
    - ""
    - append
    - disabled
    type: string
    x-enum-comments:
      CopySettingAppend: 增加内容尾巴
      CopySettingDisabled: 禁止复制内容
      CopySettingNone: 无限制
    x-enum-descriptions:
    - 无限制
    - 增加内容尾巴
    - 禁止复制内容
    x-enum-varnames:
    - CopySettingNone
    - CopySettingAppend
    - CopySettingDisabled
  consts.CrawlerSource:
    enum:
    - url
    - rss
    - sitemap
    - notion
    - feishu
    - dingtalk
    - file
    - epub
    - yuque
    - siyuan
    - mindoc
    - wikijs
    - confluence
    type: string
    x-enum-varnames:
    - CrawlerSourceUrl
    - CrawlerSourceRSS
    - CrawlerSourceSitemap
    - CrawlerSourceNotion
    - CrawlerSourceFeishu
    - CrawlerSourceDingtalk
    - CrawlerSourceFile
    - CrawlerSourceEpub
    - CrawlerSourceYuque
    - CrawlerSourceSiyuan
    - CrawlerSourceMindoc
    - CrawlerSourceWikijs
    - CrawlerSourceConfluence
  consts.CrawlerStatus:
    enum:
    - pending
    - in_process
    - completed
    - failed
    type: string
    x-enum-varnames:
    - CrawlerStatusPending
    - CrawlerStatusInProcess
    - CrawlerStatusCompleted
    - CrawlerStatusFailed
  consts.HomePageSetting:
    enum:
    - doc
    - custom
    type: string
    x-enum-comments:
      HomePageSettingCustom: 自定义首页
      HomePageSettingDoc: 文档页面
    x-enum-descriptions:
    - 文档页面
    - 自定义首页
    x-enum-varnames:
    - HomePageSettingDoc
    - HomePageSettingCustom
  consts.LicenseEdition:
    enum:
    - 0
    - 1
    - 2
    - 3
    format: int32
    type: integer
    x-enum-comments:
      LicenseEditionBusiness: 商业版
      LicenseEditionEnterprise: 企业版
      LicenseEditionFree: 开源版
      LicenseEditionProfession: 专业版
    x-enum-descriptions:
    - 开源版
    - 专业版
    - 企业版
    - 商业版
    x-enum-varnames:
    - LicenseEditionFree
    - LicenseEditionProfession
    - LicenseEditionEnterprise
    - LicenseEditionBusiness
  consts.ModelSettingMode:
    enum:
    - manual
    - auto
    type: string
    x-enum-varnames:
    - ModelSettingModeManual
    - ModelSettingModeAuto
  consts.NodeAccessPerm:
    enum:
    - open
    - partial
    - closed
    type: string
    x-enum-comments:
      NodeAccessPermClosed: 完全禁止
      NodeAccessPermOpen: 完全开放
      NodeAccessPermPartial: 部分开放
    x-enum-descriptions:
    - 完全开放
    - 部分开放
    - 完全禁止
    x-enum-varnames:
    - NodeAccessPermOpen
    - NodeAccessPermPartial
    - NodeAccessPermClosed
  consts.NodePermName:
    enum:
    - visible
    - visitable
    - answerable
    type: string
    x-enum-comments:
      NodePermNameAnswerable: 可被问答
      NodePermNameVisible: 导航内可见
      NodePermNameVisitable: 可被访问
    x-enum-descriptions:
    - 导航内可见
    - 可被访问
    - 可被问答
    x-enum-varnames:
    - NodePermNameVisible
    - NodePermNameVisitable
    - NodePermNameAnswerable
  consts.NodeRagInfoStatus:
    enum:
    - PENDING
    - RUNNING
    - FAILED
    - SUCCEEDED
    - REINDEX
    type: string
    x-enum-comments:
      NodeRagStatusFailed: 处理失败
      NodeRagStatusPending: 等待处理
      NodeRagStatusReindexing: 重新索引中
      NodeRagStatusRunning: 正在进行处理（文本分割、向量化等）
      NodeRagStatusSucceeded: 处理成功
    x-enum-descriptions:
    - 等待处理
    - 正在进行处理（文本分割、向量化等）
    - 处理失败
    - 处理成功
    - 重新索引中
    x-enum-varnames:
    - NodeRagStatusPending
    - NodeRagStatusRunning
    - NodeRagStatusFailed
    - NodeRagStatusSucceeded
    - NodeRagStatusReindexing
  consts.RedeemCaptchaReq:
    properties:
      solutions:
        items:
          type: integer
        type: array
      token:
        type: string
    type: object
  consts.SourceType:
    enum:
    - dingtalk
    - feishu
    - wecom
    - oauth
    - github
    - cas
    - ldap
    - widget
    - dingtalk_bot
    - feishu_bot
    - lark_bot
    - wechat_bot
    - wecom_ai_bot
    - wechat_service_bot
    - discord_bot
    - wechat_official_account
    - openai_api
    - mcp_server
    type: string
    x-enum-varnames:
    - SourceTypeDingTalk
    - SourceTypeFeishu
    - SourceTypeWeCom
    - SourceTypeOAuth
    - SourceTypeGitHub
    - SourceTypeCAS
    - SourceTypeLDAP
    - SourceTypeWidget
    - SourceTypeDingtalkBot
    - SourceTypeFeishuBot
    - SourceTypeLarkBot
    - SourceTypeWechatBot
    - SourceTypeWecomAIBot
    - SourceTypeWechatServiceBot
    - SourceTypeDiscordBot
    - SourceTypeWechatOfficialAccount
    - SourceTypeOpenAIAPI
    - SourceTypeMcpServer
  consts.StatDay:
    enum:
    - 1
    - 7
    - 30
    - 90
    type: integer
    x-enum-varnames:
    - StatDay1
    - StatDay7
    - StatDay30
    - StatDay90
  consts.UserKBPermission:
    enum:
    - ""
    - not null
    - full_control
    - doc_manage
    - data_operate
    type: string
    x-enum-comments:
      UserKBPermissionDataOperate: 数据运营
      UserKBPermissionDocManage: 文档管理
      UserKBPermissionFullControl: 完全控制
      UserKBPermissionNotNull: 有权限
      UserKBPermissionNull: 无权限
    x-enum-descriptions:
    - 无权限
    - 有权限
    - 完全控制
    - 文档管理
    - 数据运营
    x-enum-varnames:
    - UserKBPermissionNull
    - UserKBPermissionNotNull
    - UserKBPermissionFullControl
    - UserKBPermissionDocManage
    - UserKBPermissionDataOperate
  consts.UserRole:
    enum:
    - admin
    - user
    type: string
    x-enum-comments:
      UserRoleAdmin: 管理员
      UserRoleUser: 普通用户
    x-enum-descriptions:
    - 管理员
    - 普通用户
    x-enum-varnames:
    - UserRoleAdmin
    - UserRoleUser
  consts.WatermarkSetting:
    enum:
    - ""
    - hidden
    - visible
    type: string
    x-enum-comments:
      WatermarkDisabled: 未开启水印
      WatermarkHidden: 隐形水印
      WatermarkVisible: 显性水印
    x-enum-descriptions:
    - 未开启水印
    - 隐形水印
    - 显性水印
    x-enum-varnames:
    - WatermarkDisabled
    - WatermarkHidden
    - WatermarkVisible
  domain.AIFeedbackSettings:
    properties:
      ai_feedback_type:
        items:
          type: string
        type: array
      is_enabled:
        type: boolean
    type: object
  domain.AccessSettings:
    properties:
      base_url:
        type: string
      enterprise_auth:
        $ref: '#/definitions/domain.EnterpriseAuth'
      hosts:
        items:
          type: string
        type: array
      is_forbidden:
        description: 禁止访问
        type: boolean
      ports:
        items:
          type: integer
        type: array
      private_key:
        type: string
      public_key:
        type: string
      simple_auth:
        $ref: '#/definitions/domain.SimpleAuth'
      source_type:
        allOf:
        - $ref: '#/definitions/consts.SourceType'
        description: 企业认证来源
      ssl_ports:
        items:
          type: integer
        type: array
      trusted_proxies:
        items:
          type: string
        type: array
    type: object
  domain.AnydocUploadResp:
    properties:
      code:
        type: integer
      data:
        type: string
      err:
        type: string
    type: object
  domain.AppDetailResp:
    properties:
      id:
        type: string
      kb_id:
        type: string
      name:
        type: string
      recommend_nodes:
        items:
          $ref: '#/definitions/domain.RecommendNodeListResp'
        type: array
      settings:
        $ref: '#/definitions/domain.AppSettingsResp'
      type:
        $ref: '#/definitions/domain.AppType'
    type: object
  domain.AppInfoResp:
    properties:
      base_url:
        type: string
      name:
        type: string
      recommend_nodes:
        items:
          $ref: '#/definitions/domain.RecommendNodeListResp'
        type: array
      settings:
        $ref: '#/definitions/domain.AppSettingsResp'
    type: object
  domain.AppSettings:
    properties:
      ai_feedback_settings:
        allOf:
        - $ref: '#/definitions/domain.AIFeedbackSettings'
        description: AI feedback
      body_code:
        type: string
      btns:
        items: {}
        type: array
      catalog_settings:
        allOf:
        - $ref: '#/definitions/domain.CatalogSettings'
        description: catalog settings
      contribute_settings:
        $ref: '#/definitions/domain.ContributeSettings'
      conversation_setting:
        $ref: '#/definitions/domain.ConversationSetting'
      copy_setting:
        allOf:
        - $ref: '#/definitions/consts.CopySetting'
        enum:
        - ""
        - append
        - disabled
      desc:
        description: seo
        type: string
      dingtalk_bot_client_id:
        type: string
      dingtalk_bot_client_secret:
        type: string
      dingtalk_bot_is_enabled:
        description: DingTalkBot
        type: boolean
      dingtalk_bot_template_id:
        type: string
      disclaimer_settings:
        allOf:
        - $ref: '#/definitions/domain.DisclaimerSettings'
        description: Disclaimer Settings
      discord_bot_is_enabled:
        description: DisCordBot
        type: boolean
      discord_bot_token:
        type: string
      document_feedback_is_enabled:
        description: document feedback
        type: boolean
      feishu_bot_app_id:
        type: string
      feishu_bot_app_secret:
        type: string
      feishu_bot_is_enabled:
        description: FeishuBot
        type: boolean
      footer_settings:
        allOf:
        - $ref: '#/definitions/domain.FooterSettings'
        description: footer settings
      head_code:
        description: inject code
        type: string
      home_page_setting:
        $ref: '#/definitions/consts.HomePageSetting'
      icon:
        type: string
      keyword:
        type: string
      lark_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.LarkBotSettings'
        description: LarkBot
      mcp_server_settings:
        allOf:
        - $ref: '#/definitions/domain.MCPServerSettings'
        description: MCP Server Settings
      openai_api_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.OpenAIAPIBotSettings'
        description: OpenAI API Bot settings
      recommend_node_ids:
        items:
          type: string
        type: array
      recommend_questions:
        items:
          type: string
        type: array
      search_placeholder:
        type: string
      stats_setting:
        $ref: '#/definitions/domain.StatsSetting'
      theme_and_style:
        $ref: '#/definitions/domain.ThemeAndStyle'
      theme_mode:
        description: theme
        type: string
      title:
        description: nav
        type: string
      watermark_content:
        type: string
      watermark_setting:
        allOf:
        - $ref: '#/definitions/consts.WatermarkSetting'
        enum:
        - ""
        - hidden
        - visible
      web_app_comment_settings:
        allOf:
        - $ref: '#/definitions/domain.WebAppCommentSettings'
        description: webapp comment settings
      web_app_custom_style:
        allOf:
        - $ref: '#/definitions/domain.WebAppCustomSettings'
        description: WebAppCustomStyle
      web_app_landing_configs:
        description: WebAppLandingConfigs
        items:
          $ref: '#/definitions/domain.WebAppLandingConfig'
        type: array
      web_app_landing_theme:
        $ref: '#/definitions/domain.WebAppLandingTheme'
      wechat_app_advanced_setting:
        $ref: '#/definitions/domain.WeChatAppAdvancedSetting'
      wechat_app_agent_id:
        type: string
      wechat_app_corpid:
        type: string
      wechat_app_encodingaeskey:
        type: string
      wechat_app_is_enabled:
        description: WechatAppBot 企业微信机器人
        type: boolean
      wechat_app_secret:
        type: string
      wechat_app_token:
        type: string
      wechat_official_account_app_id:
        type: string
      wechat_official_account_app_secret:
        type: string
      wechat_official_account_encodingaeskey:
        type: string
      wechat_official_account_is_enabled:
        description: WechatOfficialAccount
        type: boolean
      wechat_official_account_token:
        type: string
      wechat_service_contain_keywords:
        items:
          type: string
        type: array
      wechat_service_corpid:
        type: string
      wechat_service_encodingaeskey:
        type: string
      wechat_service_equal_keywords:
        items:
          type: string
        type: array
      wechat_service_is_enabled:
        description: WechatServiceBot
        type: boolean
      wechat_service_logo:
        type: string
      wechat_service_secret:
        type: string
      wechat_service_token:
        type: string
      wecom_ai_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.WecomAIBotSettings'
        description: WecomAIBotSettings 企业微信智能机器人
      welcome_str:
        description: welcome
        type: string
      widget_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.WidgetBotSettings'
        description: Widget bot settings
    type: object
  domain.AppSettingsResp:
    properties:
      ai_feedback_settings:
        allOf:
        - $ref: '#/definitions/domain.AIFeedbackSettings'
        description: AI feedback
      body_code:
        type: string
      btns:
        items: {}
        type: array
      catalog_settings:
        allOf:
        - $ref: '#/definitions/domain.CatalogSettings'
        description: catalog settings
      contribute_settings:
        $ref: '#/definitions/domain.ContributeSettings'
      conversation_setting:
        $ref: '#/definitions/domain.ConversationSetting'
      copy_setting:
        $ref: '#/definitions/consts.CopySetting'
      desc:
        description: seo
        type: string
      dingtalk_bot_client_id:
        type: string
      dingtalk_bot_client_secret:
        type: string
      dingtalk_bot_is_enabled:
        description: DingTalkBot
        type: boolean
      dingtalk_bot_template_id:
        type: string
      disclaimer_settings:
        allOf:
        - $ref: '#/definitions/domain.DisclaimerSettings'
        description: Disclaimer Settings
      discord_bot_is_enabled:
        description: DisCordBot
        type: boolean
      discord_bot_token:
        type: string
      document_feedback_is_enabled:
        description: document feedback
        type: boolean
      feishu_bot_app_id:
        type: string
      feishu_bot_app_secret:
        type: string
      feishu_bot_is_enabled:
        description: FeishuBot
        type: boolean
      footer_settings:
        allOf:
        - $ref: '#/definitions/domain.FooterSettings'
        description: footer settings
      head_code:
        description: inject code
        type: string
      home_page_setting:
        $ref: '#/definitions/consts.HomePageSetting'
      icon:
        type: string
      keyword:
        type: string
      lark_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.LarkBotSettings'
        description: LarkBot
      mcp_server_settings:
        allOf:
        - $ref: '#/definitions/domain.MCPServerSettings'
        description: MCP Server Settings
      openai_api_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.OpenAIAPIBotSettings'
        description: OpenAI API settings
      recommend_node_ids:
        items:
          type: string
        type: array
      recommend_questions:
        items:
          type: string
        type: array
      search_placeholder:
        type: string
      stats_setting:
        $ref: '#/definitions/domain.StatsSetting'
      theme_and_style:
        $ref: '#/definitions/domain.ThemeAndStyle'
      theme_mode:
        description: theme
        type: string
      title:
        description: nav
        type: string
      watermark_content:
        type: string
      watermark_setting:
        $ref: '#/definitions/consts.WatermarkSetting'
      web_app_comment_settings:
        allOf:
        - $ref: '#/definitions/domain.WebAppCommentSettings'
        description: webapp comment settings
      web_app_custom_style:
        allOf:
        - $ref: '#/definitions/domain.WebAppCustomSettings'
        description: WebAppCustomStyle
      web_app_landing_configs:
        description: WebApp Landing Settings
        items:
          $ref: '#/definitions/domain.WebAppLandingConfigResp'
        type: array
      web_app_landing_theme:
        $ref: '#/definitions/domain.WebAppLandingTheme'
      wechat_app_advanced_setting:
        $ref: '#/definitions/domain.WeChatAppAdvancedSetting'
      wechat_app_agent_id:
        type: string
      wechat_app_corpid:
        type: string
      wechat_app_encodingaeskey:
        type: string
      wechat_app_is_enabled:
        description: WechatAppBot
        type: boolean
      wechat_app_secret:
        type: string
      wechat_app_token:
        type: string
      wechat_official_account_app_id:
        type: string
      wechat_official_account_app_secret:
        type: string
      wechat_official_account_encodingaeskey:
        type: string
      wechat_official_account_is_enabled:
        description: WechatOfficialAccount
        type: boolean
      wechat_official_account_token:
        type: string
      wechat_service_contain_keywords:
        items:
          type: string
        type: array
      wechat_service_corpid:
        type: string
      wechat_service_encodingaeskey:
        type: string
      wechat_service_equal_keywords:
        items:
          type: string
        type: array
      wechat_service_is_enabled:
        description: WechatServiceBot
        type: boolean
      wechat_service_logo:
        type: string
      wechat_service_secret:
        type: string
      wechat_service_token:
        type: string
      wecom_ai_bot_settings:
        $ref: '#/definitions/domain.WecomAIBotSettings'
      welcome_str:
        description: welcome
        type: string
      widget_bot_settings:
        allOf:
        - $ref: '#/definitions/domain.WidgetBotSettings'
        description: WidgetBot
    type: object
  domain.AppType:
    enum:
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
    - 9
    - 10
    - 11
    - 12
    format: int32
    type: integer
    x-enum-varnames:
    - AppTypeWeb
    - AppTypeWidget
    - AppTypeDingTalkBot
    - AppTypeFeishuBot
    - AppTypeWechatBot
    - AppTypeWechatServiceBot
    - AppTypeDisCordBot
    - AppTypeWechatOfficialAccount
    - AppTypeOpenAIAPI
    - AppTypeWecomAIBot
    - AppTypeLarkBot
    - AppTypeMcpServer
  domain.AuthUserInfo:
    properties:
      avatar_url:
        type: string
      email:
        type: string
      username:
        type: string
    type: object
  domain.BannerConfig:
    properties:
      bg_url:
        type: string
      btns:
        items:
          properties:
            href:
              type: string
            id:
              type: string
            text:
              type: string
            type:
              type: string
          type: object
        type: array
      hot_search:
        items:
          type: string
        type: array
      placeholder:
        type: string
      subtitle:
        type: string
      subtitle_color:
        type: string
      subtitle_font_size:
        type: integer
      title:
        type: string
      title_color:
        type: string
      title_font_size:
        type: integer
    type: object
  domain.BasicDocConfig:
    properties:
      bg_color:
        type: string
      title:
        type: string
      title_color:
        type: string
    type: object
  domain.BatchMoveReq:
    properties:
      ids:
        items:
          type: string
        type: array
      kb_id:
        type: string
      parent_id:
        type: string
    required:
    - ids
    - kb_id
    type: object
  domain.BlockGridConfig:
    properties:
      list:
        items:
          properties:
            id:
              type: string
            name:
              type: string
            url:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.BrandGroup:
    properties:
      links:
        items:
          $ref: '#/definitions/domain.Link'
        type: array
      name:
        type: string
    type: object
  domain.BrowserCount:
    properties:
      count:
        type: integer
      name:
        type: string
    type: object
  domain.CarouselConfig:
    properties:
      bg_color:
        type: string
      list:
        items:
          properties:
            desc:
              type: string
            id:
              type: string
            title:
              type: string
            url:
              type: string
          type: object
        type: array
      title:
        type: string
    type: object
  domain.CaseConfig:
    properties:
      list:
        items:
          properties:
            id:
              type: string
            link:
              type: string
            name:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.CatalogSettings:
    properties:
      catalog_folder:
        description: '1: 展开, 2: 折叠, default: 1'
        type: integer
      catalog_visible:
        description: '1: 显示, 2: 隐藏, default: 1'
        type: integer
      catalog_width:
        description: '200 - 300, default: 260'
        type: integer
    type: object
  domain.ChatRequest:
    properties:
      app_type:
        allOf:
        - $ref: '#/definitions/domain.AppType'
        enum:
        - 1
        - 2
      captcha_token:
        type: string
      conversation_id:
        type: string
      image_paths:
        items:
          type: string
        maxItems: 3
        type: array
      message:
        type: string
      nonce:
        type: string
    required:
    - app_type
    type: object
  domain.ChatSearchReq:
    properties:
      captcha_token:
        type: string
      message:
        type: string
    required:
    - message
    type: object
  domain.ChatSearchResp:
    properties:
      node_result:
        items:
          $ref: '#/definitions/domain.NodeContentChunkSSE'
        type: array
    type: object
  domain.CommentConfig:
    properties:
      list:
        items:
          properties:
            avatar:
              type: string
            comment:
              type: string
            id:
              type: string
            profession:
              type: string
            user_name:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.CommentDeleteReq:
    properties:
      ids:
        items:
          type: string
        type: array
      kb_id:
        type: string
    required:
    - ids
    - kb_id
    type: object
  domain.CommentInfo:
    properties:
      auth_user_id:
        type: integer
      avatar:
        description: avatar
        type: string
      email:
        type: string
      remote_ip:
        type: string
      user_name:
        type: string
    type: object
  domain.CommentListItem:
    properties:
      content:
        type: string
      created_at:
        type: string
      id:
        type: string
      info:
        $ref: '#/definitions/domain.CommentInfo'
      ip_address:
        allOf:
        - $ref: '#/definitions/domain.IPAddress'
        description: ip地址
      node_id:
        type: string
      node_name:
        description: 文档标题
        type: string
      node_type:
        type: integer
      root_id:
        type: string
      status:
        allOf:
        - $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.CommentStatus'
        description: 'status : -1 reject 0 pending 1 accept'
    type: object
  domain.CommentReq:
    properties:
      captcha_token:
        type: string
      content:
        type: string
      node_id:
        type: string
      parent_id:
        type: string
      pic_urls:
        items:
          type: string
        type: array
      root_id:
        type: string
      user_name:
        type: string
    required:
    - content
    - node_id
    - pic_urls
    type: object
  domain.CompleteReq:
    properties:
      prefix:
        description: For FIM (Fill in Middle) style completion
        type: string
      suffix:
        type: string
    type: object
  domain.ContributeSettings:
    properties:
      is_enable:
        type: boolean
    type: object
  domain.ConversationDetailResp:
    properties:
      app_id:
        type: string
      created_at:
        type: string
      id:
        type: string
      ip_address:
        $ref: '#/definitions/domain.IPAddress'
      messages:
        items:
          $ref: '#/definitions/domain.ConversationMessage'
        type: array
      references:
        items:
          $ref: '#/definitions/domain.ConversationReference'
        type: array
      remote_ip:
        type: string
      subject:
        type: string
    type: object
  domain.ConversationInfo:
    properties:
      user_info:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.UserInfo'
    type: object
  domain.ConversationListItem:
    properties:
      app_name:
        type: string
      app_type:
        $ref: '#/definitions/domain.AppType'
      created_at:
        type: string
      feedback_info:
        allOf:
        - $ref: '#/definitions/domain.FeedBackInfo'
        description: 用户反馈信息
      id:
        type: string
      info:
        allOf:
        - $ref: '#/definitions/domain.ConversationInfo'
        description: 用户信息
      ip_address:
        $ref: '#/definitions/domain.IPAddress'
      remote_ip:
        type: string
      subject:
        type: string
    type: object
  domain.ConversationMessage:
    properties:
      app_id:
        type: string
      completion_tokens:
        type: integer
      content:
        type: string
      conversation_id:
        type: string
      created_at:
        type: string
      id:
        type: string
      image_paths:
        items:
          type: string
        type: array
      info:
        allOf:
        - $ref: '#/definitions/domain.FeedBackInfo'
        description: feedbackinfo
      kb_id:
        type: string
      model:
        type: string
      parent_id:
        description: parent_id
        type: string
      prompt_tokens:
        type: integer
      provider:
        allOf:
        - $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
        description: model
      remote_ip:
        description: stats
        type: string
      role:
        $ref: '#/definitions/schema.RoleType'
      total_tokens:
        type: integer
    type: object
  domain.ConversationMessageListItem:
    properties:
      app_id:
        type: string
      app_type:
        $ref: '#/definitions/domain.AppType'
      conversation_id:
        type: string
      conversation_info:
        allOf:
        - $ref: '#/definitions/domain.ConversationInfo'
        description: userInfo
      created_at:
        type: string
      id:
        type: string
      info:
        allOf:
        - $ref: '#/definitions/domain.FeedBackInfo'
        description: feedbackInfo
      ip_address:
        $ref: '#/definitions/domain.IPAddress'
      question:
        type: string
      remote_ip:
        description: stats
        type: string
    type: object
  domain.ConversationReference:
    properties:
      app_id:
        type: string
      conversation_id:
        type: string
      name:
        type: string
      node_id:
        type: string
      url:
        type: string
    type: object
  domain.ConversationSetting:
    properties:
      copyright_hide_enabled:
        type: boolean
      copyright_info:
        type: string
    type: object
  domain.CreateKBReleaseReq:
    properties:
      kb_id:
        type: string
      message:
        type: string
      node_ids:
        description: create release after these nodes published
        items:
          type: string
        type: array
      tag:
        type: string
    required:
    - kb_id
    - message
    - tag
    type: object
  domain.CreateKnowledgeBaseReq:
    properties:
      hosts:
        items:
          type: string
        type: array
      name:
        type: string
      ports:
        items:
          type: integer
        type: array
      private_key:
        type: string
      public_key:
        type: string
      ssl_ports:
        items:
          type: integer
        type: array
    required:
    - name
    type: object
  domain.CreateModelReq:
    properties:
      api_header:
        type: string
      api_key:
        type: string
      api_version:
        description: for azure openai
        type: string
      base_url:
        type: string
      model:
        type: string
      parameters:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam'
      provider:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
      type:
        allOf:
        - $ref: '#/definitions/domain.ModelType'
        enum:
        - chat
        - embedding
        - rerank
        - analysis
        - analysis-vl
    required:
    - base_url
    - model
    - provider
    - type
    type: object
  domain.CreateNodeReq:
    properties:
      content:
        type: string
      content_type:
        type: string
      emoji:
        type: string
      kb_id:
        type: string
      name:
        type: string
      nav_id:
        type: string
      parent_id:
        type: string
      position:
        type: number
      summary:
        type: string
      type:
        allOf:
        - $ref: '#/definitions/domain.NodeType'
        enum:
        - 1
        - 2
    required:
    - kb_id
    - name
    - nav_id
    - type
    type: object
  domain.DirDocConfig:
    properties:
      bg_color:
        type: string
      title:
        type: string
      title_color:
        type: string
    type: object
  domain.DisclaimerSettings:
    properties:
      content:
        type: string
    type: object
  domain.EnterpriseAuth:
    properties:
      enabled:
        type: boolean
    type: object
  domain.FaqConfig:
    properties:
      bg_color:
        type: string
      list:
        items:
          properties:
            id:
              type: string
            link:
              type: string
            question:
              type: string
          type: object
        type: array
      title:
        type: string
      title_color:
        type: string
    type: object
  domain.FeatureConfig:
    properties:
      list:
        items:
          properties:
            desc:
              type: string
            id:
              type: string
            name:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.FeedBackInfo:
    properties:
      feedback_content:
        type: string
      feedback_type:
        type: string
      score:
        $ref: '#/definitions/domain.ScoreType'
    type: object
  domain.FeedbackRequest:
    properties:
      conversation_id:
        type: string
      feedback_content:
        description: 限制内容长度
        maxLength: 200
        type: string
      message_id:
        type: string
      score:
        allOf:
        - $ref: '#/definitions/domain.ScoreType'
        description: -1 踩 ,0 1 赞成
      type:
        description: 内容不准确，没有帮助，.......
        type: string
    required:
    - message_id
    type: object
  domain.FooterSettings:
    properties:
      brand_desc:
        type: string
      brand_groups:
        items:
          $ref: '#/definitions/domain.BrandGroup'
        type: array
      brand_logo:
        type: string
      brand_name:
        type: string
      corp_name:
        type: string
      footer_style:
        type: string
      icp:
        type: string
    type: object
  domain.GetKBReleaseListResp:
    properties:
      data:
        items:
          $ref: '#/definitions/domain.KBReleaseListItemResp'
        type: array
      total:
        type: integer
    type: object
  domain.GetProviderModelListReq:
    properties:
      api_header:
        type: string
      api_key:
        type: string
      base_url:
        type: string
      provider:
        type: string
      type:
        allOf:
        - $ref: '#/definitions/domain.ModelType'
        enum:
        - chat
        - embedding
        - rerank
        - analysis
        - analysis-vl
    required:
    - base_url
    - provider
    - type
    type: object
  domain.GetProviderModelListResp:
    properties:
      models:
        items:
          $ref: '#/definitions/domain.ProviderModelListItem'
        type: array
    type: object
  domain.HotBrowser:
    properties:
      browser:
        items:
          $ref: '#/definitions/domain.BrowserCount'
        type: array
      os:
        items:
          $ref: '#/definitions/domain.BrowserCount'
        type: array
    type: object
  domain.HotPage:
    properties:
      count:
        type: integer
      node_id:
        type: string
      node_name:
        type: string
      scene:
        $ref: '#/definitions/domain.StatPageScene'
    type: object
  domain.HotRefererHost:
    properties:
      count:
        type: integer
      referer_host:
        type: string
    type: object
  domain.IPAddress:
    properties:
      city:
        type: string
      country:
        type: string
      ip:
        type: string
      province:
        type: string
    type: object
  domain.ImgTextConfig:
    properties:
      item:
        properties:
          desc:
            type: string
          name:
            type: string
          url:
            type: string
        type: object
      title:
        type: string
      type:
        type: string
    type: object
  domain.InstantCountResp:
    properties:
      count:
        type: integer
      time:
        type: string
    type: object
  domain.InstantPageResp:
    properties:
      created_at:
        type: string
      info:
        $ref: '#/definitions/domain.AuthUserInfo'
      ip:
        type: string
      ip_address:
        $ref: '#/definitions/domain.IPAddress'
      node_id:
        type: string
      node_name:
        type: string
      scene:
        $ref: '#/definitions/domain.StatPageScene'
      user_id:
        type: integer
    type: object
  domain.KBReleaseListItemResp:
    properties:
      created_at:
        type: string
      id:
        type: string
      kb_id:
        type: string
      message:
        type: string
      publisher_account:
        type: string
      tag:
        type: string
    type: object
  domain.KnowledgeBaseDetail:
    properties:
      access_settings:
        $ref: '#/definitions/domain.AccessSettings'
      created_at:
        type: string
      dataset_id:
        type: string
      id:
        type: string
      name:
        type: string
      perm:
        allOf:
        - $ref: '#/definitions/consts.UserKBPermission'
        description: 用户对知识库的权限
      updated_at:
        type: string
    type: object
  domain.KnowledgeBaseListItem:
    properties:
      access_settings:
        $ref: '#/definitions/domain.AccessSettings'
      created_at:
        type: string
      dataset_id:
        type: string
      id:
        type: string
      name:
        type: string
      updated_at:
        type: string
    type: object
  domain.LarkBotSettings:
    properties:
      app_id:
        type: string
      app_secret:
        type: string
      encrypt_key:
        type: string
      is_enabled:
        type: boolean
      verify_token:
        type: string
    type: object
  domain.Link:
    properties:
      name:
        type: string
      url:
        type: string
    type: object
  domain.MCPServerSettings:
    properties:
      docs_tool_settings:
        $ref: '#/definitions/domain.MCPToolSettings'
      is_enabled:
        type: boolean
      sample_auth:
        $ref: '#/definitions/domain.SimpleAuth'
    type: object
  domain.MCPToolSettings:
    properties:
      desc:
        type: string
      name:
        type: string
    type: object
  domain.MessageContent:
    type: object
  domain.MessageFrom:
    enum:
    - 1
    - 2
    type: integer
    x-enum-varnames:
    - MessageFromGroup
    - MessageFromPrivate
  domain.MetricsConfig:
    properties:
      list:
        items:
          properties:
            id:
              type: string
            name:
              type: string
            number:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.ModelModeSetting:
    properties:
      auto_mode_api_key:
        description: 百智云 API Key
        type: string
      auto_mode_provider:
        allOf:
        - $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
        description: 自动模式供应商
      chat_model:
        description: 自定义对话模型名称
        type: string
      is_manual_embedding_updated:
        description: 手动模式下嵌入模型是否更新
        type: boolean
      mode:
        allOf:
        - $ref: '#/definitions/consts.ModelSettingMode'
        description: '模式: manual 或 auto'
    type: object
  domain.ModelType:
    enum:
    - chat
    - embedding
    - rerank
    - analysis
    - analysis-vl
    type: string
    x-enum-varnames:
    - ModelTypeChat
    - ModelTypeEmbedding
    - ModelTypeRerank
    - ModelTypeAnalysis
    - ModelTypeAnalysisVL
  domain.MoveNodeReq:
    properties:
      id:
        type: string
      kb_id:
        type: string
      next_id:
        type: string
      parent_id:
        type: string
      prev_id:
        type: string
    required:
    - id
    - kb_id
    type: object
  domain.NavDocConfig:
    properties:
      nav_ids:
        items:
          type: string
        type: array
      title:
        type: string
    type: object
  domain.NodeActionReq:
    properties:
      action:
        enum:
        - delete
        type: string
      ids:
        items:
          type: string
        type: array
      kb_id:
        type: string
    required:
    - action
    - ids
    - kb_id
    type: object
  domain.NodeContentChunkSSE:
    properties:
      emoji:
        type: string
      name:
        type: string
      node_id:
        type: string
      node_path_names:
        items:
          type: string
        type: array
      summary:
        type: string
    type: object
  domain.NodeListItemResp:
    properties:
      content_type:
        type: string
      created_at:
        type: string
      creator:
        type: string
      creator_id:
        type: string
      editor:
        type: string
      editor_id:
        type: string
      emoji:
        type: string
      id:
        type: string
      name:
        type: string
      nav_id:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      position:
        type: number
      publisher_id:
        type: string
      rag_info:
        $ref: '#/definitions/domain.RagInfo'
      status:
        $ref: '#/definitions/domain.NodeStatus'
      summary:
        type: string
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    type: object
  domain.NodeMeta:
    properties:
      content_type:
        type: string
      emoji:
        type: string
      summary:
        type: string
    type: object
  domain.NodePermissions:
    properties:
      answerable:
        allOf:
        - $ref: '#/definitions/consts.NodeAccessPerm'
        description: 可被问答
      visible:
        allOf:
        - $ref: '#/definitions/consts.NodeAccessPerm'
        description: 导航内可见
      visitable:
        allOf:
        - $ref: '#/definitions/consts.NodeAccessPerm'
        description: 可被访问
    type: object
  domain.NodeStatus:
    enum:
    - 0
    - 1
    - 2
    format: int32
    type: integer
    x-enum-comments:
      NodeStatusDraft: 更新未发布
      NodeStatusPublished: 已发布
      NodeStatusUnreleased: 草稿
    x-enum-descriptions:
    - 草稿
    - 更新未发布
    - 已发布
    x-enum-varnames:
    - NodeStatusUnreleased
    - NodeStatusDraft
    - NodeStatusPublished
  domain.NodeSummaryReq:
    properties:
      ids:
        items:
          type: string
        type: array
      kb_id:
        type: string
    required:
    - ids
    - kb_id
    type: object
  domain.NodeType:
    enum:
    - 1
    - 2
    format: int32
    type: integer
    x-enum-varnames:
    - NodeTypeFolder
    - NodeTypeDocument
  domain.ObjectUploadResp:
    properties:
      filename:
        type: string
      key:
        type: string
    type: object
  domain.OpenAIAPIBotSettings:
    properties:
      is_enabled:
        type: boolean
      secret_key:
        type: string
    type: object
  domain.OpenAIChoice:
    properties:
      delta:
        allOf:
        - $ref: '#/definitions/domain.OpenAIMessage'
        description: for streaming
      finish_reason:
        type: string
      index:
        type: integer
      message:
        $ref: '#/definitions/domain.OpenAIMessage'
    type: object
  domain.OpenAICompletionsRequest:
    properties:
      frequency_penalty:
        type: number
      max_tokens:
        type: integer
      messages:
        items:
          $ref: '#/definitions/domain.OpenAIMessage'
        type: array
      model:
        type: string
      presence_penalty:
        type: number
      response_format:
        $ref: '#/definitions/domain.OpenAIResponseFormat'
      stop:
        items:
          type: string
        type: array
      stream:
        type: boolean
      stream_options:
        $ref: '#/definitions/domain.OpenAIStreamOptions'
      temperature:
        type: number
      tool_choice:
        $ref: '#/definitions/domain.OpenAIToolChoice'
      tools:
        items:
          $ref: '#/definitions/domain.OpenAITool'
        type: array
      top_p:
        type: number
      user:
        type: string
    required:
    - messages
    - model
    type: object
  domain.OpenAICompletionsResponse:
    properties:
      choices:
        items:
          $ref: '#/definitions/domain.OpenAIChoice'
        type: array
      created:
        type: integer
      id:
        type: string
      model:
        type: string
      object:
        type: string
      usage:
        $ref: '#/definitions/domain.OpenAIUsage'
    type: object
  domain.OpenAIError:
    properties:
      code:
        type: string
      message:
        type: string
      param:
        type: string
      type:
        type: string
    type: object
  domain.OpenAIErrorResponse:
    properties:
      error:
        $ref: '#/definitions/domain.OpenAIError'
    type: object
  domain.OpenAIFunction:
    properties:
      description:
        type: string
      name:
        type: string
      parameters:
        additionalProperties: true
        type: object
    required:
    - name
    type: object
  domain.OpenAIFunctionCall:
    properties:
      arguments:
        type: string
      name:
        type: string
    required:
    - arguments
    - name
    type: object
  domain.OpenAIFunctionChoice:
    properties:
      name:
        type: string
    required:
    - name
    type: object
  domain.OpenAIMessage:
    properties:
      content:
        $ref: '#/definitions/domain.MessageContent'
      name:
        type: string
      role:
        type: string
      tool_call_id:
        type: string
      tool_calls:
        items:
          $ref: '#/definitions/domain.OpenAIToolCall'
        type: array
    required:
    - role
    type: object
  domain.OpenAIResponseFormat:
    properties:
      type:
        type: string
    required:
    - type
    type: object
  domain.OpenAIStreamOptions:
    properties:
      include_usage:
        type: boolean
    type: object
  domain.OpenAITool:
    properties:
      function:
        $ref: '#/definitions/domain.OpenAIFunction'
      type:
        type: string
    required:
    - type
    type: object
  domain.OpenAIToolCall:
    properties:
      function:
        $ref: '#/definitions/domain.OpenAIFunctionCall'
      id:
        type: string
      type:
        type: string
    required:
    - function
    - id
    - type
    type: object
  domain.OpenAIToolChoice:
    properties:
      function:
        $ref: '#/definitions/domain.OpenAIFunctionChoice'
      type:
        type: string
    type: object
  domain.OpenAIUsage:
    properties:
      completion_tokens:
        type: integer
      prompt_tokens:
        type: integer
      total_tokens:
        type: integer
    type: object
  domain.PWResponse:
    properties:
      code:
        type: integer
      data: {}
      message:
        type: string
      success:
        type: boolean
    type: object
  domain.PaginatedResult-array_domain_ConversationMessageListItem:
    properties:
      data:
        items:
          $ref: '#/definitions/domain.ConversationMessageListItem'
        type: array
      total:
        type: integer
    type: object
  domain.ProviderModelListItem:
    properties:
      model:
        type: string
    type: object
  domain.QuestionConfig:
    properties:
      list:
        items:
          properties:
            id:
              type: string
            question:
              type: string
          type: object
        type: array
      title:
        type: string
      type:
        type: string
    type: object
  domain.RagInfo:
    properties:
      message:
        type: string
      status:
        $ref: '#/definitions/consts.NodeRagInfoStatus'
      synced_at:
        type: string
    type: object
  domain.RecommendNodeListResp:
    properties:
      emoji:
        type: string
      id:
        type: string
      name:
        type: string
      nav_id:
        type: string
      nav_name:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      position:
        type: number
      recommend_nodes:
        items:
          $ref: '#/definitions/domain.RecommendNodeListResp'
        type: array
      summary:
        type: string
      type:
        $ref: '#/definitions/domain.NodeType'
    type: object
  domain.Response:
    properties:
      data: {}
      message:
        type: string
      success:
        type: boolean
    type: object
  domain.ScoreType:
    enum:
    - 1
    - -1
    type: integer
    x-enum-varnames:
    - Like
    - DisLike
  domain.ShareCommentListItem:
    properties:
      content:
        type: string
      created_at:
        type: string
      id:
        type: string
      info:
        $ref: '#/definitions/domain.CommentInfo'
      ip_address:
        allOf:
        - $ref: '#/definitions/domain.IPAddress'
        description: ip地址
      kb_id:
        type: string
      node_id:
        type: string
      parent_id:
        type: string
      pic_urls:
        items:
          type: string
        type: array
      root_id:
        type: string
    type: object
  domain.ShareConversationDetailResp:
    properties:
      created_at:
        type: string
      id:
        type: string
      messages:
        items:
          $ref: '#/definitions/domain.ShareConversationMessage'
        type: array
      subject:
        type: string
    type: object
  domain.ShareConversationMessage:
    properties:
      content:
        type: string
      created_at:
        type: string
      image_paths:
        items:
          type: string
        type: array
      role:
        $ref: '#/definitions/schema.RoleType'
    type: object
  domain.ShareNodeDetailItem:
    properties:
      children:
        items:
          $ref: '#/definitions/domain.ShareNodeDetailItem'
        type: array
      emoji:
        type: string
      id:
        type: string
      meta:
        $ref: '#/definitions/domain.NodeMeta'
      name:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      position:
        type: number
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    type: object
  domain.SimpleAuth:
    properties:
      enabled:
        type: boolean
      password:
        type: string
    type: object
  domain.SimpleDocConfig:
    properties:
      bg_color:
        type: string
      title:
        type: string
      title_color:
        type: string
    type: object
  domain.SocialMediaAccount:
    properties:
      channel:
        type: string
      icon:
        type: string
      link:
        type: string
      phone:
        type: string
      text:
        type: string
    type: object
  domain.StatPageReq:
    properties:
      node_id:
        type: string
      scene:
        allOf:
        - $ref: '#/definitions/domain.StatPageScene'
        enum:
        - 1
        - 2
        - 3
        - 4
    required:
    - scene
    type: object
  domain.StatPageScene:
    enum:
    - 1
    - 2
    - 3
    - 4
    type: integer
    x-enum-varnames:
    - StatPageSceneWelcome
    - StatPageSceneNodeDetail
    - StatPageSceneChat
    - StatPageSceneLogin
  domain.StatsSetting:
    properties:
      pv_enable:
        type: boolean
    type: object
  domain.SwitchModeReq:
    properties:
      auto_mode_api_key:
        description: 百智云 API Key
        type: string
      auto_mode_provider:
        allOf:
        - $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
        description: 自动模式供应商
      chat_model:
        description: 自定义对话模型名称
        type: string
      mode:
        enum:
        - manual
        - auto
        type: string
    required:
    - mode
    type: object
  domain.SwitchModeResp:
    properties:
      message:
        type: string
    type: object
  domain.TextConfig:
    properties:
      title:
        type: string
      type:
        type: string
    type: object
  domain.TextImgConfig:
    properties:
      item:
        properties:
          desc:
            type: string
          name:
            type: string
          url:
            type: string
        type: object
      title:
        type: string
      type:
        type: string
    type: object
  domain.TextReq:
    properties:
      action:
        description: 'action: improve, summary, extend, shorten, etc.'
        type: string
      text:
        type: string
    required:
    - text
    type: object
  domain.ThemeAndStyle:
    properties:
      bg_image:
        type: string
      doc_width:
        type: string
    type: object
  domain.UpdateAppReq:
    properties:
      kb_id:
        type: string
      name:
        type: string
      settings:
        $ref: '#/definitions/domain.AppSettings'
    type: object
  domain.UpdateKnowledgeBaseReq:
    properties:
      access_settings:
        $ref: '#/definitions/domain.AccessSettings'
      id:
        type: string
      name:
        type: string
    required:
    - id
    type: object
  domain.UpdateModelReq:
    properties:
      api_header:
        type: string
      api_key:
        type: string
      api_version:
        description: for azure openai
        type: string
      base_url:
        type: string
      id:
        type: string
      is_active:
        type: boolean
      model:
        type: string
      parameters:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam'
      provider:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
      type:
        allOf:
        - $ref: '#/definitions/domain.ModelType'
        enum:
        - chat
        - embedding
        - rerank
        - analysis
        - analysis-vl
    required:
    - base_url
    - id
    - model
    - provider
    - type
    type: object
  domain.UpdateNodeReq:
    properties:
      content:
        type: string
      content_type:
        type: string
      emoji:
        type: string
      id:
        type: string
      kb_id:
        type: string
      name:
        type: string
      nav_id:
        type: string
      position:
        type: number
      summary:
        type: string
    required:
    - id
    - kb_id
    type: object
  domain.UploadByUrlReq:
    properties:
      kb_id:
        type: string
      url:
        type: string
    required:
    - url
    type: object
  domain.WeChatAppAdvancedSetting:
    properties:
      disclaimer_content:
        type: string
      feedback_enable:
        type: boolean
      feedback_type:
        items:
          type: string
        type: array
      prompt:
        type: string
      text_response_enable:
        type: boolean
    type: object
  domain.WebAppCommentSettings:
    properties:
      is_enable:
        type: boolean
      moderation_enable:
        type: boolean
    type: object
  domain.WebAppCustomSettings:
    properties:
      allow_theme_switching:
        type: boolean
      footer_show_intro:
        type: boolean
      header_search_placeholder:
        type: string
      show_brand_info:
        type: boolean
      social_media_accounts:
        items:
          $ref: '#/definitions/domain.SocialMediaAccount'
        type: array
    type: object
  domain.WebAppLandingConfig:
    properties:
      banner_config:
        $ref: '#/definitions/domain.BannerConfig'
      basic_doc_config:
        $ref: '#/definitions/domain.BasicDocConfig'
      block_grid_config:
        $ref: '#/definitions/domain.BlockGridConfig'
      carousel_config:
        $ref: '#/definitions/domain.CarouselConfig'
      case_config:
        $ref: '#/definitions/domain.CaseConfig'
      com_config_order:
        items:
          type: string
        type: array
      comment_config:
        $ref: '#/definitions/domain.CommentConfig'
      dir_doc_config:
        $ref: '#/definitions/domain.DirDocConfig'
      faq_config:
        $ref: '#/definitions/domain.FaqConfig'
      feature_config:
        $ref: '#/definitions/domain.FeatureConfig'
      img_text_config:
        $ref: '#/definitions/domain.ImgTextConfig'
      metrics_config:
        $ref: '#/definitions/domain.MetricsConfig'
      nav_doc_config:
        $ref: '#/definitions/domain.NavDocConfig'
      node_ids:
        items:
          type: string
        type: array
      question_config:
        $ref: '#/definitions/domain.QuestionConfig'
      simple_doc_config:
        $ref: '#/definitions/domain.SimpleDocConfig'
      text_config:
        $ref: '#/definitions/domain.TextConfig'
      text_img_config:
        $ref: '#/definitions/domain.TextImgConfig'
      type:
        type: string
    type: object
  domain.WebAppLandingConfigResp:
    properties:
      banner_config:
        $ref: '#/definitions/domain.BannerConfig'
      basic_doc_config:
        $ref: '#/definitions/domain.BasicDocConfig'
      block_grid_config:
        $ref: '#/definitions/domain.BlockGridConfig'
      carousel_config:
        $ref: '#/definitions/domain.CarouselConfig'
      case_config:
        $ref: '#/definitions/domain.CaseConfig'
      com_config_order:
        items:
          type: string
        type: array
      comment_config:
        $ref: '#/definitions/domain.CommentConfig'
      dir_doc_config:
        $ref: '#/definitions/domain.DirDocConfig'
      faq_config:
        $ref: '#/definitions/domain.FaqConfig'
      feature_config:
        $ref: '#/definitions/domain.FeatureConfig'
      img_text_config:
        $ref: '#/definitions/domain.ImgTextConfig'
      metrics_config:
        $ref: '#/definitions/domain.MetricsConfig'
      nav_doc_config:
        $ref: '#/definitions/domain.NavDocConfig'
      node_ids:
        items:
          type: string
        type: array
      nodes:
        items:
          $ref: '#/definitions/domain.RecommendNodeListResp'
        type: array
      question_config:
        $ref: '#/definitions/domain.QuestionConfig'
      simple_doc_config:
        $ref: '#/definitions/domain.SimpleDocConfig'
      text_config:
        $ref: '#/definitions/domain.TextConfig'
      text_img_config:
        $ref: '#/definitions/domain.TextImgConfig'
      type:
        type: string
    type: object
  domain.WebAppLandingTheme:
    properties:
      name:
        type: string
    type: object
  domain.WecomAIBotSettings:
    properties:
      encodingaeskey:
        type: string
      is_enabled:
        type: boolean
      token:
        type: string
    type: object
  domain.WidgetBotSettings:
    properties:
      btn_id:
        type: string
      btn_logo:
        type: string
      btn_position:
        type: string
      btn_style:
        type: string
      btn_text:
        type: string
      copyright_hide_enabled:
        type: boolean
      copyright_info:
        type: string
      disclaimer:
        type: string
      is_open:
        type: boolean
      modal_position:
        type: string
      placeholder:
        type: string
      recommend_node_ids:
        items:
          type: string
        type: array
      recommend_questions:
        items:
          type: string
        type: array
      search_mode:
        type: string
      theme_mode:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_auth_v1.AuthGetResp:
    properties:
      auths:
        items:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthItem'
        type: array
      client_id:
        type: string
      client_secret:
        type: string
      proxy:
        type: string
      source_type:
        $ref: '#/definitions/consts.SourceType'
    type: object
  github_com_chaitin_panda-wiki_api_auth_v1.AuthItem:
    properties:
      avatar_url:
        type: string
      created_at:
        type: string
      id:
        type: integer
      ip:
        type: string
      last_login_time:
        type: string
      source_type:
        $ref: '#/definitions/consts.SourceType'
      username:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_auth_v1.AuthSetReq:
    properties:
      client_id:
        type: string
      client_secret:
        type: string
      kb_id:
        type: string
      proxy:
        type: string
      source_type:
        allOf:
        - $ref: '#/definitions/consts.SourceType'
        enum:
        - github
    required:
    - source_type
    type: object
  github_com_chaitin_panda-wiki_api_node_v1.NodeListGroupNavResp:
    properties:
      count:
        type: integer
      is_released:
        type: boolean
      list:
        items:
          $ref: '#/definitions/domain.NodeListItemResp'
        type: array
      nav_id:
        type: string
      nav_name:
        type: string
      position:
        type: number
    type: object
  github_com_chaitin_panda-wiki_api_share_v1.AuthGetResp:
    properties:
      auth_type:
        $ref: '#/definitions/consts.AuthType'
      license_edition:
        $ref: '#/definitions/consts.LicenseEdition'
      source_type:
        $ref: '#/definitions/consts.SourceType'
    type: object
  github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubReq:
    properties:
      kb_id:
        type: string
      redirect_url:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubResp:
    properties:
      url:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_share_v1.FileUploadResp:
    properties:
      key:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_share_v1.GitHubCallbackResp:
    type: object
  github_com_chaitin_panda-wiki_domain.CheckModelReq:
    properties:
      api_header:
        type: string
      api_key:
        type: string
      api_version:
        description: for azure openai
        type: string
      base_url:
        type: string
      model:
        type: string
      parameters:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam'
      provider:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
      type:
        allOf:
        - $ref: '#/definitions/domain.ModelType'
        enum:
        - chat
        - embedding
        - rerank
        - analysis
        - analysis-vl
    required:
    - base_url
    - model
    - provider
    - type
    type: object
  github_com_chaitin_panda-wiki_domain.CheckModelResp:
    properties:
      content:
        type: string
      error:
        type: string
    type: object
  github_com_chaitin_panda-wiki_domain.CommentStatus:
    enum:
    - -1
    - 0
    - 1
    format: int32
    type: integer
    x-enum-varnames:
    - CommentStatusReject
    - CommentStatusPending
    - CommentStatusAccepted
  github_com_chaitin_panda-wiki_domain.ModelListItem:
    properties:
      api_header:
        type: string
      api_key:
        type: string
      api_version:
        description: for azure openai
        type: string
      base_url:
        type: string
      completion_tokens:
        type: integer
      id:
        type: string
      is_active:
        type: boolean
      model:
        type: string
      parameters:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelParam'
      prompt_tokens:
        type: integer
      provider:
        $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelProvider'
      total_tokens:
        type: integer
      type:
        $ref: '#/definitions/domain.ModelType'
    type: object
  github_com_chaitin_panda-wiki_domain.ModelParam:
    properties:
      context_window:
        type: integer
      max_tokens:
        type: integer
      r1_enabled:
        type: boolean
      support_computer_use:
        type: boolean
      support_images:
        type: boolean
      support_prompt_cache:
        type: boolean
      temperature:
        type: number
    type: object
  github_com_chaitin_panda-wiki_domain.ModelProvider:
    enum:
    - BaiZhiCloud
    - BaiZhiCloudModelStore
    type: string
    x-enum-varnames:
    - ModelProviderBrandBaiZhiCloud
    - ModelProviderBaiZhiCloudModelStore
  github_com_chaitin_panda-wiki_domain.NodeGroupDetail:
    properties:
      auth_group_id:
        type: integer
      auth_ids:
        items:
          type: integer
        type: array
      kb_id:
        type: string
      name:
        type: string
      node_id:
        type: string
      perm:
        $ref: '#/definitions/consts.NodePermName'
    type: object
  github_com_chaitin_panda-wiki_domain.UserInfo:
    properties:
      auth_user_id:
        type: integer
      avatar:
        description: avatar
        type: string
      email:
        type: string
      from:
        $ref: '#/definitions/domain.MessageFrom'
      name:
        type: string
      real_name:
        type: string
      user_id:
        type: string
    type: object
  gocap.ChallengeData:
    properties:
      challenge:
        $ref: '#/definitions/gocap.ChallengeItem'
      expires:
        description: 过期时间,毫秒级时间戳
        type: integer
      token:
        description: 质询令牌
        type: string
    type: object
  gocap.ChallengeItem:
    properties:
      c:
        description: 质询数量
        type: integer
      d:
        description: 质询难度
        type: integer
      s:
        description: 质询大小
        type: integer
    type: object
  gocap.VerificationResult:
    properties:
      expires:
        description: 过期时间,毫秒级时间戳
        type: integer
      message:
        type: string
      success:
        type: boolean
      token:
        description: 验证令牌
        type: string
    type: object
  schema.RoleType:
    enum:
    - assistant
    - user
    - system
    - tool
    type: string
    x-enum-varnames:
    - Assistant
    - User
    - System
    - Tool
  share.ShareCommentLists:
    properties:
      data:
        items:
          $ref: '#/definitions/domain.ShareCommentListItem'
        type: array
      total:
        type: integer
    type: object
  v1.AuthLoginSimpleReq:
    properties:
      password:
        type: string
    required:
    - password
    type: object
  v1.CommentLists:
    properties:
      data:
        items:
          $ref: '#/definitions/domain.CommentListItem'
        type: array
      total:
        type: integer
    type: object
  v1.ConversationListItems:
    properties:
      data:
        items:
          $ref: '#/definitions/domain.ConversationListItem'
        type: array
      total:
        type: integer
    type: object
  v1.CrawlerExportReq:
    properties:
      doc_id:
        type: string
      file_type:
        type: string
      id:
        type: string
      kb_id:
        type: string
      space_id:
        type: string
    required:
    - doc_id
    - id
    - kb_id
    type: object
  v1.CrawlerExportResp:
    properties:
      task_id:
        type: string
    type: object
  v1.CrawlerParseReq:
    properties:
      crawler_source:
        $ref: '#/definitions/consts.CrawlerSource'
      dingtalk_setting:
        $ref: '#/definitions/anydoc.DingtalkSetting'
      feishu_setting:
        $ref: '#/definitions/anydoc.FeishuSetting'
      filename:
        type: string
      kb_id:
        type: string
      key:
        type: string
    required:
    - crawler_source
    - kb_id
    type: object
  v1.CrawlerParseResp:
    properties:
      docs:
        $ref: '#/definitions/anydoc.Child'
      id:
        type: string
    type: object
  v1.CrawlerResultItem:
    properties:
      content:
        type: string
      status:
        $ref: '#/definitions/consts.CrawlerStatus'
      task_id:
        type: string
    type: object
  v1.CrawlerResultReq:
    properties:
      task_id:
        type: string
    required:
    - task_id
    type: object
  v1.CrawlerResultResp:
    properties:
      content:
        type: string
      status:
        $ref: '#/definitions/consts.CrawlerStatus'
    required:
    - status
    type: object
  v1.CrawlerResultsReq:
    properties:
      task_ids:
        items:
          type: string
        type: array
    required:
    - task_ids
    type: object
  v1.CrawlerResultsResp:
    properties:
      list:
        items:
          $ref: '#/definitions/v1.CrawlerResultItem'
        type: array
      status:
        $ref: '#/definitions/consts.CrawlerStatus'
    type: object
  v1.CreateUserReq:
    properties:
      account:
        type: string
      password:
        minLength: 8
        type: string
      role:
        allOf:
        - $ref: '#/definitions/consts.UserRole'
        enum:
        - admin
        - user
    required:
    - account
    - password
    - role
    type: object
  v1.CreateUserResp:
    properties:
      id:
        type: string
    type: object
  v1.KBUserInviteReq:
    properties:
      kb_id:
        type: string
      perm:
        allOf:
        - $ref: '#/definitions/consts.UserKBPermission'
        enum:
        - full_control
        - doc_manage
        - data_operate
      user_id:
        type: string
    required:
    - kb_id
    - perm
    - user_id
    type: object
  v1.KBUserListItemResp:
    properties:
      account:
        type: string
      id:
        type: string
      perms:
        $ref: '#/definitions/consts.UserKBPermission'
      role:
        $ref: '#/definitions/consts.UserRole'
    type: object
  v1.KBUserUpdateReq:
    properties:
      kb_id:
        type: string
      perm:
        allOf:
        - $ref: '#/definitions/consts.UserKBPermission'
        enum:
        - full_control
        - doc_manage
        - data_operate
      user_id:
        type: string
    required:
    - kb_id
    - perm
    - user_id
    type: object
  v1.LoginReq:
    properties:
      account:
        type: string
      password:
        type: string
    required:
    - account
    - password
    type: object
  v1.LoginResp:
    properties:
      token:
        type: string
    type: object
  v1.NavAddReq:
    properties:
      kb_id:
        type: string
      name:
        type: string
      position:
        type: number
    required:
    - kb_id
    - name
    type: object
  v1.NavListResp:
    properties:
      created_at:
        type: string
      id:
        type: string
      name:
        type: string
      position:
        type: number
      updated_at:
        type: string
    type: object
  v1.NavMoveReq:
    properties:
      id:
        type: string
      kb_id:
        type: string
      next_id:
        type: string
      prev_id:
        type: string
    required:
    - id
    - kb_id
    type: object
  v1.NavUpdateReq:
    properties:
      id:
        type: string
      kb_id:
        type: string
      name:
        type: string
    required:
    - id
    - kb_id
    - name
    type: object
  v1.NodeDetailResp:
    properties:
      content:
        type: string
      created_at:
        type: string
      creator_account:
        type: string
      creator_id:
        type: string
      editor_account:
        type: string
      editor_id:
        type: string
      id:
        type: string
      kb_id:
        type: string
      meta:
        $ref: '#/definitions/domain.NodeMeta'
      name:
        type: string
      nav_id:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      publisher_account:
        type: string
      publisher_id:
        type: string
      pv:
        type: integer
      status:
        $ref: '#/definitions/domain.NodeStatus'
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    type: object
  v1.NodeMoveNavReq:
    properties:
      ids:
        items:
          type: string
        minItems: 1
        type: array
      kb_id:
        type: string
      nav_id:
        type: string
    required:
    - ids
    - kb_id
    - nav_id
    type: object
  v1.NodePermissionEditReq:
    properties:
      answerable_groups:
        description: 可被问答
        items:
          type: integer
        type: array
      ids:
        items:
          type: string
        type: array
      kb_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      visible_groups:
        description: 导航内可见
        items:
          type: integer
        type: array
      visitable_groups:
        description: 可被访问
        items:
          type: integer
        type: array
    required:
    - ids
    - kb_id
    type: object
  v1.NodePermissionEditResp:
    type: object
  v1.NodePermissionResp:
    properties:
      answerable_groups:
        description: 可被问答
        items:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail'
        type: array
      id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      visible_groups:
        description: 导航内可见
        items:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail'
        type: array
      visitable_groups:
        description: 可被访问
        items:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.NodeGroupDetail'
        type: array
    type: object
  v1.NodeRestudyReq:
    properties:
      kb_id:
        type: string
      node_ids:
        items:
          type: string
        minItems: 1
        type: array
    required:
    - kb_id
    - node_ids
    type: object
  v1.NodeRestudyResp:
    type: object
  v1.NodeStatsResp:
    properties:
      unpublished_count:
        description: 未发布的文档数
        type: integer
      unreleased_nav_count:
        description: 未发布目录数量
        type: integer
      unstudied_count:
        description: 未学习的文档数
        type: integer
    type: object
  v1.ResetPasswordReq:
    properties:
      id:
        type: string
      new_password:
        minLength: 8
        type: string
    required:
    - id
    - new_password
    type: object
  v1.ShareFileUploadUrlReq:
    properties:
      captcha_token:
        type: string
      url:
        type: string
    required:
    - captcha_token
    - url
    type: object
  v1.ShareFileUploadUrlResp:
    properties:
      key:
        type: string
    type: object
  v1.ShareNodeDetailResp:
    properties:
      content:
        type: string
      created_at:
        type: string
      creator_account:
        type: string
      creator_id:
        type: string
      editor_account:
        type: string
      editor_id:
        type: string
      id:
        type: string
      kb_id:
        type: string
      list:
        items:
          $ref: '#/definitions/domain.ShareNodeDetailItem'
        type: array
      meta:
        $ref: '#/definitions/domain.NodeMeta'
      name:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      publisher_account:
        type: string
      publisher_id:
        type: string
      pv:
        type: integer
      status:
        $ref: '#/definitions/domain.NodeStatus'
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    type: object
  v1.StatConversationDistributionResp:
    properties:
      app_type:
        $ref: '#/definitions/domain.AppType'
      count:
        type: integer
    type: object
  v1.StatCountResp:
    properties:
      conversation_count:
        type: integer
      ip_count:
        type: integer
      page_visit_count:
        type: integer
      session_count:
        type: integer
    type: object
  v1.UserInfoResp:
    properties:
      account:
        type: string
      created_at:
        type: string
      id:
        type: string
      is_token:
        type: boolean
      last_access:
        type: string
      role:
        $ref: '#/definitions/consts.UserRole'
    type: object
  v1.UserListItemResp:
    properties:
      account:
        type: string
      created_at:
        type: string
      id:
        type: string
      last_access:
        type: string
      role:
        $ref: '#/definitions/consts.UserRole'
    type: object
  v1.UserListResp:
    properties:
      users:
        items:
          $ref: '#/definitions/v1.UserListItemResp'
        type: array
    type: object
  v1.WechatAppInfoResp:
    properties:
      disclaimer_content:
        type: string
      feedback_enable:
        type: boolean
      feedback_type:
        items:
          type: string
        type: array
      wechat_app_is_enabled:
        type: boolean
    type: object
info:
  contact: {}
  description: panda-wiki API documentation
  title: panda-wiki API
  version: "1.0"
paths:
  /api/v1/app:
    delete:
      consumes:
      - application/json
      description: Delete app
      parameters:
      - description: kb id
        in: query
        name: kb_id
        required: true
        type: string
      - description: app id
        in: query
        name: id
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Delete app
      tags:
      - app
    put:
      consumes:
      - application/json
      description: Update app
      parameters:
      - description: id
        in: query
        name: id
        required: true
        type: string
      - description: app
        in: body
        name: app
        required: true
        schema:
          $ref: '#/definitions/domain.UpdateAppReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Update app
      tags:
      - app
  /api/v1/app/detail:
    get:
      consumes:
      - application/json
      description: Get app detail
      parameters:
      - description: kb id
        in: query
        name: kb_id
        required: true
        type: string
      - description: app type
        in: query
        name: type
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.AppDetailResp'
              type: object
      security:
      - bearerAuth: []
      summary: Get app detail
      tags:
      - app
  /api/v1/auth/delete:
    delete:
      consumes:
      - application/json
      description: 删除授权信息
      operationId: v1-OpenAuthDelete
      parameters:
      - in: query
        name: id
        type: integer
      - in: query
        name: kb_id
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: 删除授权信息
      tags:
      - Auth
  /api/v1/auth/get:
    get:
      consumes:
      - application/json
      description: 获取授权信息
      operationId: v1-OpenAuthGet
      parameters:
      - in: query
        name: kb_id
        type: string
      - enum:
        - dingtalk
        - feishu
        - wecom
        - oauth
        - github
        - cas
        - ldap
        - widget
        - dingtalk_bot
        - feishu_bot
        - lark_bot
        - wechat_bot
        - wecom_ai_bot
        - wechat_service_bot
        - discord_bot
        - wechat_official_account
        - openai_api
        - mcp_server
        in: query
        name: source_type
        required: true
        type: string
        x-enum-varnames:
        - SourceTypeDingTalk
        - SourceTypeFeishu
        - SourceTypeWeCom
        - SourceTypeOAuth
        - SourceTypeGitHub
        - SourceTypeCAS
        - SourceTypeLDAP
        - SourceTypeWidget
        - SourceTypeDingtalkBot
        - SourceTypeFeishuBot
        - SourceTypeLarkBot
        - SourceTypeWechatBot
        - SourceTypeWecomAIBot
        - SourceTypeWechatServiceBot
        - SourceTypeDiscordBot
        - SourceTypeWechatOfficialAccount
        - SourceTypeOpenAIAPI
        - SourceTypeMcpServer
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthGetResp'
              type: object
      security:
      - bearerAuth: []
      summary: 获取授权信息
      tags:
      - Auth
  /api/v1/auth/set:
    post:
      consumes:
      - application/json
      description: 设置授权信息
      operationId: v1-OpenAuthSet
      parameters:
      - description: para
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_api_auth_v1.AuthSetReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: 设置授权信息
      tags:
      - Auth
  /api/v1/comment:
    get:
      consumes:
      - application/json
      description: GetCommentModeratedList
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - in: query
        minimum: 1
        name: page
        required: true
        type: integer
      - in: query
        minimum: 1
        name: per_page
        required: true
        type: integer
      - enum:
        - -1
        - 0
        - 1
        format: int32
        in: query
        name: status
        type: integer
        x-enum-varnames:
        - CommentStatusReject
        - CommentStatusPending
        - CommentStatusAccepted
      produces:
      - application/json
      responses:
        "200":
          description: conversationList
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.CommentLists'
              type: object
      summary: GetCommentModeratedList
      tags:
      - comment
  /api/v1/comment/delete:
    post:
      consumes:
      - application/json
      description: CommentDelete
      parameters:
      - description: CommentDeleteReq
        in: body
        name: req
        required: true
        schema:
          $ref: '#/definitions/domain.CommentDeleteReq'
      produces:
      - application/json
      responses:
        "200":
          description: total
          schema:
            $ref: '#/definitions/domain.Response'
      summary: CommentDelete
      tags:
      - comment
  /api/v1/conversation:
    get:
      consumes:
      - application/json
      description: get conversation list
      parameters:
      - in: query
        name: app_id
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      - in: query
        minimum: 1
        name: page
        required: true
        type: integer
      - in: query
        minimum: 1
        name: per_page
        required: true
        type: integer
      - in: query
        name: remote_ip
        type: string
      - in: query
        name: subject
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.ConversationListItems'
              type: object
      summary: get conversation list
      tags:
      - conversation
  /api/v1/conversation/detail:
    get:
      consumes:
      - application/json
      description: get conversation detail
      parameters:
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.ConversationDetailResp'
              type: object
      summary: get conversation detail
      tags:
      - conversation
  /api/v1/conversation/message/detail:
    get:
      consumes:
      - application/json
      description: Get message detail
      parameters:
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.ConversationMessage'
              type: object
      summary: Get message detail
      tags:
      - Message
  /api/v1/conversation/message/list:
    get:
      consumes:
      - application/json
      description: GetMessageFeedBackList
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - in: query
        minimum: 1
        name: page
        required: true
        type: integer
      - in: query
        minimum: 1
        name: per_page
        required: true
        type: integer
      produces:
      - application/json
      responses:
        "200":
          description: MessageList
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.PaginatedResult-array_domain_ConversationMessageListItem'
              type: object
      summary: GetMessageFeedBackList
      tags:
      - Message
  /api/v1/crawler/export:
    post:
      consumes:
      - application/json
      description: CrawlerExport
      parameters:
      - description: Scrape
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.CrawlerExportReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.CrawlerExportResp'
              type: object
      summary: CrawlerExport
      tags:
      - crawler
  /api/v1/crawler/parse:
    post:
      consumes:
      - application/json
      description: 解析文档树
      parameters:
      - description: Scrape
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.CrawlerParseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.CrawlerParseResp'
              type: object
      summary: 解析文档树
      tags:
      - crawler
  /api/v1/crawler/result:
    get:
      consumes:
      - application/json
      description: Retrieve the result of a previously started scraping task
      parameters:
      - description: Crawler Result Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.CrawlerResultReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.CrawlerResultResp'
              type: object
      summary: Get Crawler Result
      tags:
      - crawler
  /api/v1/crawler/results:
    post:
      consumes:
      - application/json
      description: Retrieve the results of a previously started scraping task
      parameters:
      - description: Crawler Results Request
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.CrawlerResultsReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.CrawlerResultsResp'
              type: object
      summary: Get Crawler Results
      tags:
      - crawler
  /api/v1/creation/tab-complete:
    post:
      consumes:
      - application/json
      description: Tab-based document completion similar to AI coding's FIM (Fill
        in Middle)
      parameters:
      - description: tab completion request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.CompleteReq'
      produces:
      - application/json
      responses:
        "200":
          description: success
          schema:
            type: string
      summary: Tab-based document completion
      tags:
      - creation
  /api/v1/creation/text:
    post:
      consumes:
      - application/json
      description: Text creation
      parameters:
      - description: text creation request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.TextReq'
      produces:
      - application/json
      responses:
        "200":
          description: success
          schema:
            type: string
      summary: Text creation
      tags:
      - creation
  /api/v1/file/upload:
    post:
      consumes:
      - multipart/form-data
      description: Upload File
      parameters:
      - description: File
        in: formData
        name: file
        required: true
        type: file
      - description: Knowledge Base ID
        in: formData
        name: kb_id
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.ObjectUploadResp'
      summary: Upload File
      tags:
      - file
  /api/v1/file/upload/anydoc:
    post:
      consumes:
      - multipart/form-data
      description: Upload Anydoc File
      parameters:
      - description: File
        in: formData
        name: file
        required: true
        type: file
      - description: File Path
        in: formData
        name: path
        required: true
        type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.AnydocUploadResp'
      summary: Upload Anydoc File
      tags:
      - file
  /api/v1/file/upload/url:
    post:
      consumes:
      - application/json
      description: Upload File By Url
      parameters:
      - description: Request Body
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.UploadByUrlReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.ObjectUploadResp'
              type: object
      summary: Upload File By Url
      tags:
      - file
  /api/v1/knowledge_base:
    post:
      consumes:
      - application/json
      description: CreateKnowledgeBase
      parameters:
      - description: CreateKnowledgeBase Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.CreateKnowledgeBaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: CreateKnowledgeBase
      tags:
      - knowledge_base
  /api/v1/knowledge_base/detail:
    delete:
      consumes:
      - application/json
      description: DeleteKnowledgeBase
      parameters:
      - description: Knowledge Base ID
        in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: DeleteKnowledgeBase
      tags:
      - knowledge_base
    get:
      consumes:
      - application/json
      description: GetKnowledgeBaseDetail
      parameters:
      - description: Knowledge Base ID
        in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.KnowledgeBaseDetail'
              type: object
      security:
      - bearerAuth: []
      summary: GetKnowledgeBaseDetail
      tags:
      - knowledge_base
    put:
      consumes:
      - application/json
      description: UpdateKnowledgeBase
      parameters:
      - description: UpdateKnowledgeBase Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.UpdateKnowledgeBaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: UpdateKnowledgeBase
      tags:
      - knowledge_base
  /api/v1/knowledge_base/list:
    get:
      consumes:
      - application/json
      description: GetKnowledgeBaseList
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.KnowledgeBaseListItem'
                  type: array
              type: object
      summary: GetKnowledgeBaseList
      tags:
      - knowledge_base
  /api/v1/knowledge_base/release:
    post:
      consumes:
      - application/json
      description: CreateKBRelease
      parameters:
      - description: CreateKBRelease Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.CreateKBReleaseReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: CreateKBRelease
      tags:
      - knowledge_base
  /api/v1/knowledge_base/release/list:
    get:
      consumes:
      - application/json
      description: GetKBReleaseList
      parameters:
      - description: Knowledge Base ID
        in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.GetKBReleaseListResp'
              type: object
      summary: GetKBReleaseList
      tags:
      - knowledge_base
  /api/v1/knowledge_base/user/delete:
    delete:
      consumes:
      - application/json
      description: Remove user from knowledge base
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - in: query
        name: user_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: KBUserDelete
      tags:
      - knowledge_base
  /api/v1/knowledge_base/user/invite:
    post:
      consumes:
      - application/json
      description: Invite user to knowledge base
      parameters:
      - description: Invite User Request
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.KBUserInviteReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: KBUserInvite
      tags:
      - knowledge_base
  /api/v1/knowledge_base/user/list:
    get:
      consumes:
      - application/json
      description: KBUserList
      parameters:
      - description: Knowledge Base ID
        in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/v1.KBUserListItemResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: KBUserList
      tags:
      - knowledge_base
  /api/v1/knowledge_base/user/update:
    patch:
      consumes:
      - application/json
      description: Update user permission in knowledge base
      parameters:
      - description: Update User Permission Request
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.KBUserUpdateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: KBUserUpdate
      tags:
      - knowledge_base
  /api/v1/model:
    post:
      consumes:
      - application/json
      description: create model
      parameters:
      - description: create model request
        in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/domain.CreateModelReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: create model
      tags:
      - model
    put:
      consumes:
      - application/json
      description: update model
      parameters:
      - description: update model request
        in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/domain.UpdateModelReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      tags:
      - model
  /api/v1/model/check:
    post:
      consumes:
      - application/json
      description: check model
      parameters:
      - description: check model request
        in: body
        name: model
        required: true
        schema:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.CheckModelReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.CheckModelResp'
              type: object
      summary: check model
      tags:
      - model
  /api/v1/model/list:
    get:
      consumes:
      - application/json
      description: get model list
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_domain.ModelListItem'
              type: object
      summary: get model list
      tags:
      - model
  /api/v1/model/mode-setting:
    get:
      consumes:
      - application/json
      description: get current model mode setting including mode, API key and chat
        model
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.ModelModeSetting'
              type: object
      summary: get model mode setting
      tags:
      - model
  /api/v1/model/provider/supported:
    post:
      consumes:
      - application/json
      description: get provider supported model list
      parameters:
      - description: get supported model list request
        in: body
        name: params
        required: true
        schema:
          $ref: '#/definitions/domain.GetProviderModelListReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.GetProviderModelListResp'
              type: object
      summary: get provider supported model list
      tags:
      - model
  /api/v1/model/switch-mode:
    post:
      consumes:
      - application/json
      description: switch model mode between manual and auto
      parameters:
      - description: switch mode request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.SwitchModeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.SwitchModeResp'
              type: object
      summary: switch mode
      tags:
      - model
  /api/v1/nav/add:
    post:
      consumes:
      - application/json
      description: Add Nav
      parameters:
      - description: Params
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.NavAddReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.PWResponse'
      security:
      - bearerAuth: []
      summary: 添加分栏
      tags:
      - Nav
  /api/v1/nav/delete:
    delete:
      consumes:
      - application/json
      description: DeleteNav Nav
      parameters:
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.PWResponse'
      security:
      - bearerAuth: []
      summary: 删除栏目
      tags:
      - Nav
  /api/v1/nav/list:
    get:
      consumes:
      - application/json
      description: Get Nav List
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/v1.NavListResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: 获取分栏列表
      tags:
      - Nav
  /api/v1/nav/move:
    post:
      consumes:
      - application/json
      description: Move Nav
      parameters:
      - description: Params
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.NavMoveReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.PWResponse'
      security:
      - bearerAuth: []
      summary: 移动栏目
      tags:
      - Nav
  /api/v1/nav/update:
    patch:
      consumes:
      - application/json
      description: Update Nav
      parameters:
      - description: Params
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.NavUpdateReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.PWResponse'
      security:
      - bearerAuth: []
      summary: 更新栏目信息
      tags:
      - Nav
  /api/v1/node:
    post:
      consumes:
      - application/json
      description: Create Node
      parameters:
      - description: Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.CreateNodeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  additionalProperties:
                    type: string
                  type: object
              type: object
      security:
      - bearerAuth: []
      summary: Create Node
      tags:
      - node
  /api/v1/node/action:
    post:
      consumes:
      - application/json
      description: Node Action
      parameters:
      - description: Action
        in: body
        name: action
        required: true
        schema:
          $ref: '#/definitions/domain.NodeActionReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  additionalProperties:
                    type: string
                  type: object
              type: object
      security:
      - bearerAuth: []
      summary: Node Action
      tags:
      - node
  /api/v1/node/batch_move:
    post:
      consumes:
      - application/json
      description: Batch Move Node
      parameters:
      - description: Batch Move Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.BatchMoveReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Batch Move Node
      tags:
      - node
  /api/v1/node/detail:
    get:
      consumes:
      - application/json
      description: Get Node Detail
      parameters:
      - in: query
        name: format
        type: string
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.NodeDetailResp'
              type: object
      security:
      - bearerAuth: []
      summary: Get Node Detail
      tags:
      - node
    put:
      consumes:
      - application/json
      description: Update Node Detail
      parameters:
      - description: Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.UpdateNodeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Update Node Detail
      tags:
      - node
  /api/v1/node/list:
    get:
      consumes:
      - application/json
      description: Get Node List
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - in: query
        name: nav_id
        type: string
      - in: query
        name: search
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.NodeListItemResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: Get Node List
      tags:
      - node
  /api/v1/node/list/group/nav:
    get:
      consumes:
      - application/json
      description: Get unpublished or unstudied document list grouped by nav
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: nav_ids
        type: array
      - in: query
        name: search
        type: string
      - enum:
        - released
        - unpublished
        - unstudied
        in: query
        name: status
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/github_com_chaitin_panda-wiki_api_node_v1.NodeListGroupNavResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: Get Node List Grouped by Nav
      tags:
      - node
  /api/v1/node/move:
    post:
      consumes:
      - application/json
      description: Move Node
      parameters:
      - description: Move Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.MoveNodeReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Move Node
      tags:
      - node
  /api/v1/node/move/nav:
    post:
      consumes:
      - application/json
      description: Move node (and all its descendants if folder) to a different nav
      parameters:
      - description: Move Node Nav
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.NodeMoveNavReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Move Node to Nav
      tags:
      - node
  /api/v1/node/permission:
    get:
      consumes:
      - application/json
      description: 文档授权信息获取
      operationId: v1-NodePermission
      parameters:
      - in: query
        name: id
        required: true
        type: string
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.NodePermissionResp'
              type: object
      security:
      - bearerAuth: []
      summary: 文档授权信息获取
      tags:
      - NodePermission
  /api/v1/node/permission/edit:
    patch:
      consumes:
      - application/json
      description: 文档授权信息更新
      operationId: v1-NodePermissionEdit
      parameters:
      - description: para
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.NodePermissionEditReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.NodePermissionEditResp'
              type: object
      security:
      - bearerAuth: []
      summary: 文档授权信息更新
      tags:
      - NodePermission
  /api/v1/node/recommend_nodes:
    get:
      consumes:
      - application/json
      description: Recommend Nodes
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: nav_ids
        type: array
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: node_ids
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.RecommendNodeListResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: Recommend Nodes
      tags:
      - node
  /api/v1/node/restudy:
    post:
      consumes:
      - application/json
      description: 文档重新学习
      operationId: v1-NodeRestudy
      parameters:
      - description: para
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.NodeRestudyReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.NodeRestudyResp'
              type: object
      security:
      - bearerAuth: []
      summary: 文档重新学习
      tags:
      - Node
  /api/v1/node/stats:
    get:
      consumes:
      - application/json
      description: Get Node Statistics
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.NodeStatsResp'
              type: object
      security:
      - bearerAuth: []
      summary: Get Node Statistics
      tags:
      - node
  /api/v1/node/summary:
    post:
      consumes:
      - application/json
      description: Summary Node
      parameters:
      - description: Summary Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.NodeSummaryReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: Summary Node 异步后台生成
      tags:
      - node
  /api/v1/node/summary/stream:
    post:
      consumes:
      - application/json
      description: Stream Summary Node for single document
      parameters:
      - description: Summary Node
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/domain.NodeSummaryReq'
      produces:
      - text/event-stream
      responses:
        "200":
          description: SSE stream
          schema:
            type: string
      security:
      - bearerAuth: []
      summary: Stream Summary Node
      tags:
      - node
  /api/v1/stat/browsers:
    get:
      consumes:
      - application/json
      description: 客户端统计
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.HotBrowser'
              type: object
      security:
      - bearerAuth: []
      summary: 客户端统计
      tags:
      - stat
  /api/v1/stat/conversation_distribution:
    get:
      consumes:
      - application/json
      description: 问答来源
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/v1.StatConversationDistributionResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: 问答来源
      tags:
      - stat
  /api/v1/stat/count:
    get:
      consumes:
      - application/json
      description: 全局统计
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.StatCountResp'
              type: object
      security:
      - bearerAuth: []
      summary: 全局统计
      tags:
      - stat
  /api/v1/stat/geo_count:
    get:
      consumes:
      - application/json
      description: 用户地理分布
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      security:
      - bearerAuth: []
      summary: 用户地理分布
      tags:
      - stat
  /api/v1/stat/hot_pages:
    get:
      consumes:
      - application/json
      description: 热门文档
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.HotPage'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: 热门文档
      tags:
      - stat
  /api/v1/stat/instant_count:
    get:
      consumes:
      - application/json
      description: GetInstantCount
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.InstantCountResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: GetInstantCount
      tags:
      - stat
  /api/v1/stat/instant_pages:
    get:
      consumes:
      - application/json
      description: GetInstantPages
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.InstantPageResp'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: GetInstantPages
      tags:
      - stat
  /api/v1/stat/referer_hosts:
    get:
      consumes:
      - application/json
      description: 来源域名
      parameters:
      - enum:
        - 1
        - 7
        - 30
        - 90
        in: query
        name: day
        type: integer
        x-enum-varnames:
        - StatDay1
        - StatDay7
        - StatDay30
        - StatDay90
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  items:
                    $ref: '#/definitions/domain.HotRefererHost'
                  type: array
              type: object
      security:
      - bearerAuth: []
      summary: 来源域名
      tags:
      - stat
  /api/v1/user:
    get:
      consumes:
      - application/json
      description: GetUser
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v1.UserInfoResp'
      summary: GetUser
      tags:
      - user
  /api/v1/user/create:
    post:
      consumes:
      - application/json
      description: CreateUser
      parameters:
      - description: CreateUser Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.CreateUserReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.CreateUserResp'
              type: object
      summary: CreateUser
      tags:
      - user
  /api/v1/user/delete:
    delete:
      consumes:
      - application/json
      description: DeleteUser
      parameters:
      - in: query
        name: user_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: DeleteUser
      tags:
      - user
  /api/v1/user/list:
    get:
      consumes:
      - application/json
      description: ListUsers
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/v1.UserListResp'
              type: object
      summary: ListUsers
      tags:
      - user
  /api/v1/user/login:
    post:
      consumes:
      - application/json
      description: Login
      parameters:
      - description: Login Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.LoginReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/v1.LoginResp'
      summary: Login
      tags:
      - user
  /api/v1/user/reset_password:
    put:
      consumes:
      - application/json
      description: ResetPassword
      parameters:
      - description: ResetPassword Request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.ResetPasswordReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: ResetPassword
      tags:
      - user
  /share/v1/app/web/info:
    get:
      consumes:
      - application/json
      description: GetAppInfo
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.AppInfoResp'
              type: object
      summary: GetAppInfo
      tags:
      - share_app
  /share/v1/app/wechat/info:
    get:
      consumes:
      - application/json
      description: WechatAppInfo
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.WechatAppInfoResp'
              type: object
      summary: WechatAppInfo
      tags:
      - share_chat
  /share/v1/app/wechat/service/answer:
    get:
      consumes:
      - application/json
      description: GetWechatAnswer
      parameters:
      - description: conversation id
        in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: GetWechatAnswer
      tags:
      - Wechat
  /share/v1/app/widget/info:
    get:
      consumes:
      - application/json
      description: GetWidgetAppInfo
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: GetWidgetAppInfo
      tags:
      - share_app
  /share/v1/auth/get:
    get:
      consumes:
      - application/json
      description: AuthGet
      operationId: v1-AuthGet
      parameters:
      - description: kb_id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGetResp'
              type: object
      summary: AuthGet
      tags:
      - share_auth
  /share/v1/auth/github:
    post:
      consumes:
      - application/json
      description: GitHub登录
      operationId: v1-AuthGitHub
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: para
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_api_share_v1.AuthGitHubResp'
              type: object
      summary: GitHub登录
      tags:
      - ShareAuth
  /share/v1/auth/login/simple:
    post:
      consumes:
      - application/json
      description: AuthLoginSimple
      operationId: v1-AuthLoginSimple
      parameters:
      - description: kb_id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: para
        in: body
        name: param
        required: true
        schema:
          $ref: '#/definitions/v1.AuthLoginSimpleReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: AuthLoginSimple
      tags:
      - share_auth
  /share/v1/captcha/challenge:
    post:
      consumes:
      - application/json
      description: CreateCaptcha
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/gocap.ChallengeData'
      summary: CreateCaptcha
      tags:
      - share_captcha
  /share/v1/captcha/redeem:
    post:
      consumes:
      - application/json
      description: RedeemCaptcha
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: request
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/consts.RedeemCaptchaReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/gocap.VerificationResult'
      summary: RedeemCaptcha
      tags:
      - share_captcha
  /share/v1/chat/completions:
    post:
      consumes:
      - application/json
      description: OpenAI API compatible chat completions endpoint
      parameters:
      - description: Knowledge Base ID
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: OpenAI API request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.OpenAICompletionsRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.OpenAICompletionsResponse'
        "400":
          description: Bad Request
          schema:
            $ref: '#/definitions/domain.OpenAIErrorResponse'
      summary: ChatCompletions
      tags:
      - share_chat
  /share/v1/chat/feedback:
    post:
      consumes:
      - application/json
      description: Process user feedback for chat conversations
      parameters:
      - description: feedback request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.FeedbackRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: Handle chat feedback
      tags:
      - share_chat
  /share/v1/chat/message:
    post:
      consumes:
      - application/json
      description: ChatMessage
      parameters:
      - description: app type
        in: query
        name: app_type
        required: true
        type: string
      - description: request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.ChatRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: ChatMessage
      tags:
      - share_chat
  /share/v1/chat/search:
    post:
      consumes:
      - application/json
      description: ChatSearch
      parameters:
      - description: request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.ChatSearchReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.ChatSearchResp'
              type: object
      summary: ChatSearch
      tags:
      - share_chat_search
  /share/v1/chat/widget:
    post:
      consumes:
      - application/json
      description: ChatWidget
      parameters:
      - description: app type
        in: query
        name: app_type
        required: true
        type: string
      - description: request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.ChatRequest'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: ChatWidget
      tags:
      - Widget
  /share/v1/chat/widget/search:
    post:
      consumes:
      - application/json
      description: WidgetSearch
      parameters:
      - description: Comment
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.ChatSearchReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/domain.ChatSearchResp'
              type: object
      summary: WidgetSearch
      tags:
      - Widget
  /share/v1/comment:
    post:
      consumes:
      - application/json
      description: CreateComment
      parameters:
      - description: Comment
        in: body
        name: comment
        required: true
        schema:
          $ref: '#/definitions/domain.CommentReq'
      produces:
      - application/json
      responses:
        "200":
          description: CommentID
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  type: string
              type: object
      summary: CreateComment
      tags:
      - share_comment
  /share/v1/comment/list:
    get:
      consumes:
      - application/json
      description: GetCommentList
      parameters:
      - description: nodeID
        in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: CommentList
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/share.ShareCommentLists'
              type: object
      summary: GetCommentList
      tags:
      - share_comment
  /share/v1/common/file/upload:
    post:
      consumes:
      - multipart/form-data
      description: 前台用户上传文件,目前只支持图片文件上传
      operationId: share-FileUpload
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: File
        in: formData
        name: file
        required: true
        type: file
      - description: captcha_token
        in: formData
        name: captcha_token
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_api_share_v1.FileUploadResp'
              type: object
      summary: 文件上传
      tags:
      - ShareFile
  /share/v1/common/file/upload/url:
    post:
      consumes:
      - application/json
      description: 前台用户上传文件,目前只支持图片文件上传
      operationId: share-FileUploadByUrl
      parameters:
      - description: body
        in: body
        name: body
        required: true
        schema:
          $ref: '#/definitions/v1.ShareFileUploadUrlReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.ShareFileUploadUrlResp'
              type: object
      summary: 文件上传
      tags:
      - ShareFile
  /share/v1/conversation/detail:
    get:
      consumes:
      - application/json
      description: GetConversationDetail
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: conversation id
        in: query
        name: id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/domain.ShareConversationDetailResp'
              type: object
      summary: GetConversationDetail
      tags:
      - share_conversation
  /share/v1/nav/list:
    get:
      consumes:
      - application/json
      description: ShareNavList
      parameters:
      - in: query
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: 前台获取栏目列表
      tags:
      - share_nav
  /share/v1/node/detail:
    get:
      consumes:
      - application/json
      description: GetNodeDetail
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      - description: node id
        in: query
        name: id
        required: true
        type: string
      - description: format
        in: query
        name: format
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.Response'
            - properties:
                data:
                  $ref: '#/definitions/v1.ShareNodeDetailResp'
              type: object
      summary: GetNodeDetail
      tags:
      - share_node
  /share/v1/node/list:
    get:
      consumes:
      - application/json
      description: ShareNodeList
      parameters:
      - description: kb id
        in: header
        name: X-KB-ID
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: ShareNodeList
      tags:
      - share_node
  /share/v1/openapi/github/callback:
    get:
      consumes:
      - application/json
      description: GitHub回调
      operationId: v1-GitHubCallback
      parameters:
      - in: query
        name: code
        type: string
      - in: query
        name: state
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/github_com_chaitin_panda-wiki_api_share_v1.GitHubCallbackResp'
              type: object
      summary: GitHub回调
      tags:
      - ShareOpenapi
  /share/v1/openapi/lark/bot/{kb_id}:
    post:
      consumes:
      - application/json
      description: Lark机器人请求
      operationId: v1-LarkBot
      parameters:
      - description: 知识库ID
        in: path
        name: kb_id
        required: true
        type: string
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.PWResponse'
      summary: Lark机器人请求
      tags:
      - ShareOpenapi
  /share/v1/stat/page:
    post:
      consumes:
      - application/json
      description: RecordPage
      parameters:
      - description: request
        in: body
        name: request
        required: true
        schema:
          $ref: '#/definitions/domain.StatPageReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            $ref: '#/definitions/domain.Response'
      summary: RecordPage
      tags:
      - share_stat
securityDefinitions:
  bearerAuth:
    description: Type "Bearer" + a space + your token to authorize
    in: header
    name: Authorization
    type: apiKey
swagger: "2.0"

---

--- METRICS ---
- Files Extracted: 5
- Estimated Token Budget: ~115893 tokens
- Canonical Reference: https://codewiki.google/github.com/chaitin/PandaWiki
