diff --git a/.github/workflows/compile-and-deploy.yml b/.github/workflows/compile-and-deploy.yml deleted file mode 100644 index 7b77663..0000000 --- a/.github/workflows/compile-and-deploy.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: compile and deploy - -on: - workflow_dispatch: - -jobs: - complie: - name: compile - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - token: ${{ secrets.GH_TOKEN }} - ref: ${{ github.ref_name }} - - name: Set up Python - uses: actions/setup-python@v3 - with: - python-version: '3.x' - - name: Install dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements/requirements.txt - pip install mike==1.1.2 - python -m pip install --upgrade pip setuptools wheel - - name: Config Git - run: | - git config user.name "$(git log -n 1 --pretty=format:%an)" - git config user.email "$(git log -n 1 --pretty=format:%ae)" - - name: Build - run: | - git fetch origin deploy:deploy - mike deploy --push --branch deploy --rebase ${{ github.ref_name }} - mike set-default -b deploy ${{ github.ref_name }} - - deploy: - name: deploy - runs-on: ubuntu-latest - needs: complie - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.GH_TOKEN }} - ref: deploy - - name: Install ossutil - run: | - sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash - - name: Deploy OSS - env: - ACCESS_KEY_ID: ${{ secrets.SQLBOT_OSS_AK }} - ACCESS_KEY_SECRET: ${{ secrets.SQLBOT_OSS_SK }} - ACCESS_KEY_BUCKET: ${{ secrets.SQLBOT_OSS_BUCKET }} - run: | - ossutil cp -r -f ./${{ github.ref_name }}/ oss://$ACCESS_KEY_BUCKET/ --access-key-id=$ACCESS_KEY_ID --access-key-secret=$ACCESS_KEY_SECRET --endpoint=oss-cn-zhangjiakou.aliyuncs.com --exclude '.git*' diff --git a/.github/workflows/ssh-deploy.yml b/.github/workflows/ssh-deploy.yml new file mode 100644 index 0000000..ecd0831 --- /dev/null +++ b/.github/workflows/ssh-deploy.yml @@ -0,0 +1,39 @@ +# This is a basic workflow to help you get started with Actions + +name: Deploy Docs to Server + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "master" branch + push: + branches: [ "deploy" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + ssh-deploy: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - name: ssh deploy + uses: easingthemes/ssh-deploy@v2.2.11 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }} + REMOTE_HOST: dataease.io + REMOTE_USER: root + SOURCE: ./ + TARGET: /opt/sqlbot/docs + # Arguments to pass to rsync + ARGS: "-rltgoDzvO --delete" + # An array of folder to exclude + EXCLUDE: ".git/" diff --git a/docs/installation/installation b/.nojekyll similarity index 100% rename from docs/installation/installation rename to .nojekyll diff --git a/docs/changelog.md b/docs/changelog.md deleted file mode 100644 index e736db2..0000000 --- a/docs/changelog.md +++ /dev/null @@ -1,225 +0,0 @@ -## 1 版本说明 - -!!! Abstract "" - **版本号说明:** 像其它优秀开源项目一样,MaxKB 将保持每月发布一个新的功能版本,功能版本中如遇较为紧急或严重的 Bug,将及时推出 Bug 修复的小版本。 - **MaxKB 版本号命名规则为:** v 大版本.功能版本. Bug 修复版本,示例如下: - - - v2.0.1 是 v2.0.0 之后的 Bug 修复版本 - - v2.1.0 是 v2.0.0 之后的功能版本 - -## 2 更新内容 - -### v1.0.0 - -2025 年 7 月 17 日 - -
| 模块 | -功能项 | -功能描述 | -
| 智能问数 | -应用管理 | -支持创建简单应用、高级编排应用 | -
| 支持以多级目录的方式分类管理应用 | -||
| 支持控制应用访问行为,例如允许公开访问、禁止公开访问 | -||
| 支持应用的导入与导出 | -||
| 高级编排 | -支持创建简单应用、高级编排应用 | -|
| - 工作流编排应用支持 AI 对话、知识库检索、问题优化、判断、指定回复、文档内容总结、文本转语音、语音转文本、图片理解、图片生成、表单收集、MCP 等节点 - | -||
| 支持提问时上传文本、图片、语音等类型文件 | -||
| 支持在工作流中引用工具 | -||
| 支持在工作流中嵌套其它应用 | -||
| 支持多出多进和并行执行 | -||
| 支持全局变量 | -||
| 支持自动保存以及恢复历史版本 | -||
| 支持语音输入自动发送和自动播放 | -||
| 支持自定义思考过程的标签,配置是否输出思考过程 | -||
| 问答嵌入 | -支持问答嵌入第三方应用 | -|
| 访问限制 | -支持按客户端限制每天提问次数限制 | -|
| 支持嵌入第三方访问白名单设置 | -||
| 显示设置 | -支持提问时显示知识来源 | -|
| 支持设置中问答页面的语言设置 | -||
| 统计看板 | -支持按时间统计用户数、提问次数、Tokens 总数、用户满意度 | -|
| 支持用户数、提问次数、Tokens 总数和用户满意度指标的趋势统计 | -||
| 数据源 | -知识库管理 | -支持通用型文件知识库,Web 站点文档知识库 | -
| 文档管理 | -支持上传文本文件文档,包括 Markdown、TXT、DOCX、PDF、HTML、XLSX、XLS、CSV 格式 | -|
| 支持上传 QA 问答对,并提供 QA 问答对模板 | -||
| 支持文本文件和离线图片 ZIP 格式的上传和导出 | -||
| 支持知识库文档的启用状态调整,开启或关闭文档 | -||
| 支持知识库文档的命令处理方式,如模型优化、直接回答 | -||
| 支持知识库导出文档 | -||
| 文档分段 | -支持文档智能分段、高级分段方式 | -|
| 支持自定义正则表达式分段 | -||
| 支持知识库文档分段迁移 | -||
| 问题管理 | -支持问题和文档分段关联 | -|
| 支持知识库自动生成关联问题 | -||
| 仪表板 | -工具管理 | -支持通过 Python 函数,自定义工具 | -
| 支持从工具商店中导入创建 | -||
| 支持工具多级目录分类管理 | -||
| 支持工具的导出和导入 | -||
| 设置 | -模型供应商对接 | -支持对接主流的大模型,包括包括本地私有大模型(Llama 3 / Qwen 2 等)、国内公共大模型(通义千问 / 智谱 AI / 百度千帆 / Kimi / DeepSeek 等)和国外公共大模型(OpenAI / Azure OpenAI / Gemini 等) | -
| 支持大语言模型、向量化模型、重排模型、语音识别、语音合成、图片理解和图片生成模型 | -||
| 支持自定义模型参数设置 | -||
| 支持模型的权限 | -||
| 系统管理 | -系统语言 | -支持简体中文、繁体中文和英文三种语言 | -
| 用户管理 | -支持用户创建/删除、启用/禁止、密码修改 | -|
| 支持 LDAP、CAS、OIDC 、OAuth2 对接(X-Pack) | -||
| 支持企业微信、钉钉、飞书扫码登录(X-Pack) | -||
| 工作空间 | -支持按工作空间方式对用户、资源进行独立管理(X-Pack) | -|
| 角色管理 | -支持系统管理员、工作空间管理员、普通用户内置角色 | -|
| 支持自定义角色并关联权限控制以及用户成员(X-Pack) | -||
| 资源管理 | -支持查看应用、知识库、工具和模型等所有系统资源(X-Pack) | -|
| 资源授权 | -支持对应用、知识库、工具和模型等所有系统资源按角色或自定义授权 | -|
| 共享资源 | -支持创建和管理知识库、工具、模型等共享资源(X-Pack) | -|
| 对话用户 | -支持创建和同步对话用户(X-Pack) | -|
| 支持对话用户组的创建和成员管理(X-Pack) | -||
| 支持通过 LDAP、CAS、OIDC、OAuth2 等方式进行对话用户的登录认证(X-Pack) | -||
| 系统设置 | -支持对接邮箱 | -|
| 支持自定义系统 Logo 、登录 Logo、主题配色、登录背景图、系统名称和欢迎语以及系统帮助链接(X-Pack) | -||
| 支持通过 LDAP、CAS、OIDC、OAuth2、扫码登录等方式进行登录认证(X-Pack) | -||
| 操作日志 | -支持查看所有用户的操作详情(X-Pack) | -
0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o