basePath: /
definitions:
  anydoc.Child:
    properties:
      children:
        items:
          $ref: '#/definitions/anydoc.Child'
        type: array
      value:
        $ref: '#/definitions/anydoc.Value'
    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
    - file
    - epub
    - yuque
    - siyuan
    - mindoc
    - wikijs
    - confluence
    type: string
    x-enum-varnames:
    - CrawlerSourceUrl
    - CrawlerSourceRSS
    - CrawlerSourceSitemap
    - CrawlerSourceNotion
    - CrawlerSourceFeishu
    - 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
    format: int32
    type: integer
    x-enum-comments:
      LicenseEditionContributor: 联创版
      LicenseEditionEnterprise: 企业版
      LicenseEditionFree: 开源版
    x-enum-descriptions:
    - 开源版
    - 联创版
    - 企业版
    x-enum-varnames:
    - LicenseEditionFree
    - LicenseEditionContributor
    - LicenseEditionEnterprise
  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.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
    type: string
    x-enum-varnames:
    - SourceTypeDingTalk
    - SourceTypeFeishu
    - SourceTypeWeCom
    - SourceTypeOAuth
    - SourceTypeGitHub
    - SourceTypeCAS
    - SourceTypeLDAP
    - SourceTypeWidget
    - SourceTypeDingtalkBot
    - SourceTypeFeishuBot
    - SourceTypeLarkBot
    - SourceTypeWechatBot
    - SourceTypeWecomAIBot
    - SourceTypeWechatServiceBot
    - SourceTypeDiscordBot
    - SourceTypeWechatOfficialAccount
    - SourceTypeOpenAIAPI
  consts.StatDay:
    enum:
    - 1
    - 7
    - 30
    - 90
    type: integer
    x-enum-varnames:
    - StatDay1
    - StatDay7
    - StatDay30
    - StatDay90
  consts.UserKBPermission:
    enum:
    - ""
    - full_control
    - doc_manage
    - data_operate
    type: string
    x-enum-comments:
      UserKBPermissionDataOperate: 数据运营
      UserKBPermissionDocManage: 文档管理
      UserKBPermissionFullControl: 完全控制
      UserKBPermissionNull: 无权限
    x-enum-descriptions:
    - 无权限
    - 完全控制
    - 文档管理
    - 数据运营
    x-enum-varnames:
    - UserKBPermissionNull
    - 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:
      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
      auto_sitemap:
        type: boolean
      body_code:
        type: string
      btns:
        items: {}
        type: array
      catalog_settings:
        allOf:
        - $ref: '#/definitions/domain.CatalogSettings'
        description: catalog settings
      contribute_settings:
        $ref: '#/definitions/domain.ContributeSettings'
      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
      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
      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
      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_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
      auto_sitemap:
        type: boolean
      body_code:
        type: string
      btns:
        items: {}
        type: array
      catalog_settings:
        allOf:
        - $ref: '#/definitions/domain.CatalogSettings'
        description: catalog settings
      contribute_settings:
        $ref: '#/definitions/domain.ContributeSettings'
      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
      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
      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
      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_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
    format: int32
    type: integer
    x-enum-varnames:
    - AppTypeWeb
    - AppTypeWidget
    - AppTypeDingTalkBot
    - AppTypeFeishuBot
    - AppTypeWechatBot
    - AppTypeWechatServiceBot
    - AppTypeDisCordBot
    - AppTypeWechatOfficialAccount
    - AppTypeOpenAIAPI
    - AppTypeWecomAIBot
    - AppTypeLarkBot
  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.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.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
      message:
        type: string
      nonce:
        type: string
    required:
    - app_type
    - message
    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.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/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.CommentStatus:
    enum:
    - -1
    - 0
    - 1
    format: int32
    type: integer
    x-enum-varnames:
    - CommentStatusReject
    - CommentStatusPending
    - CommentStatusAccepted
  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.ConversationDistribution:
    properties:
      app_id:
        type: string
      app_type:
        $ref: '#/definitions/domain.AppType'
      count:
        type: integer
    type: object
  domain.ConversationInfo:
    properties:
      user_info:
        $ref: '#/definitions/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
      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.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
      emoji:
        type: string
      kb_id:
        type: string
      name:
        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
    - 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.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.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
      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.MessageFrom:
    enum:
    - 1
    - 2
    type: integer
    x-enum-varnames:
    - MessageFromGroup
    - MessageFromPrivate
  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.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.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
  domain.NodeListItemResp:
    properties:
      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
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      position:
        type: number
      status:
        $ref: '#/definitions/domain.NodeStatus'
      summary:
        type: string
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    type: object
  domain.NodeMeta:
    properties:
      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:
    - 1
    - 2
    format: int32
    type: integer
    x-enum-varnames:
    - NodeStatusDraft
    - NodeStatusReleased
  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
      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:
        type: string
      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.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.RecommendNodeListResp:
    properties:
      emoji:
        type: string
      id:
        type: string
      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
      role:
        $ref: '#/definitions/schema.RoleType'
    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.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
      emoji:
        type: string
      id:
        type: string
      kb_id:
        type: string
      name:
        type: string
      position:
        type: number
      summary:
        type: string
    required:
    - id
    - kb_id
    type: object
  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
  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'
      carousel_config:
        $ref: '#/definitions/domain.CarouselConfig'
      com_config_order:
        items:
          type: string
        type: array
      dir_doc_config:
        $ref: '#/definitions/domain.DirDocConfig'
      faq_config:
        $ref: '#/definitions/domain.FaqConfig'
      node_ids:
        items:
          type: string
        type: array
      simple_doc_config:
        $ref: '#/definitions/domain.SimpleDocConfig'
      type:
        type: string
    type: object
  domain.WebAppLandingConfigResp:
    properties:
      banner_config:
        $ref: '#/definitions/domain.BannerConfig'
      basic_doc_config:
        $ref: '#/definitions/domain.BasicDocConfig'
      carousel_config:
        $ref: '#/definitions/domain.CarouselConfig'
      com_config_order:
        items:
          type: string
        type: array
      dir_doc_config:
        $ref: '#/definitions/domain.DirDocConfig'
      faq_config:
        $ref: '#/definitions/domain.FaqConfig'
      node_ids:
        items:
          type: string
        type: array
      nodes:
        items:
          $ref: '#/definitions/domain.RecommendNodeListResp'
        type: array
      simple_doc_config:
        $ref: '#/definitions/domain.SimpleDocConfig'
      type:
        type: string
    type: object
  domain.WecomAIBotSettings:
    properties:
      encodingaeskey:
        type: string
      is_enabled:
        type: boolean
      token:
        type: string
    type: object
  domain.WidgetBotSettings:
    properties:
      btn_logo:
        type: string
      btn_text:
        type: string
      is_open:
        type: boolean
      theme_mode:
        type: string
    type: object
  github_com_chaitin_panda-wiki_api_auth_v1.AuthGetResp:
    properties:
      auths:
        items:
          $ref: '#/definitions/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_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.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.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
    type: string
    x-enum-varnames:
    - ModelProviderBrandBaiZhiCloud
  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.AuthGitHubReq:
    properties:
      kb_id:
        type: string
      redirect_url:
        type: string
    type: object
  v1.AuthGitHubResp:
    properties:
      url:
        type: string
    type: object
  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
  v1.AuthLoginSimpleReq:
    properties:
      password:
        type: string
    required:
    - password
    type: object
  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
  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'
      feishu_setting:
        $ref: '#/definitions/v1.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.FeishuSetting:
    properties:
      app_id:
        type: string
      app_secret:
        type: string
      space_id:
        type: string
      user_access_token:
        type: string
    type: object
  v1.FileUploadResp:
    properties:
      key:
        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.NodeDetailResp:
    properties:
      content:
        type: string
      created_at:
        type: string
      id:
        type: string
      kb_id:
        type: string
      meta:
        $ref: '#/definitions/domain.NodeMeta'
      name:
        type: string
      parent_id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      status:
        $ref: '#/definitions/domain.NodeStatus'
      type:
        $ref: '#/definitions/domain.NodeType'
      updated_at:
        type: string
    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/domain.NodeGroupDetail'
        type: array
      id:
        type: string
      permissions:
        $ref: '#/definitions/domain.NodePermissions'
      visible_groups:
        description: 导航内可见
        items:
          $ref: '#/definitions/domain.NodeGroupDetail'
        type: array
      visitable_groups:
        description: 可被访问
        items:
          $ref: '#/definitions/domain.NodeGroupDetail'
        type: array
    type: object
  v1.ResetPasswordReq:
    properties:
      id:
        type: string
      new_password:
        minLength: 8
        type: string
    required:
    - id
    - new_password
    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
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
        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
      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/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/list:
    delete:
      consumes:
      - application/json
      description: DeleteCommentList
      parameters:
      - collectionFormat: csv
        in: query
        items:
          type: string
        name: ids
        type: array
      produces:
      - application/json
      responses:
        "200":
          description: total
          schema:
            $ref: '#/definitions/domain.Response'
      summary: DeleteCommentList
      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/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/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/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: 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/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/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: node_ids
        required: true
        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/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/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/domain.ConversationDistribution'
                  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/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/v1.AuthGitHubReq'
      produces:
      - application/json
      responses:
        "200":
          description: OK
          schema:
            allOf:
            - $ref: '#/definitions/domain.PWResponse'
            - properties:
                data:
                  $ref: '#/definitions/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:
      - share_chat
  /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/v1.FileUploadResp'
              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/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:
            $ref: '#/definitions/domain.Response'
      summary: GetNodeDetail
      tags:
      - share_node
  /share/v1/node/list:
    get:
      consumes:
      - application/json
      description: GetNodeList
      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: GetNodeList
      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"
