Files
WeKnora/docs/docs.go
T
nullkey 54b6f2dc35 docs(api): regenerate swagger via make docs
由 make docs 一次性重新生成 docs/swagger.{yaml,json} 和 docs/docs.go,
包含前一 commit 中的:
- 24 个新增 swag 注解
- 12 处既有注解 bug 修正
- 几处 response 类型从 map[string]interface{} 收敛到具体 struct

机器生成,建议跳过逐行 review。

Refs #890 #1049
2026-05-12 13:16:58 +08:00

17059 lines
607 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Package docs Code generated by swaggo/swag. DO NOT EDIT
package docs
import "github.com/swaggo/swag"
const docTemplate = `{
"schemes": {{ marshal .Schemes }},
"swagger": "2.0",
"info": {
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"termsOfService": "http://swagger.io/terms/",
"contact": {
"name": "WeKnora Github",
"url": "https://github.com/Tencent/WeKnora"
},
"version": "{{.Version}}"
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/agent/tool-approvals/{pending_id}": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "用户审批通过或驳回一次工具调用(用于 Agent 阻塞等待审批的场景)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "处理 MCP 工具调用待审批请求",
"parameters": [
{
"type": "string",
"description": "待审批记录 ID",
"name": "pending_id",
"in": "path",
"required": true
},
{
"description": "{decision: \\",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": true
}
}
],
"responses": {
"200": {
"description": "审批结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "待审批记录不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/agents": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取当前租户的所有智能体(包括内置智能体)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "获取智能体列表",
"responses": {
"200": {
"description": "智能体列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "创建新的自定义智能体",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "创建智能体",
"parameters": [
{
"description": "智能体信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.CreateAgentRequest"
}
}
],
"responses": {
"201": {
"description": "创建的智能体",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/agents/placeholders": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取所有可用的提示词占位符定义,按字段类型分组",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "获取占位符定义",
"responses": {
"200": {
"description": "占位符定义",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/agents/type-presets": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回所有 smart-reasoning 下可用的智能体类型预设(RAG/Wiki/Hybrid/Custom),用于编辑器自动填充系统提示词、工具和 KB 兼容性",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "获取智能体类型预设列表",
"responses": {
"200": {
"description": "预设列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/agents/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取智能体详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "获取智能体详情",
"parameters": [
{
"type": "string",
"description": "智能体ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "智能体详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "智能体不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新智能体的名称、描述和配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "更新智能体",
"parameters": [
{
"type": "string",
"description": "智能体ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateAgentRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的智能体",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "无法修改内置智能体",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的智能体",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "删除智能体",
"parameters": [
{
"type": "string",
"description": "智能体ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "无法删除内置智能体",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "智能体不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/agents/{id}/copy": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "复制指定的智能体",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "复制智能体",
"parameters": [
{
"type": "string",
"description": "智能体ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"201": {
"description": "复制成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "智能体不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/agents/{id}/shares/{share_id}": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "从智能体的共享列表中移除指定共享关系",
"produces": [
"application/json"
],
"tags": [
"组织"
],
"summary": "取消智能体共享",
"parameters": [
{
"type": "string",
"description": "智能体 ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "共享记录 ID",
"name": "share_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "success: true",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "无权限",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/agents/{id}/suggested-questions": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "基于智能体关联的知识库,返回推荐问题供用户快捷提问",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"智能体"
],
"summary": "获取推荐问题",
"parameters": [
{
"type": "string",
"description": "智能体ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "知识库ID列表(逗号分隔),覆盖智能体默认配置",
"name": "knowledge_base_ids",
"in": "query"
},
{
"type": "string",
"description": "知识ID列表(逗号分隔),限定到具体文档",
"name": "knowledge_ids",
"in": "query"
},
{
"type": "integer",
"description": "返回数量上限(默认6",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "推荐问题列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "智能体不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/api/v1/datasource": {
"get": {
"description": "List all data sources for a specific knowledge base",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "List data sources for a knowledge base",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"post": {
"description": "Create a new data source configuration for a knowledge base",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Create a new data source",
"parameters": [
{
"description": "Data source configuration",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/logs/{log_id}": {
"get": {
"description": "Retrieve a specific sync log entry",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Get specific sync log",
"parameters": [
{
"type": "string",
"description": "Sync log ID",
"name": "log_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/types": {
"get": {
"description": "Get list of available data source connectors",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Get available connectors",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_datasource.ConnectorMetadata"
}
}
}
}
}
},
"/api/v1/datasource/validate-credentials": {
"post": {
"description": "Validate connectivity to an external data source using type + credentials",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Test connection with raw credentials (no persistence)",
"parameters": [
{
"description": "type and credentials",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}": {
"get": {
"description": "Retrieve a data source configuration by ID",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Get a data source by ID",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"put": {
"description": "Update an existing data source configuration",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Update a data source",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated configuration",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
},
"delete": {
"description": "Delete a data source (soft delete)",
"tags": [
"DataSource"
],
"summary": "Delete a data source",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/logs": {
"get": {
"description": "Retrieve sync history for a data source",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "Get sync logs",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "Limit (default: 10)",
"name": "limit",
"in": "query"
},
{
"type": "integer",
"description": "Offset (default: 0)",
"name": "offset",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/pause": {
"post": {
"description": "Pause a data source's scheduled syncs",
"tags": [
"DataSource"
],
"summary": "Pause data source",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/resources": {
"get": {
"description": "List resources available for sync in the external system",
"produces": [
"application/json"
],
"tags": [
"DataSource"
],
"summary": "List available resources in data source",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Resource"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/resume": {
"post": {
"description": "Resume a paused data source",
"tags": [
"DataSource"
],
"summary": "Resume data source",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/sync": {
"post": {
"description": "Trigger an immediate sync for a data source",
"tags": [
"DataSource"
],
"summary": "Trigger immediate sync",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/datasource/{id}/validate": {
"post": {
"description": "Validate the connection to an external data source",
"tags": [
"DataSource"
],
"summary": "Test data source connection",
"parameters": [
{
"type": "string",
"description": "Data source ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/auto-fix": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "Automatically fix fixable wiki issues (broken links, etc.)",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Auto-fix wiki issues",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/graph": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Returns a slice of the wiki link graph for visualization. Supports\n` + "`" + `mode=overview` + "`" + ` (top-N most-connected pages, default) and\n` + "`" + `mode=ego` + "`" + ` (BFS neighborhood of a center slug) to keep response\nsize tractable for knowledge bases with tens of thousands of pages.",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Get wiki link graph",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "overview (default) | ego",
"name": "mode",
"in": "query"
},
{
"type": "string",
"description": "Center slug for ego mode",
"name": "center",
"in": "query"
},
{
"type": "integer",
"description": "Ego BFS depth (1-3, default 1)",
"name": "depth",
"in": "query"
},
{
"type": "string",
"description": "Comma-separated page_type allow-list",
"name": "types",
"in": "query"
},
{
"type": "integer",
"description": "Max nodes to return (default 500, max 2000)",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphData"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/index": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Returns the wiki index as intro text plus per-type paginated\ndirectory groups. The heavy directory markdown that used to\nlive in wiki_pages.content was replaced with this structured\nresponse so a KB with tens of thousands of pages no longer\nmaterializes megabytes of TEXT on every index open.",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Get wiki index view",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Comma-separated page types (default: all content types)",
"name": "types",
"in": "query"
},
{
"type": "integer",
"description": "Per-group window size, 1-200 (default 50)",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Opaque offset cursor from previous response",
"name": "cursor",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexResponse"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/issues": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "List issues flagged on wiki pages with optional filtering",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "List wiki page issues",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Filter by page slug",
"name": "slug",
"in": "query"
},
{
"type": "string",
"description": "Filter by status (pending, ignored, resolved)",
"name": "status",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPageIssue"
}
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/issues/{issue_id}/status": {
"put": {
"security": [
{
"Bearer": []
}
],
"description": "Update the status of a flagged wiki page issue",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Update wiki page issue status",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Issue ID",
"name": "issue_id",
"in": "path",
"required": true
},
{
"description": "New status {'status': 'ignored'}",
"name": "status",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/lint": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Perform a comprehensive health check on the wiki",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Run wiki lint",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintReport"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/log": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Returns a paginated feed of wiki operation events (ingest, retract, ...)\nnewest-first. Pagination is cursor-based: pass ` + "`" + `next_cursor` + "`" + ` from the\nprevious response back as ` + "`" + `cursor` + "`" + ` to fetch the next page.",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Get wiki operation log",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Opaque cursor from the previous page (empty = newest)",
"name": "cursor",
"in": "query"
},
{
"type": "integer",
"description": "Page size, 1-200 (default 50)",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogEntryListResponse"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/pages": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "List wiki pages with optional filtering and pagination",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "List wiki pages",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Filter by page type",
"name": "page_type",
"in": "query"
},
{
"type": "string",
"description": "Filter by status",
"name": "status",
"in": "query"
},
{
"type": "string",
"description": "Full-text search",
"name": "query",
"in": "query"
},
{
"type": "integer",
"description": "Page number",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "Page size",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"description": "Sort field",
"name": "sort_by",
"in": "query"
},
{
"type": "string",
"description": "Sort order (asc/desc)",
"name": "sort_order",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPageListResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "Create a new wiki page in the knowledge base",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Create a wiki page",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"description": "Wiki page data",
"name": "page",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/pages/{slug}": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Retrieve a wiki page by its slug",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Get a wiki page by slug",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Page slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
}
],
"description": "Update an existing wiki page by slug",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Update a wiki page",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Page slug",
"name": "slug",
"in": "path",
"required": true
},
{
"description": "Updated wiki page data",
"name": "page",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "Soft-delete a wiki page by slug",
"tags": [
"Wiki"
],
"summary": "Delete a wiki page",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Page slug",
"name": "slug",
"in": "path",
"required": true
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/rebuild-links": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "Re-parse all pages and rebuild bidirectional link references",
"tags": [
"Wiki"
],
"summary": "Rebuild wiki links",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/search": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Full-text search over wiki pages",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Search wiki pages",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "Search query",
"name": "q",
"in": "query",
"required": true
},
{
"type": "integer",
"description": "Max results (default 10)",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
}
}
}
}
},
"/api/v1/knowledgebase/{kb_id}/wiki/stats": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "Returns aggregate statistics about the wiki",
"produces": [
"application/json"
],
"tags": [
"Wiki"
],
"summary": "Get wiki statistics",
"parameters": [
{
"type": "string",
"description": "Knowledge base ID",
"name": "kb_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiStats"
}
}
}
}
},
"/auth/auto-setup": {
"post": {
"description": "Lite 版专用:首次启动时自动创建默认用户和租户并返回令牌,后续启动直接签发令牌,免除手动注册/登录流程",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "自动初始化(Lite 桌面版)",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.LoginResponse"
}
},
"403": {
"description": "非 Lite 版本",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/change-password": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "修改当前用户的登录密码",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "修改密码",
"parameters": [
{
"description": "密码修改请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"new_password": {
"type": "string"
},
"old_password": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "修改成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/login": {
"post": {
"description": "用户登录并获取访问令牌",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "用户登录",
"parameters": [
{
"description": "登录请求参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.LoginRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.LoginResponse"
}
},
"401": {
"description": "认证失败",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/logout": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "撤销当前访问令牌并登出",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "用户登出",
"responses": {
"200": {
"description": "登出成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/me": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取当前登录用户的详细信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "获取当前用户信息",
"responses": {
"200": {
"description": "用户信息",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "未授权",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/oidc/callback": {
"get": {
"description": "接收OIDC provider回调并由后端完成code交换,随后重定向回前端登录页",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "OIDC登录重定向回调",
"parameters": [
{
"type": "string",
"description": "OIDC授权码",
"name": "code",
"in": "query"
},
{
"type": "string",
"description": "OIDC状态",
"name": "state",
"in": "query"
},
{
"type": "string",
"description": "OIDC错误码",
"name": "error",
"in": "query"
}
],
"responses": {
"302": {
"description": "Found"
}
}
}
},
"/auth/oidc/config": {
"get": {
"description": "返回OIDC是否启用以及provider展示名称,供前端决定是否展示OIDC登录入口",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "获取OIDC登录配置",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OIDCConfigResponse"
}
}
}
}
},
"/auth/oidc/url": {
"get": {
"description": "根据后端OIDC配置生成第三方登录跳转地址",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "获取OIDC授权地址",
"parameters": [
{
"type": "string",
"description": "OIDC回调地址",
"name": "redirect_uri",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OIDCAuthURLResponse"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "OIDC未启用",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/refresh": {
"post": {
"description": "使用刷新令牌获取新的访问令牌",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "刷新令牌",
"parameters": [
{
"description": "刷新令牌",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"refreshToken": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "新令牌",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "令牌无效",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/register": {
"post": {
"description": "注册新用户账号",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "用户注册",
"parameters": [
{
"description": "注册请求参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RegisterRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RegisterResponse"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "注册功能已禁用",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/auth/validate": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "验证访问令牌是否有效",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"认证"
],
"summary": "验证令牌",
"responses": {
"200": {
"description": "令牌有效",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "令牌无效",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/chunker/preview": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "对提交的文本运行自适应分块器并返回分块预览,不写入数据库不生成 embedding。文本最大 64k 字符",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块"
],
"summary": "预览分块结果",
"parameters": [
{
"description": "{text, chunking_config}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.PreviewChunkingRequest"
}
}
],
"responses": {
"200": {
"description": "分块结果",
"schema": {
"$ref": "#/definitions/internal_handler.PreviewChunkingResponse"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"413": {
"description": "文本超过预览限制",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"504": {
"description": "分块超时",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/chunks/by-id/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "仅通过分块ID获取分块详情(不需要knowledge_id);支持共享知识库下的分块访问",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "通过ID获取分块",
"parameters": [
{
"type": "string",
"description": "分块ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "分块详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "分块不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/chunks/by-id/{id}/questions": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除分块中生成的问题",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "删除生成的问题",
"parameters": [
{
"type": "string",
"description": "分块ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "问题ID",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"question_id": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "分块不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/chunks/{knowledge_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取指定知识下的所有分块列表,支持分页",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "获取知识分块列表",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "knowledge_id",
"in": "path",
"required": true
},
{
"type": "integer",
"default": 1,
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 10,
"description": "每页数量",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "分块列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定知识下的所有分块",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "删除知识下所有分块",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "knowledge_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/chunks/{knowledge_id}/{id}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新指定分块的内容和属性",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "更新分块",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "knowledge_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "分块ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateChunkRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的分块",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "分块不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的分块",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"分块管理"
],
"summary": "删除分块",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "knowledge_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "分块ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "分块不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/evaluation/": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据任务ID获取评估结果",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"评估"
],
"summary": "获取评估结果",
"parameters": [
{
"type": "string",
"description": "评估任务ID",
"name": "task_id",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "评估结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "对知识库进行评估测试",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"评估"
],
"summary": "执行评估",
"parameters": [
{
"description": "评估请求参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.EvaluationRequest"
}
}
],
"responses": {
"200": {
"description": "评估任务",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/faq/import/progress/{task_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取FAQ导入任务的进度",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "获取FAQ导入进度",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "task_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "导入进度",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "任务不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/im-channels/{id}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新指定 IM 渠道的名称、模式、知识库、凭证或启用状态",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"IM 渠道"
],
"summary": "更新 IM 渠道",
"parameters": [
{
"type": "string",
"description": "渠道 ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新字段(name/mode/output_mode/knowledge_base_id/credentials/enabled",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": true
}
}
],
"responses": {
"200": {
"description": "更新后的渠道",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "渠道不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定 IM 渠道",
"produces": [
"application/json"
],
"tags": [
"IM 渠道"
],
"summary": "删除 IM 渠道",
"parameters": [
{
"type": "string",
"description": "渠道 ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "success: true",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "渠道不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/im-channels/{id}/toggle": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "切换指定 IM 渠道的启用状态",
"produces": [
"application/json"
],
"tags": [
"IM 渠道"
],
"summary": "启用/停用 IM 渠道",
"parameters": [
{
"type": "string",
"description": "渠道 ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "更新后的渠道",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "渠道不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/im/callback/{channel_id}": {
"get": {
"description": "接收各 IM 平台的事件回调;走平台自身签名校验,不使用 API Key",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"IM 回调"
],
"summary": "IM 平台回调",
"parameters": [
{
"type": "string",
"description": "渠道 ID",
"name": "channel_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "处理结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "签名校验失败",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"post": {
"description": "接收各 IM 平台的事件回调;走平台自身签名校验,不使用 API Key",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"IM 回调"
],
"summary": "IM 平台回调",
"parameters": [
{
"type": "string",
"description": "渠道 ID",
"name": "channel_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "处理结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "签名校验失败",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/initialization/asr/check": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "检查ASR(语音识别)模型连接是否正常,通过发送一段静默音频测试 /v1/audio/transcriptions 端点",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "检查ASR模型",
"parameters": [
{
"description": "ASR检查请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.ModelTestRequest"
}
}
],
"responses": {
"200": {
"description": "检查结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/config/{kbId}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据知识库ID获取当前配置信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "获取知识库配置",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "kbId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "配置信息",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "知识库不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据知识库ID更新模型和分块配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "更新知识库配置",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "kbId",
"in": "path",
"required": true
},
{
"description": "配置请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.KBModelConfigRequest"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "知识库不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/embedding/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "测试Embedding接口是否可用并返回向量维度",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "测试Embedding模型",
"parameters": [
{
"description": "Embedding测试请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.ModelTestRequest"
}
}
],
"responses": {
"200": {
"description": "测试结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/extract/fabri-tag": {
"post": {
"description": "随机生成一组标签",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "生成随机标签",
"responses": {
"200": {
"description": "生成的标签",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/initialization/extract/fabri-text": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据标签生成示例文本",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "生成示例文本",
"parameters": [
{
"description": "生成请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.FabriTextRequest"
}
}
],
"responses": {
"200": {
"description": "生成的文本",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/extract/text-relation": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "从文本中提取实体和关系",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "提取文本关系",
"parameters": [
{
"description": "提取请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.TextRelationExtractionRequest"
}
}
],
"responses": {
"200": {
"description": "提取结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/initialize/{kbId}": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据知识库ID执行完整配置更新",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "初始化知识库配置",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "kbId",
"in": "path",
"required": true
},
{
"description": "初始化请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.InitializationRequest"
}
}
],
"responses": {
"200": {
"description": "初始化成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/multimodal/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "上传图片测试多模态处理功能",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "测试多模态功能",
"parameters": [
{
"type": "file",
"description": "测试图片",
"name": "image",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "VLM模型名称",
"name": "vlm_model",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "VLM Base URL",
"name": "vlm_base_url",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "VLM API Key",
"name": "vlm_api_key",
"in": "formData"
},
{
"type": "string",
"description": "VLM接口类型",
"name": "vlm_interface_type",
"in": "formData"
},
{
"type": "string",
"description": "存储类型(cos/minio)",
"name": "storage_type",
"in": "formData",
"required": true
}
],
"responses": {
"200": {
"description": "测试结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/ollama/download/progress/{taskId}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取Ollama模型下载任务的进度",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "获取下载进度",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "taskId",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "下载进度",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "任务不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/ollama/download/tasks": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "列出所有Ollama模型下载任务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "列出下载任务",
"responses": {
"200": {
"description": "任务列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/initialization/ollama/models": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "列出已安装的Ollama模型",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "列出Ollama模型",
"responses": {
"200": {
"description": "模型列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/ollama/models/check": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "检查指定的Ollama模型是否已安装",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "检查Ollama模型状态",
"parameters": [
{
"description": "模型名称列表",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"models": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
],
"responses": {
"200": {
"description": "模型状态",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/ollama/models/download": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "异步下载指定的Ollama模型",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "下载Ollama模型",
"parameters": [
{
"description": "模型名称",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"modelName": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "下载任务信息",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/ollama/status": {
"get": {
"description": "检查Ollama服务是否可用",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "检查Ollama服务状态",
"responses": {
"200": {
"description": "Ollama状态",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/initialization/remote/check": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "检查远程API模型连接是否正常",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "检查远程模型",
"parameters": [
{
"description": "模型检查请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.RemoteModelCheckRequest"
}
}
],
"responses": {
"200": {
"description": "检查结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/initialization/rerank/check": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "检查Rerank模型连接和功能是否正常",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"初始化"
],
"summary": "检查Rerank模型",
"parameters": [
{
"description": "Rerank检查请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.ModelTestRequest"
}
}
],
"responses": {
"200": {
"description": "检查结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取当前租户的所有知识库;或当传入 agent_id(共享智能体)时,校验权限后返回该智能体配置的知识库范围(用于 @ 提及)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "获取知识库列表",
"parameters": [
{
"type": "string",
"description": "共享智能体 ID(传入时返回该智能体可用的知识库)",
"name": "agent_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "知识库列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "创建新的知识库",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "创建知识库",
"parameters": [
{
"description": "知识库信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBase"
}
}
],
"responses": {
"201": {
"description": "创建的知识库",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/copy": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "将一个知识库的内容复制到另一个知识库(异步任务)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "复制知识库",
"parameters": [
{
"description": "复制请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.CopyKnowledgeBaseRequest"
}
}
],
"responses": {
"200": {
"description": "任务ID",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/copy/progress/{task_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取知识库复制任务的进度",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "获取知识库复制进度",
"parameters": [
{
"type": "string",
"description": "任务ID",
"name": "task_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "进度信息",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "任务不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取知识库详情。当使用共享智能体时,可传 agent_id 以校验该智能体是否有权访问该知识库。",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "获取知识库详情",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "共享智能体 ID(用于校验智能体是否有权访问该知识库)",
"name": "agent_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "知识库详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "知识库不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新知识库的名称、描述和配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "更新知识库",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateKnowledgeBaseRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的知识库",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的知识库及其所有内容",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "删除知识库",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取知识库下的FAQ条目列表,支持分页和筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "获取FAQ条目列表",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
},
{
"type": "integer",
"description": "标签ID筛选(seq_id)",
"name": "tag_id",
"in": "query"
},
{
"type": "string",
"description": "关键词搜索",
"name": "keyword",
"in": "query"
},
{
"type": "string",
"description": "搜索字段: standard_question(标准问题), similar_questions(相似问法), answers(答案), 默认搜索全部",
"name": "search_field",
"in": "query"
},
{
"type": "string",
"description": "排序方式: asc(按更新时间正序), 默认按更新时间倒序",
"name": "sort_order",
"in": "query"
}
],
"responses": {
"200": {
"description": "FAQ列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "异步批量更新或插入FAQ条目。支持 dry_run 模式(设置 dry_run=true),异步验证不实际导入。\ndry_run 模式是异步操作,返回 task_id,通过 /faq/import/progress/{task_id} 查询进度和结果。\n验证内容包括:1) 条目基本格式 2) 重复问题(批次内和知识库已有) 3) 内容安全检查。",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "批量更新/插入FAQ条目",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "批量操作请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQBatchUpsertPayload"
}
}
],
"responses": {
"200": {
"description": "任务ID",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "批量删除指定的FAQ条目",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "批量删除FAQ条目",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "要删除的FAQ ID列表(seq_id)",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "integer"
}
}
}
}
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries/export": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "将所有FAQ条目导出为CSV文件",
"consumes": [
"application/json"
],
"produces": [
"text/csv"
],
"tags": [
"FAQ管理"
],
"summary": "导出FAQ条目",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "CSV文件",
"schema": {
"type": "file"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries/fields": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "批量更新FAQ条目的多个字段(is_enabled, is_recommended, tag_id",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "批量更新FAQ字段",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "字段更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsBatchUpdate"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries/tags": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "批量更新FAQ条目的标签",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "批量更新FAQ标签",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "标签更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries/{entry_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取单个FAQ条目的详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "获取FAQ条目详情",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "FAQ条目ID(seq_id)",
"name": "entry_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "FAQ条目详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "条目不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新指定的FAQ条目",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "更新FAQ条目",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "FAQ条目ID(seq_id)",
"name": "entry_id",
"in": "path",
"required": true
},
{
"description": "FAQ条目",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entries/{entry_id}/similar-questions": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "向指定的FAQ条目添加相似问题",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "添加相似问",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "FAQ条目ID(seq_id)",
"name": "entry_id",
"in": "path",
"required": true
},
{
"description": "相似问列表",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.addSimilarQuestionsRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的FAQ条目",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "条目不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/entry": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "同步创建单个FAQ条目",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "创建单个FAQ条目",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "FAQ条目",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload"
}
}
],
"responses": {
"200": {
"description": "创建的FAQ条目",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/import/last-result/display": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新FAQ知识库导入结果统计卡片的显示或隐藏状态",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "更新FAQ最后一次导入结果显示状态",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "状态更新请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.updateLastFAQImportResultDisplayStatusRequest"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "知识库不存在或无导入记录",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/faq/search": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "使用混合搜索在FAQ中搜索,支持两级优先级标签召回:first_priority_tag_ids优先级最高,second_priority_tag_ids次之",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"FAQ管理"
],
"summary": "搜索FAQ",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "搜索请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQSearchRequest"
}
}
],
"responses": {
"200": {
"description": "搜索结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/hybrid-search": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "在知识库中执行向量和关键词混合搜索",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "混合搜索",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "搜索参数",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SearchParams"
}
}
],
"responses": {
"200": {
"description": "搜索结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/knowledge": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取知识库下的知识列表,支持分页和筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "获取知识列表",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"description": "标签ID筛选",
"name": "tag_id",
"in": "query"
},
{
"type": "string",
"description": "关键词搜索",
"name": "keyword",
"in": "query"
},
{
"type": "string",
"description": "文件类型筛选",
"name": "file_type",
"in": "query"
}
],
"responses": {
"200": {
"description": "知识列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除知识库下的所有知识条目(异步任务)。知识库本身保留,仅清空其中的内容",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "清空知识库内容",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "清空任务已提交",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/knowledge/file": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "上传文件并创建知识条目",
"consumes": [
"multipart/form-data"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "从文件创建知识",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "file",
"description": "上传的文件",
"name": "file",
"in": "formData",
"required": true
},
{
"type": "string",
"description": "自定义文件名",
"name": "fileName",
"in": "formData"
},
{
"type": "string",
"description": "元数据JSON",
"name": "metadata",
"in": "formData"
},
{
"type": "boolean",
"description": "启用多模态处理",
"name": "enable_multimodel",
"in": "formData"
}
],
"responses": {
"200": {
"description": "创建的知识",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"409": {
"description": "文件重复",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/knowledge-bases/{id}/knowledge/manual": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "手工录入Markdown格式的知识内容",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "手工创建知识",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "手工知识内容",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ManualKnowledgePayload"
}
}
],
"responses": {
"200": {
"description": "创建的知识",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/knowledge/url": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "从指定URL抓取内容并创建知识条目。当提供 file_name/file_type 或 URL 路径含已知文件扩展名时,自动切换为文件下载模式",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "从URL创建知识",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "URL请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"enable_multimodel": {
"type": "boolean"
},
"file_name": {
"type": "string"
},
"file_type": {
"type": "string"
},
"tag_id": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
}
}
}
],
"responses": {
"201": {
"description": "创建的知识",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"409": {
"description": "URL重复",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/knowledge-bases/{id}/move-targets": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回与源知识库 Type 一致、EmbeddingModelID 一致、非临时且不是自身的目标知识库列表",
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "获取可移动目标知识库列表",
"parameters": [
{
"type": "string",
"description": "源知识库 ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "可移动目标列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "知识库不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/pin": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "切换知识库的置顶状态",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库"
],
"summary": "置顶/取消置顶知识库",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "更新后的知识库",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "知识库不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/shares": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取知识库的所有共享记录",
"produces": [
"application/json"
],
"tags": [
"知识库共享"
],
"summary": "获取知识库的共享列表",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ListSharesResponse"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "将知识库共享到指定组织",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库共享"
],
"summary": "共享知识库到组织",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "共享信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ShareKnowledgeBaseRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/shares/{share_id}": {
"put": {
"security": [
{
"Bearer": []
}
],
"description": "更新知识库共享的权限级别",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识库共享"
],
"summary": "更新共享权限",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "共享记录ID",
"name": "share_id",
"in": "path",
"required": true
},
{
"description": "权限信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateSharePermissionRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "取消知识库的共享",
"tags": [
"知识库共享"
],
"summary": "取消共享",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "共享记录ID",
"name": "share_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/tags": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取知识库下的所有标签及统计信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"标签管理"
],
"summary": "获取标签列表",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"description": "关键词搜索",
"name": "keyword",
"in": "query"
}
],
"responses": {
"200": {
"description": "标签列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "在知识库下创建新标签",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"标签管理"
],
"summary": "创建标签",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "标签信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"color": {
"type": "string"
},
"name": {
"type": "string"
},
"sort_order": {
"type": "integer"
}
}
}
}
],
"responses": {
"200": {
"description": "创建的标签",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge-bases/{id}/tags/{tag_id}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新标签信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"标签管理"
],
"summary": "更新标签",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "标签ID (UUID或seq_id)",
"name": "tag_id",
"in": "path",
"required": true
},
{
"description": "标签更新信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "更新后的标签",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除标签,可使用force=true强制删除被引用的标签,content_only=true仅删除标签下的内容而保留标签本身",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"标签管理"
],
"summary": "删除标签",
"parameters": [
{
"type": "string",
"description": "知识库ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "标签ID (UUID或seq_id)",
"name": "tag_id",
"in": "path",
"required": true
},
{
"type": "boolean",
"description": "强制删除",
"name": "force",
"in": "query"
},
{
"type": "boolean",
"description": "仅删除内容,保留标签",
"name": "content_only",
"in": "query"
},
{
"description": "删除选项",
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/internal_handler.DeleteTagRequest"
}
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/batch": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID列表批量获取知识条目。可选 kb_id:指定时按该知识库校验权限并用于共享知识库的租户解析;可选 agent_id:使用共享智能体时传此参数,后端按智能体所属租户查询(用于刷新后恢复共享知识库下的文件)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "批量获取知识",
"parameters": [
{
"type": "array",
"items": {
"type": "string"
},
"collectionFormat": "csv",
"description": "知识ID列表",
"name": "ids",
"in": "query",
"required": true
},
{
"type": "string",
"description": "可选,知识库ID(用于共享知识库时指定范围)",
"name": "kb_id",
"in": "query"
},
{
"type": "string",
"description": "可选,共享智能体ID(用于按智能体租户批量拉取文件详情)",
"name": "agent_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "知识列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/batch-delete": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "按 ID 列表批量删除单个知识库下的多个知识条目",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "批量删除知识",
"parameters": [
{
"description": "批量删除请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.BatchDeleteKnowledgeRequest"
}
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/image/{id}/{chunk_id}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新知识分块的图像信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "更新图像信息",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "分块ID",
"name": "chunk_id",
"in": "path",
"required": true
},
{
"description": "图像信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"properties": {
"image_info": {
"type": "string"
}
}
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/manual/{id}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新手工录入的Markdown知识内容",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "更新手工知识",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "手工知识内容",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ManualKnowledgePayload"
}
}
],
"responses": {
"200": {
"description": "更新后的知识",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/move": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "将一条或多条知识从源知识库移动到目标知识库(异步),返回任务 ID 用于查询进度",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识"
],
"summary": "移动知识到其他知识库",
"parameters": [
{
"description": "{source_kb_id, target_kb_id, knowledge_ids}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.MoveKnowledgeRequest"
}
}
],
"responses": {
"200": {
"description": "任务信息",
"schema": {
"$ref": "#/definitions/internal_handler.MoveKnowledgeResponse"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/move/progress/{task_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "按任务 ID 查询移动进度",
"produces": [
"application/json"
],
"tags": [
"知识"
],
"summary": "获取知识移动进度",
"parameters": [
{
"type": "string",
"description": "移动任务 ID",
"name": "task_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "进度信息",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeMoveProgress"
}
},
"404": {
"description": "任务不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/search": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Search knowledge files by keyword. When agent_id is set (shared agent), scope is the agent's configured knowledge bases.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Knowledge"
],
"summary": "Search knowledge",
"parameters": [
{
"type": "string",
"description": "Keyword to search",
"name": "keyword",
"in": "query"
},
{
"type": "integer",
"description": "Offset for pagination",
"name": "offset",
"in": "query"
},
{
"type": "integer",
"description": "Limit for pagination (default 20)",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "Comma-separated file extensions to filter (e.g., csv,xlsx)",
"name": "file_types",
"in": "query"
},
{
"type": "string",
"description": "Shared agent ID (search within agent's KB scope)",
"name": "agent_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "Search results",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Invalid request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/tags": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "批量更新知识条目的标签。可选 kb_id:指定时按该知识库校验编辑权限并用于共享知识库的租户解析",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "批量更新知识标签",
"parameters": [
{
"description": "标签更新请求(updates 必填,kb_id 可选)",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取知识条目详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "获取知识详情",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "知识详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "知识不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新知识条目信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "更新知识",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "知识信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Knowledge"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID删除知识条目",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "删除知识",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/{id}/download": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "下载知识条目关联的原始文件",
"consumes": [
"application/json"
],
"produces": [
"application/octet-stream"
],
"tags": [
"知识管理"
],
"summary": "下载知识文件",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "文件内容",
"schema": {
"type": "file"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/{id}/preview": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回知识条目关联的原始文件,Content-Type 根据文件类型设置,用于浏览器内嵌预览",
"consumes": [
"application/json"
],
"produces": [
"application/pdf",
"image/jpeg",
"image/png",
"text/plain"
],
"tags": [
"知识管理"
],
"summary": "预览知识文件",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "文件内容",
"schema": {
"type": "file"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/knowledge/{id}/reparse": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除知识中现有的文档内容并重新解析,使用异步任务方式处理",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"知识管理"
],
"summary": "重新解析知识",
"parameters": [
{
"type": "string",
"description": "知识ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "重新解析任务已提交",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取当前租户的所有MCP服务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "获取MCP服务列表",
"responses": {
"200": {
"description": "MCP服务列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "创建新的MCP服务配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "创建MCP服务",
"parameters": [
{
"description": "MCP服务配置",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPService"
}
}
],
"responses": {
"200": {
"description": "创建的MCP服务",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取MCP服务详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "获取MCP服务详情",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "MCP服务详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "服务不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新MCP服务配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "更新MCP服务",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新字段",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "更新后的MCP服务",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的MCP服务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "删除MCP服务",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services/{id}/resources": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取MCP服务提供的资源列表",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "获取MCP服务资源列表",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "资源列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services/{id}/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "测试MCP服务是否可以正常连接",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "测试MCP服务连接",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "测试结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services/{id}/tool-approvals/{tool_name}": {
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "为指定 MCP 服务下的某个工具设置/更新审批要求",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "设置 MCP 工具人工审批策略",
"parameters": [
{
"type": "string",
"description": "MCP 服务 ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "工具名",
"name": "tool_name",
"in": "path",
"required": true
},
{
"description": "{require_approval: bool}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": true
}
}
],
"responses": {
"200": {
"description": "更新结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "MCP 服务或工具不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/mcp-services/{id}/tools": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取MCP服务提供的工具列表",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"MCP服务"
],
"summary": "获取MCP服务工具列表",
"parameters": [
{
"type": "string",
"description": "MCP服务ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "工具列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/messages/chat-history-stats": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取聊天历史知识库的统计信息(已索引消息数、知识库大小等)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"消息"
],
"summary": "获取聊天历史知识库统计",
"responses": {
"200": {
"description": "统计信息",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/messages/search": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "通过关键词和/或向量相似度搜索历史对话记录,支持关键词、向量、混合三种模式",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"消息"
],
"summary": "搜索历史对话",
"parameters": [
{
"description": "搜索请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.SearchMessagesRequest"
}
}
],
"responses": {
"200": {
"description": "搜索结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/messages/{session_id}/load": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "加载会话的消息历史,支持分页和时间筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"消息"
],
"summary": "加载消息历史",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"type": "integer",
"default": 20,
"description": "返回数量",
"name": "limit",
"in": "query"
},
{
"type": "string",
"description": "在此时间之前的消息(RFC3339Nano格式)",
"name": "before_time",
"in": "query"
}
],
"responses": {
"200": {
"description": "消息列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/messages/{session_id}/{id}": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "从会话中删除指定消息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"消息"
],
"summary": "删除消息",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "消息ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/models": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取当前租户的所有模型",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "获取模型列表",
"responses": {
"200": {
"description": "模型列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "创建新的模型配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "创建模型",
"parameters": [
{
"description": "模型信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.CreateModelRequest"
}
}
],
"responses": {
"201": {
"description": "创建的模型",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/models/providers": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据模型类型获取支持的厂商列表及配置信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "获取模型厂商列表",
"parameters": [
{
"type": "string",
"description": "模型类型 (chat, embedding, rerank, vllm)",
"name": "model_type",
"in": "query"
}
],
"responses": {
"200": {
"description": "厂商列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/models/weknoracloud/status": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "检查当前租户的 WeKnoraCloud 凭证是否完好;needs_reinit=true 表示需要重新保存",
"produces": [
"application/json"
],
"tags": [
"WeKnoraCloud"
],
"summary": "检查 WeKnoraCloud 凭证状态",
"responses": {
"200": {
"description": "凭证状态",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/models/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取模型详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "获取模型详情",
"parameters": [
{
"type": "string",
"description": "模型ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "模型详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "模型不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新模型配置信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "更新模型",
"parameters": [
{
"type": "string",
"description": "模型ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateModelRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的模型",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "模型不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的模型",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"模型管理"
],
"summary": "删除模型",
"parameters": [
{
"type": "string",
"description": "模型ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "模型不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取当前用户所属的所有组织,并附带各空间内知识库/智能体数量",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取我的组织列表",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ListOrganizationsResponse"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "创建新的组织,创建者自动成为管理员",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "创建组织",
"parameters": [
{
"description": "组织信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.CreateOrganizationRequest"
}
}
],
"responses": {
"201": {
"description": "Created",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/join": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "使用邀请码加入组织",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "通过邀请码加入组织",
"parameters": [
{
"description": "邀请码",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.JoinOrganizationRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/join-by-id": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "加入已开放可被搜索的空间,无需邀请码",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "通过空间 ID 加入(可搜索空间)",
"parameters": [
{
"description": "空间 ID",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.JoinByOrganizationIDRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/join-request": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "对需要审核的组织提交加入申请",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "提交加入申请",
"parameters": [
{
"description": "申请信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SubmitJoinRequestRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/preview/{code}": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "通过邀请码获取组织基本信息(不加入)",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "通过邀请码预览组织",
"parameters": [
{
"type": "string",
"description": "邀请码",
"name": "code",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/search": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "搜索已开放可被搜索的空间,用于发现并加入",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "搜索可加入的空间",
"parameters": [
{
"type": "string",
"description": "搜索关键词(空间名称或描述)",
"name": "q",
"in": "query"
},
{
"type": "integer",
"default": 20,
"description": "返回数量限制",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/organizations/{id}": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "根据ID获取组织详情",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取组织详情",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Not Found",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
}
],
"description": "更新组织信息(需要管理员权限)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "更新组织",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateOrganizationRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "删除组织(仅组织创建者可操作)",
"tags": [
"组织管理"
],
"summary": "删除组织",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/agent-shares": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回所有被共享到指定组织的智能体(含我的有效权限)",
"produces": [
"application/json"
],
"tags": [
"组织"
],
"summary": "获取共享到本组织的智能体",
"parameters": [
{
"type": "string",
"description": "组织 ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "智能体共享列表 + total",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "非组织成员",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/invite": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "管理员直接添加用户为组织成员",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "邀请成员",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "邀请信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.InviteMemberRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/invite-code": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "生成新的组织邀请码(需要管理员权限)",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "生成邀请码",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/join-requests": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取组织的待审核加入申请(仅管理员)",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取待审核加入申请列表",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/join-requests/{request_id}/review": {
"put": {
"security": [
{
"Bearer": []
}
],
"description": "通过或拒绝加入申请(仅管理员)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "审核加入申请",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "申请ID",
"name": "request_id",
"in": "path",
"required": true
},
{
"description": "审核结果",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ReviewJoinRequestRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/leave": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "退出指定组织",
"tags": [
"组织管理"
],
"summary": "退出组织",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/members": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取组织的所有成员",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取组织成员列表",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ListMembersResponse"
}
}
}
}
},
"/organizations/{id}/members/{user_id}": {
"put": {
"security": [
{
"Bearer": []
}
],
"description": "更新组织成员的角色(需要管理员权限)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "更新成员角色",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "用户ID",
"name": "user_id",
"in": "path",
"required": true
},
{
"description": "角色信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateMemberRoleRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "从组织中移除成员(需要管理员权限)",
"tags": [
"组织管理"
],
"summary": "移除成员",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "用户ID",
"name": "user_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/request-upgrade": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "现有成员申请更高权限",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "申请权限升级",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "申请信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RequestRoleUpgradeRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Bad Request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/search-users": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "搜索用户(排除已有成员)用于邀请加入组织",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "搜索可邀请的用户",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "搜索关键词(用户名或邮箱)",
"name": "q",
"in": "query",
"required": true
},
{
"type": "integer",
"default": 10,
"description": "返回数量限制",
"name": "limit",
"in": "query"
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "Forbidden",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/organizations/{id}/shared-agents": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取指定空间下所有共享智能体,包含他人共享的与我共享的,用于列表页空间视角",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取空间内全部智能体(含我共享的)",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/organizations/{id}/shared-knowledge-bases": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取指定空间下所有共享知识库,包含直接共享的与通过共享智能体可见的,用于列表页空间视角",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取空间内全部知识库(含我共享的、含智能体携带的)",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/organizations/{id}/shares": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取共享到指定组织的所有知识库",
"produces": [
"application/json"
],
"tags": [
"组织管理"
],
"summary": "获取组织的共享知识库列表",
"parameters": [
{
"type": "string",
"description": "组织ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ListSharesResponse"
}
}
}
}
},
"/sessions": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取当前租户的会话列表,支持分页、关键字搜索、按来源/Agent 筛选",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "获取会话列表",
"parameters": [
{
"type": "integer",
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"description": "每页数量",
"name": "page_size",
"in": "query"
},
{
"type": "string",
"description": "标题模糊搜索",
"name": "keyword",
"in": "query"
},
{
"type": "string",
"description": "来源过滤:web / feishu / wechat / slack / ...",
"name": "source",
"in": "query"
},
{
"type": "string",
"description": "按 Agent 过滤(仅对 IM 会话生效)",
"name": "agent_id",
"in": "query"
}
],
"responses": {
"200": {
"description": "会话列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "创建新的对话会话",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "创建会话",
"parameters": [
{
"description": "会话创建请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.CreateSessionRequest"
}
}
],
"responses": {
"201": {
"description": "创建的会话",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/batch": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID列表批量删除对话会话,或设置 delete_all=true 删除当前租户的所有会话",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "批量删除会话",
"parameters": [
{
"description": "批量删除请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.batchDeleteRequest"
}
}
],
"responses": {
"200": {
"description": "删除结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/continue-stream/{session_id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "继续获取正在进行的流式响应",
"consumes": [
"application/json"
],
"produces": [
"text/event-stream"
],
"tags": [
"问答"
],
"summary": "继续流式响应",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"type": "string",
"description": "消息ID",
"name": "message_id",
"in": "query",
"required": true
}
],
"responses": {
"200": {
"description": "流式响应",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话或消息不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/search": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "在知识库中搜索(不使用LLM总结)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"问答"
],
"summary": "知识搜索",
"parameters": [
{
"description": "搜索请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.SearchKnowledgeRequest"
}
}
],
"responses": {
"200": {
"description": "搜索结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取会话详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "获取会话详情",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "会话详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新会话属性",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "更新会话",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "会话信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Session"
}
}
],
"responses": {
"200": {
"description": "更新后的会话",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定的会话",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "删除会话",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{id}/messages": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除会话中的所有消息,同时清除 LLM 上下文和聊天历史知识库条目。会话本身保留。",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "清空会话消息",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "清空成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{id}/pin": {
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "取消指定会话的置顶",
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "取消置顶会话",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "取消置顶成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{session_id}/agent-qa": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "基于Agent的智能问答,支持多轮对话和SSE流式响应",
"consumes": [
"application/json"
],
"produces": [
"text/event-stream"
],
"tags": [
"问答"
],
"summary": "Agent问答",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "问答请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.CreateKnowledgeQARequest"
}
}
],
"responses": {
"200": {
"description": "问答结果(SSE流)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{session_id}/knowledge-qa": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "基于知识库的问答(使用LLM总结),支持SSE流式响应",
"consumes": [
"application/json"
],
"produces": [
"text/event-stream"
],
"tags": [
"问答"
],
"summary": "知识问答",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "问答请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.CreateKnowledgeQARequest"
}
}
],
"responses": {
"200": {
"description": "问答结果(SSE流)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{session_id}/pin": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "将指定会话置顶(用户维度)",
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "置顶会话",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "置顶成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{session_id}/stop": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "停止当前正在进行的生成任务",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"问答"
],
"summary": "停止生成",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "停止请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.StopSessionRequest"
}
}
],
"responses": {
"200": {
"description": "停止成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "会话或消息不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/sessions/{session_id}/title": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据消息内容自动生成会话标题",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"会话"
],
"summary": "生成会话标题",
"parameters": [
{
"type": "string",
"description": "会话ID",
"name": "session_id",
"in": "path",
"required": true
},
{
"description": "生成请求",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler_session.GenerateTitleRequest"
}
}
],
"responses": {
"200": {
"description": "生成的标题",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/shared-agents": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回所有共享给当前用户所在组织的智能体",
"produces": [
"application/json"
],
"tags": [
"组织"
],
"summary": "获取我可访问的共享智能体",
"responses": {
"200": {
"description": "智能体列表 + total",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/shared-knowledge-bases": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取通过组织共享给当前用户的所有知识库",
"produces": [
"application/json"
],
"tags": [
"知识库共享"
],
"summary": "获取共享给我的知识库列表",
"responses": {
"200": {
"description": "OK",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/skills": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取所有预装的Agent Skills元数据",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"Skills"
],
"summary": "获取预装Skills列表",
"responses": {
"200": {
"description": "Skills列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/system/docreader/reconnect": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "重连文档解析服务",
"parameters": [
{
"description": "DocReader 地址",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/system/info": {
"get": {
"description": "获取系统版本、构建信息和引擎配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "获取系统信息",
"responses": {
"200": {
"description": "系统信息",
"schema": {
"$ref": "#/definitions/internal_handler.GetSystemInfoResponse"
}
}
}
}
},
"/system/parser-engines": {
"get": {
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "列出可用的文档解析引擎",
"responses": {
"200": {
"description": "解析引擎列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/system/parser-engines/check": {
"post": {
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "使用当前参数检测解析引擎可用性",
"parameters": [
{
"description": "解析引擎配置(与保存接口同结构)",
"name": "body",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/system/storage-engine-check": {
"post": {
"description": "使用当前填写的参数测试 MinIO/COS 连通性,不保存配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "测试存储引擎连通性",
"parameters": [
{
"description": "存储引擎配置",
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.StorageCheckRequest"
}
}
],
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handler.StorageCheckResponse"
}
}
}
}
},
"/system/storage-engine-status": {
"get": {
"description": "返回 Local、MinIO、COS 各存储引擎的可用状态及说明,供全局设置与知识库选择使用",
"produces": [
"application/json"
],
"tags": [
"系统"
],
"summary": "获取存储引擎状态",
"responses": {
"200": {
"description": "OK",
"schema": {
"$ref": "#/definitions/internal_handler.GetStorageEngineStatusResponse"
}
}
}
}
},
"/tenants": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取当前用户可访问的租户列表",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户列表",
"responses": {
"200": {
"description": "租户列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"post": {
"security": [
{
"Bearer": []
}
],
"description": "创建新的租户",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "创建租户",
"parameters": [
{
"description": "租户信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant"
}
}
],
"responses": {
"201": {
"description": "创建的租户",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/all": {
"get": {
"security": [
{
"Bearer": []
}
],
"description": "获取系统中所有租户(需要跨租户访问权限)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取所有租户列表",
"responses": {
"200": {
"description": "所有租户列表",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/kv/agent-config": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取租户的全局Agent配置(默认应用于所有会话)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户Agent配置",
"responses": {
"200": {
"description": "Agent配置",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/kv/conversation-config": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取租户的全局对话配置(默认应用于普通模式会话)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户对话配置",
"responses": {
"200": {
"description": "对话配置",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/kv/prompt-templates": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取系统配置的提示词模板列表",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取提示词模板",
"responses": {
"200": {
"description": "提示词模板配置",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/kv/web-search-config": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取租户的网络搜索配置",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户网络搜索配置",
"responses": {
"200": {
"description": "网络搜索配置",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/kv/{key}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "获取租户级别的KV配置(支持agent-config、web-search-config、conversation-config",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户KV配置",
"parameters": [
{
"type": "string",
"description": "配置键名",
"name": "key",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "配置值",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "不支持的键",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新租户级别的KV配置(支持agent-config、web-search-config、conversation-config",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "更新租户KV配置",
"parameters": [
{
"type": "string",
"description": "配置键名",
"name": "key",
"in": "path",
"required": true
},
{
"description": "配置值",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object"
}
}
],
"responses": {
"200": {
"description": "更新成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "不支持的键",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/search": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "分页搜索租户(需要跨租户访问权限)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "搜索租户",
"parameters": [
{
"type": "string",
"description": "搜索关键词",
"name": "keyword",
"in": "query"
},
{
"type": "integer",
"description": "租户ID筛选",
"name": "tenant_id",
"in": "query"
},
{
"type": "integer",
"default": 1,
"description": "页码",
"name": "page",
"in": "query"
},
{
"type": "integer",
"default": 20,
"description": "每页数量",
"name": "page_size",
"in": "query"
}
],
"responses": {
"200": {
"description": "搜索结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据ID获取租户详情",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "获取租户详情",
"parameters": [
{
"type": "integer",
"description": "租户ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "租户详情",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"404": {
"description": "租户不存在",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"put": {
"security": [
{
"Bearer": []
}
],
"description": "更新租户信息",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "更新租户",
"parameters": [
{
"type": "integer",
"description": "租户ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "租户信息",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant"
}
}
],
"responses": {
"200": {
"description": "更新后的租户",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
}
],
"description": "删除指定的租户",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "删除租户",
"parameters": [
{
"type": "integer",
"description": "租户ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "删除成功",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/tenants/{id}/api-key": {
"post": {
"security": [
{
"Bearer": []
}
],
"description": "为指定租户生成一个新的 API Key,旧 Key 立即失效",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"租户管理"
],
"summary": "重置租户 API Key",
"parameters": [
{
"type": "integer",
"description": "租户ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "新生成的 API Key",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"403": {
"description": "权限不足",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/vector-stores": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "List all vector stores for the current tenant, including environment-configured and user-created stores",
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "List vector stores",
"responses": {
"200": {
"description": "List of vector stores (env + DB)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Create a new vector store configuration for the current tenant",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Create vector store",
"parameters": [
{
"description": "Vector store configuration",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.CreateStoreRequest"
}
}
],
"responses": {
"201": {
"description": "Created vector store",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Invalid request or validation error",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"409": {
"description": "Duplicate endpoint and index",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
}
}
}
},
"/vector-stores/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Test connectivity using provided credentials without persisting. Returns detected server version.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Test vector store connection with raw credentials",
"parameters": [
{
"description": "Engine type and connection config",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.TestStoreRequest"
}
}
],
"responses": {
"200": {
"description": "Connection test result (success, version)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Invalid request",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/vector-stores/types": {
"get": {
"description": "Return supported engine types with connection and index field schemas for UI form generation",
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "List vector store types",
"responses": {
"200": {
"description": "List of engine types with config schemas",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/vector-stores/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Retrieve a single vector store by ID. Supports both DB stores and env stores (__env_* IDs)",
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Get vector store",
"parameters": [
{
"type": "string",
"description": "Vector store ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Vector store details",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Vector store not found",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Update a vector store (name only). Engine type, connection config, and index config are immutable. Env stores cannot be modified.",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Update vector store",
"parameters": [
{
"type": "string",
"description": "Vector store ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "Updated fields",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateStoreRequest"
}
}
],
"responses": {
"200": {
"description": "Updated vector store",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Env store or validation error",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Vector store not found",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Soft-delete a vector store. Env stores cannot be deleted.",
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Delete vector store",
"parameters": [
{
"type": "string",
"description": "Vector store ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Deletion success",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "Env store cannot be deleted",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Vector store not found",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/vector-stores/{id}/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "Test connectivity of an existing saved or env store. Returns detected server version. For DB stores, the version is automatically saved to connection_config.",
"produces": [
"application/json"
],
"tags": [
"VectorStore"
],
"summary": "Test vector store connection by ID",
"parameters": [
{
"type": "string",
"description": "Vector store ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Connection test result (success, version)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Vector store not found",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/web-search-providers/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "使用前端表单中尚未保存的凭证测试连通性,用于\"测试连接\"按钮",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "使用原始凭证测试 Provider(不落库)",
"parameters": [
{
"description": "{provider, parameters}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.TestProviderRequest"
}
}
],
"responses": {
"200": {
"description": "测试结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/web-search-providers/types": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回 UI 表单需要的 provider 类型及参数定义",
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "获取网络搜索 Provider 类型元数据",
"responses": {
"200": {
"description": "provider 类型列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/web-search-providers/{id}": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "根据 ID 获取指定 provider 配置",
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "获取网络搜索 Provider 详情",
"parameters": [
{
"type": "string",
"description": "Provider ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "Provider 详情",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity"
}
},
"404": {
"description": "Provider 不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"put": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "更新指定 provider 的名称/描述/参数/是否默认",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "更新网络搜索 Provider",
"parameters": [
{
"type": "string",
"description": "Provider ID",
"name": "id",
"in": "path",
"required": true
},
{
"description": "更新字段",
"name": "request",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/internal_handler.UpdateProviderRequest"
}
}
],
"responses": {
"200": {
"description": "更新后的 Provider",
"schema": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity"
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Provider 不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
},
"delete": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "删除指定 provider 配置",
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "删除网络搜索 Provider",
"parameters": [
{
"type": "string",
"description": "Provider ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "success: true",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Provider 不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/web-search-providers/{id}/test": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "使用数据库中已保存的凭证测试连通性",
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "测试已保存的 Provider",
"parameters": [
{
"type": "string",
"description": "Provider ID",
"name": "id",
"in": "path",
"required": true
}
],
"responses": {
"200": {
"description": "测试结果",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"404": {
"description": "Provider 不存在",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/web-search/providers": {
"get": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "返回所有已注册的网络搜索 provider(含元数据)",
"produces": [
"application/json"
],
"tags": [
"网络搜索"
],
"summary": "获取可用网络搜索 Provider 列表",
"responses": {
"200": {
"description": "provider 列表",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/wechat/qrcode": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "申请一个用于扫码登录绑定的微信二维码(无请求体)",
"produces": [
"application/json"
],
"tags": [
"IM 渠道"
],
"summary": "获取微信扫码登录二维码",
"responses": {
"200": {
"description": "二维码信息(qrcode_url + qrcode 标识)",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "二维码生成失败",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/wechat/qrcode/status": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "查询指定二维码是否已被扫描/确认/过期;confirmed 时返回凭证",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"IM 渠道"
],
"summary": "轮询微信二维码状态",
"parameters": [
{
"description": "{qrcode: string}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": true
}
}
],
"responses": {
"200": {
"description": "扫码状态",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"500": {
"description": "服务器错误",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
},
"/weknoracloud/credentials": {
"post": {
"security": [
{
"Bearer": []
},
{
"ApiKeyAuth": []
}
],
"description": "保存 APPID/APPSECRET 到当前租户配置(不自动创建模型)",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"tags": [
"WeKnoraCloud"
],
"summary": "保存 WeKnoraCloud 凭证",
"parameters": [
{
"description": "{app_id, app_secret}",
"name": "request",
"in": "body",
"required": true,
"schema": {
"type": "object",
"additionalProperties": true
}
}
],
"responses": {
"200": {
"description": "success: true",
"schema": {
"type": "object",
"additionalProperties": true
}
},
"400": {
"description": "请求参数错误",
"schema": {
"type": "object",
"additionalProperties": true
}
}
}
}
}
},
"definitions": {
"github_com_Tencent_WeKnora_internal_application_service.WikiLintIssue": {
"type": "object",
"properties": {
"auto_fixable": {
"type": "boolean"
},
"description": {
"type": "string"
},
"page_slug": {
"type": "string"
},
"severity": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueSeverity"
},
"target_slug": {
"description": "TargetSlug identifies the other page involved in the issue (e.g. the\nbroken link target, or the entity slug for a missing cross-ref). It is\nthe structured field used by AutoFix instead of parsing Description.",
"type": "string"
},
"type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueType"
}
}
},
"github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueSeverity": {
"type": "string",
"enum": [
"info",
"warning",
"error"
],
"x-enum-varnames": [
"SeverityInfo",
"SeverityWarning",
"SeverityError"
]
},
"github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueType": {
"type": "string",
"enum": [
"orphan_page",
"broken_link",
"stale_ref",
"missing_cross_ref",
"empty_content",
"duplicate_slug"
],
"x-enum-varnames": [
"LintIssueOrphanPage",
"LintIssueBrokenLink",
"LintIssueStaleRef",
"LintIssueMissingCrossRef",
"LintIssueEmptyContent",
"LintIssueDuplicateSlug"
]
},
"github_com_Tencent_WeKnora_internal_application_service.WikiLintReport": {
"type": "object",
"properties": {
"health_score": {
"description": "0-100",
"type": "integer"
},
"issues": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintIssue"
}
},
"knowledge_base_id": {
"type": "string"
},
"stats": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiStats"
},
"summary": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_datasource.ConnectorMetadata": {
"type": "object",
"properties": {
"auth_type": {
"description": "\"oauth2\", \"api_key\", \"token\", etc.",
"type": "string"
},
"capabilities": {
"description": "\"incremental\", \"webhook\", \"deletion_sync\", etc.",
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"priority": {
"description": "Priority order for UI display (lower = higher priority)",
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_errors.AppError": {
"type": "object",
"properties": {
"code": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_errors.ErrorCode"
},
"details": {},
"message": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_errors.ErrorCode": {
"type": "integer",
"enum": [
1000,
1001,
1002,
1003,
1004,
1005,
1006,
1007,
1008,
1009,
1010,
2000,
2001,
2002,
2003,
2004,
2100,
2101,
2102,
2103
],
"x-enum-varnames": [
"ErrBadRequest",
"ErrUnauthorized",
"ErrForbidden",
"ErrNotFound",
"ErrMethodNotAllowed",
"ErrConflict",
"ErrTooManyRequests",
"ErrInternalServer",
"ErrServiceUnavailable",
"ErrTimeout",
"ErrValidation",
"ErrTenantNotFound",
"ErrTenantAlreadyExists",
"ErrTenantInactive",
"ErrTenantNameRequired",
"ErrTenantInvalidStatus",
"ErrAgentMissingThinkingModel",
"ErrAgentMissingAllowedTools",
"ErrAgentInvalidMaxIterations",
"ErrAgentInvalidTemperature"
]
},
"github_com_Tencent_WeKnora_internal_infrastructure_chunker.DocProfile": {
"type": "object",
"properties": {
"all_caps_short_line_count": {
"type": "integer"
},
"avg_line_len": {
"type": "number"
},
"blank_paragraph_breaks": {
"type": "integer"
},
"chinese_chapter_count": {
"type": "integer"
},
"code_ratio": {
"type": "number"
},
"detected_langs": {
"description": "Detected language hints (best-effort)",
"type": "array",
"items": {
"type": "string"
}
},
"english_chapter_count": {
"type": "integer"
},
"form_feed_count": {
"type": "integer"
},
"german_chapter_count": {
"type": "integer"
},
"has_code": {
"type": "boolean"
},
"has_tables": {
"description": "Content characteristics",
"type": "boolean"
},
"md_heading_counts": {
"description": "Markdown structure",
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"md_heading_total": {
"type": "integer"
},
"numbered_section_count": {
"description": "Heuristic indicators",
"type": "integer"
},
"repeated_footer_count": {
"type": "integer"
},
"std_line_len": {
"type": "number"
},
"total_chars": {
"type": "integer"
},
"total_lines": {
"type": "integer"
},
"visual_sep_count": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier": {
"type": "string",
"enum": [
"heading",
"heuristic",
"legacy"
],
"x-enum-varnames": [
"TierHeading",
"TierHeuristic",
"TierLegacy"
]
},
"github_com_Tencent_WeKnora_internal_infrastructure_chunker.TierRejection": {
"type": "object",
"properties": {
"reason": {
"type": "string"
},
"tier": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ASRConfig": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"language": {
"description": "optional: language hint for transcription",
"type": "string"
},
"model_id": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.AgentConfig": {
"type": "object",
"properties": {
"allowed_skills": {
"description": "Skill names whitelist (empty = allow all)",
"type": "array",
"items": {
"type": "string"
}
},
"allowed_tools": {
"description": "List of allowed tool names",
"type": "array",
"items": {
"type": "string"
}
},
"history_turns": {
"description": "Number of history turns to keep in context",
"type": "integer"
},
"knowledge_bases": {
"description": "Accessible knowledge base IDs",
"type": "array",
"items": {
"type": "string"
}
},
"knowledge_ids": {
"description": "Accessible knowledge IDs (individual documents)",
"type": "array",
"items": {
"type": "string"
}
},
"llm_call_timeout": {
"description": "LLM call timeout in seconds (default: 120). Controls the maximum time for a single LLM call.",
"type": "integer"
},
"max_context_tokens": {
"description": "Maximum context window tokens for the agent (default: 200000).\nThe agent compresses older messages to stay within this limit,\npreserving tool_call/tool_result pairs.",
"type": "integer"
},
"max_iterations": {
"description": "Maximum number of ReAct iterations",
"type": "integer"
},
"max_tool_output_chars": {
"description": "Maximum character length for tool output (default: 16000).\nOutputs exceeding this limit are truncated with head + tail preservation.",
"type": "integer"
},
"mcp_selection_mode": {
"description": "MCP service selection",
"type": "string"
},
"mcp_services": {
"description": "Selected MCP service IDs (when mode is \"selected\")",
"type": "array",
"items": {
"type": "string"
}
},
"multi_turn_enabled": {
"description": "Whether multi-turn conversation is enabled",
"type": "boolean"
},
"parallel_tool_calls": {
"description": "Whether to execute independent tool calls in parallel (default: false).\nWhen enabled and the LLM returns multiple tool calls, they run concurrently via errgroup.",
"type": "boolean"
},
"retain_retrieval_history": {
"description": "Whether to retain retrieval history (like wiki_read_page results) across turns (default: false)",
"type": "boolean"
},
"retrieve_kb_only_when_mentioned": {
"description": "Whether to retrieve knowledge base only when explicitly mentioned with @ (default: false)",
"type": "boolean"
},
"skill_dirs": {
"description": "Directories to search for skills",
"type": "array",
"items": {
"type": "string"
}
},
"skills_enabled": {
"description": "Skills configuration (Progressive Disclosure pattern)",
"type": "boolean"
},
"system_prompt": {
"description": "Unified system prompt (uses web_search_status placeholder for dynamic behavior)",
"type": "string"
},
"system_prompt_web_disabled": {
"description": "Deprecated: Custom prompt when web search is disabled",
"type": "string"
},
"system_prompt_web_enabled": {
"description": "Deprecated: Use SystemPrompt instead. Kept for backward compatibility during migration.",
"type": "string"
},
"temperature": {
"description": "LLM temperature for agent",
"type": "number"
},
"thinking": {
"description": "Whether to enable thinking mode (for models that support extended thinking)",
"type": "boolean"
},
"use_custom_system_prompt": {
"description": "Whether to use custom system prompt instead of default",
"type": "boolean"
},
"web_search_enabled": {
"description": "Whether web search tool is enabled",
"type": "boolean"
},
"web_search_max_results": {
"description": "Maximum number of web search results (default: 5)",
"type": "integer"
},
"web_search_provider_id": {
"description": "WebSearchProviderEntity ID (resolved from agent config)",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.AgentStep": {
"type": "object",
"properties": {
"iteration": {
"description": "Iteration number (0-indexed)",
"type": "integer"
},
"thought": {
"description": "LLM's reasoning/thinking (Think phase)",
"type": "string"
},
"timestamp": {
"description": "When this step occurred",
"type": "string"
},
"tool_calls": {
"description": "Tools called in this step (Act phase)",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ToolCall"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.AnswerStrategy": {
"type": "string",
"enum": [
"all",
"random"
],
"x-enum-varnames": [
"AnswerStrategyAll",
"AnswerStrategyRandom"
]
},
"github_com_Tencent_WeKnora_internal_types.COSEngineConfig": {
"type": "object",
"properties": {
"app_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_id": {
"type": "string"
},
"secret_key": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ChatHistoryConfig": {
"type": "object",
"properties": {
"embedding_model_id": {
"description": "EmbeddingModelID is the ID of the embedding model used for vectorizing chat messages.\nOnce messages have been indexed, the model cannot be changed (requires re-indexing).",
"type": "string"
},
"enabled": {
"description": "Enabled controls whether chat history indexing is active",
"type": "boolean"
},
"knowledge_base_id": {
"description": "KnowledgeBaseID is the auto-managed hidden knowledge base for chat history.\nThis is set internally when the feature is first enabled; users should not set this directly.",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ChunkingConfig": {
"type": "object",
"properties": {
"child_chunk_size": {
"description": "ChildChunkSize is the size of child chunks used for embedding (default: 384).\nOnly used when EnableParentChild is true.",
"type": "integer"
},
"chunk_overlap": {
"description": "Chunk overlap",
"type": "integer"
},
"chunk_size": {
"description": "Chunk size",
"type": "integer"
},
"enable_multimodal": {
"description": "EnableMultimodal (deprecated, kept for backward compatibility with old data)",
"type": "boolean"
},
"enable_parent_child": {
"description": "EnableParentChild enables two-level parent-child chunking strategy.\nWhen enabled, large parent chunks provide context while small child chunks\nare used for vector matching. Retrieval matches on child but returns parent content.",
"type": "boolean"
},
"languages": {
"description": "Languages hints the heuristic patterns. Empty = auto-detect from content.\nExamples: [\"de\"], [\"en\", \"zh\"].",
"type": "array",
"items": {
"type": "string"
}
},
"parent_chunk_size": {
"description": "ParentChunkSize is the size of parent chunks (default: 4096).\nOnly used when EnableParentChild is true.",
"type": "integer"
},
"parser_engine_rules": {
"description": "ParserEngineRules configures which parser engine to use for each file type.\nWhen empty, the builtin engine is used for all types.",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineRule"
}
},
"separators": {
"description": "Separators",
"type": "array",
"items": {
"type": "string"
}
},
"strategy": {
"description": "Strategy selects the adaptive chunking tier. Empty / \"legacy\" preserves\nthe historical recursive splitter; \"auto\" lets a profiler pick between\nheading-aware, heuristic and recursive tiers; \"heading\" / \"heuristic\" /\n\"recursive\" pin the tier explicitly.",
"type": "string"
},
"token_limit": {
"description": "TokenLimit caps chunk size in approximate tokens. 0 = use ChunkSize\nas a character count.",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ConnectionConfig": {
"type": "object",
"properties": {
"addr": {
"description": "Common",
"type": "string"
},
"api_key": {
"description": "AES-GCM encrypted",
"type": "string"
},
"database": {
"description": "Tencent VectorDB and Doris database name.",
"type": "string"
},
"grpc_address": {
"description": "Weaviate",
"type": "string"
},
"host": {
"description": "Qdrant",
"type": "string"
},
"http_port": {
"description": "Doris: HTTP port for Stream Load API (FE default 8030).\nAddr is reused for the MySQL protocol \"host:9030\"; HTTPPort + the host of Addr\ntogether form the FE HTTP endpoint used by Stream Load.",
"type": "integer"
},
"password": {
"description": "AES-GCM encrypted",
"type": "string"
},
"port": {
"type": "integer"
},
"scheme": {
"type": "string"
},
"use_default_connection": {
"description": "Postgres",
"type": "boolean"
},
"use_tls": {
"type": "boolean"
},
"username": {
"type": "string"
},
"version": {
"description": "Version is the detected server version (e.g., \"7.10.1\", \"16.2\", \"1.12.6\").\nAuto-populated by TestConnection on successful connectivity check.",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ContextCompressionStrategy": {
"type": "string",
"enum": [
"sliding_window",
"smart"
],
"x-enum-varnames": [
"ContextCompressionSlidingWindow",
"ContextCompressionSmart"
]
},
"github_com_Tencent_WeKnora_internal_types.ContextConfig": {
"type": "object",
"properties": {
"compression_strategy": {
"description": "Compression strategy: \"sliding_window\" or \"smart\"",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ContextCompressionStrategy"
}
]
},
"max_tokens": {
"description": "Maximum tokens allowed in LLM context",
"type": "integer"
},
"recent_message_count": {
"description": "For sliding_window: number of messages to keep\nFor smart: number of recent messages to keep uncompressed",
"type": "integer"
},
"summarize_threshold": {
"description": "Summarize threshold: number of messages before summarization",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ConversationConfig": {
"type": "object",
"properties": {
"context_template": {
"description": "ContextTemplate is the prompt template for summarizing retrieval results",
"type": "string"
},
"embedding_top_k": {
"type": "integer"
},
"enable_query_expansion": {
"type": "boolean"
},
"enable_rewrite": {
"type": "boolean"
},
"fallback_prompt": {
"type": "string"
},
"fallback_response": {
"type": "string"
},
"fallback_strategy": {
"description": "Fallback strategy",
"type": "string"
},
"keyword_threshold": {
"type": "number"
},
"max_completion_tokens": {
"description": "MaxTokens is the maximum number of tokens to generate",
"type": "integer"
},
"max_rounds": {
"description": "Retrieval \u0026 strategy parameters",
"type": "integer"
},
"prompt": {
"description": "Prompt is the system prompt for normal mode",
"type": "string"
},
"rerank_model_id": {
"type": "string"
},
"rerank_threshold": {
"type": "number"
},
"rerank_top_k": {
"type": "integer"
},
"rewrite_prompt_system": {
"description": "Rewrite prompts",
"type": "string"
},
"rewrite_prompt_user": {
"type": "string"
},
"summary_model_id": {
"description": "Model configuration",
"type": "string"
},
"temperature": {
"description": "Temperature controls the randomness of the model output",
"type": "number"
},
"vector_threshold": {
"type": "number"
}
}
},
"github_com_Tencent_WeKnora_internal_types.CreateOrganizationRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"avatar": {
"description": "optional avatar URL",
"type": "string",
"maxLength": 512
},
"description": {
"type": "string",
"maxLength": 1000
},
"invite_code_validity_days": {
"description": "optional: 0=never, 1, 7, 30; default 7",
"type": "integer"
},
"member_limit": {
"description": "optional: max members; 0=unlimited; default 50",
"type": "integer"
},
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1
}
}
},
"github_com_Tencent_WeKnora_internal_types.CredentialsConfig": {
"type": "object",
"properties": {
"weknoracloud": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WeKnoraCloudCredentials"
}
}
},
"github_com_Tencent_WeKnora_internal_types.CustomAgentConfig": {
"type": "object",
"properties": {
"agent_mode": {
"description": "===== Basic Settings =====\nAgent mode: \"quick-answer\" for RAG mode, \"smart-reasoning\" for ReAct agent mode",
"type": "string"
},
"agent_type": {
"description": "AgentType is a preset category under smart-reasoning mode that pre-fills\nsystem prompt, allowed tools and recommended KB compatibility.\nValid values: \"rag-qa\", \"wiki-qa\", \"hybrid-rag-wiki\", \"custom\".\nEmpty / unknown values are treated as \"custom\" (no preset applied).\nIgnored for quick-answer mode.",
"type": "string"
},
"allowed_tools": {
"description": "Allowed tools (only for agent type)",
"type": "array",
"items": {
"type": "string"
}
},
"asr_model_id": {
"description": "ASR model ID for audio transcription (optional)",
"type": "string"
},
"audio_upload_enabled": {
"description": "Whether audio upload (ASR transcription) is enabled for this agent (default: false)",
"type": "boolean"
},
"context_template": {
"description": "Context template for normal mode (how to format retrieved chunks)",
"type": "string"
},
"context_template_id": {
"description": "ContextTemplateID references a template ID in prompt_templates/ YAML files.\nIf set and ContextTemplate is empty, the template content will be resolved at startup.",
"type": "string"
},
"embedding_top_k": {
"description": "===== Retrieval Strategy Settings (for both modes) =====\nEmbedding/Vector retrieval top K",
"type": "integer"
},
"enable_query_expansion": {
"description": "===== Advanced Settings (mainly for normal mode) =====\nWhether to enable query expansion",
"type": "boolean"
},
"enable_rewrite": {
"description": "Whether to enable query rewrite for multi-turn conversations",
"type": "boolean"
},
"fallback_prompt": {
"description": "Fallback prompt (when FallbackStrategy is \"model\")",
"type": "string"
},
"fallback_response": {
"description": "Fixed fallback response (when FallbackStrategy is \"fixed\")",
"type": "string"
},
"fallback_strategy": {
"description": "Fallback strategy: \"fixed\" for fixed response, \"model\" for model generation",
"type": "string"
},
"faq_direct_answer_threshold": {
"description": "FAQ direct answer threshold - if similarity \u003e this value, use FAQ answer directly",
"type": "number"
},
"faq_priority_enabled": {
"description": "===== FAQ Strategy Settings =====\nWhether FAQ priority strategy is enabled (FAQ answers prioritized over document chunks)",
"type": "boolean"
},
"faq_score_boost": {
"description": "FAQ score boost multiplier - FAQ results score multiplied by this factor",
"type": "number"
},
"history_turns": {
"description": "Number of history turns to keep in context",
"type": "integer"
},
"image_storage_provider": {
"description": "Storage provider for image uploads: \"local\", \"minio\", \"cos\", \"tos\", \"s3\", \"oss\", \"ks3\".\nEmpty means use the global/tenant default provider.",
"type": "string"
},
"image_upload_enabled": {
"description": "===== Image Upload / Multimodal Settings =====\nWhether image upload is enabled for this agent (default: false)",
"type": "boolean"
},
"kb_selection_mode": {
"description": "===== Knowledge Base Settings =====\nKnowledge base selection mode: \"all\" = all KBs, \"selected\" = specific KBs, \"none\" = no KB",
"type": "string"
},
"keyword_threshold": {
"description": "Keyword retrieval threshold",
"type": "number"
},
"knowledge_bases": {
"description": "Associated knowledge base IDs (only used when KBSelectionMode is \"selected\")",
"type": "array",
"items": {
"type": "string"
}
},
"llm_call_timeout": {
"description": "Timeout for a single LLM call in seconds (0 = use global default)",
"type": "integer"
},
"max_completion_tokens": {
"description": "Maximum completion tokens (only for normal mode)",
"type": "integer"
},
"max_iterations": {
"description": "===== Agent Mode Settings =====\nMaximum iterations for ReAct loop (only for agent type)",
"type": "integer"
},
"mcp_selection_mode": {
"description": "MCP service selection mode: \"all\" = all enabled MCP services, \"selected\" = specific services, \"none\" = no MCP",
"type": "string"
},
"mcp_services": {
"description": "Selected MCP service IDs (only used when MCPSelectionMode is \"selected\")",
"type": "array",
"items": {
"type": "string"
}
},
"model_id": {
"description": "===== Model Settings =====\nModel ID to use for conversations",
"type": "string"
},
"multi_turn_enabled": {
"description": "===== Multi-turn Conversation Settings =====\nWhether multi-turn conversation is enabled",
"type": "boolean"
},
"rerank_model_id": {
"description": "ReRank model ID for retrieval",
"type": "string"
},
"rerank_threshold": {
"description": "Rerank threshold",
"type": "number"
},
"rerank_top_k": {
"description": "Rerank top K",
"type": "integer"
},
"retain_retrieval_history": {
"description": "Whether to retain retrieval history across turns",
"type": "boolean"
},
"retrieve_kb_only_when_mentioned": {
"description": "Whether to retrieve knowledge base only when explicitly mentioned with @ (default: false)\nWhen true, knowledge base retrieval only happens if user explicitly mentions KB/files with @\nWhen false, knowledge base retrieval happens according to KBSelectionMode",
"type": "boolean"
},
"rewrite_prompt_system": {
"description": "Rewrite prompt system message",
"type": "string"
},
"rewrite_prompt_user": {
"description": "Rewrite prompt user message template",
"type": "string"
},
"selected_skills": {
"description": "Selected skill names (only used when SkillsSelectionMode is \"selected\")",
"type": "array",
"items": {
"type": "string"
}
},
"skills_selection_mode": {
"description": "===== Skills Settings (only for smart-reasoning mode) =====\nSkills selection mode: \"all\" = all preloaded skills, \"selected\" = specific skills, \"none\" = no skills",
"type": "string"
},
"suggested_prompts": {
"description": "===== Suggested Prompts =====\n推荐问题列表,用于在前端对话面板展示快捷提问",
"type": "array",
"items": {
"type": "string"
}
},
"supported_file_types": {
"description": "===== File Type Restriction Settings =====\nSupported file types for this agent (e.g., [\"csv\", \"xlsx\", \"xls\"])\nEmpty means all file types are supported\nWhen set, only files with matching extensions can be used with this agent",
"type": "array",
"items": {
"type": "string"
}
},
"system_prompt": {
"description": "System prompt for the agent (unified prompt, uses web_search_status placeholder for dynamic behavior)",
"type": "string"
},
"system_prompt_id": {
"description": "SystemPromptID references a template ID in prompt_templates/ YAML files.\nIf set and SystemPrompt is empty, the template content will be resolved at startup.",
"type": "string"
},
"temperature": {
"description": "Temperature for LLM (0-1)",
"type": "number"
},
"thinking": {
"description": "Whether to enable thinking mode (for models that support extended thinking)",
"type": "boolean"
},
"vector_threshold": {
"description": "Vector retrieval threshold",
"type": "number"
},
"vlm_model_id": {
"description": "VLM model ID for image analysis (optional, falls back to tenant-level VLM)",
"type": "string"
},
"web_fetch_enabled": {
"description": "Whether to auto-fetch full page content for reranked web search results",
"type": "boolean"
},
"web_fetch_top_n": {
"description": "Max number of pages to fetch after rerank (default: 3)",
"type": "integer"
},
"web_search_enabled": {
"description": "===== Web Search Settings =====\nWhether web search is enabled",
"type": "boolean"
},
"web_search_max_results": {
"description": "Maximum web search results",
"type": "integer"
},
"web_search_provider_id": {
"description": "WebSearchProviderID references a specific WebSearchProviderEntity.\nIf empty, the tenant's default provider (is_default=true) is used.",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.DataSource": {
"type": "object",
"properties": {
"config": {
"description": "Encrypted configuration (API credentials, tokens, etc.)\nStored as JSON with AES-256-GCM encryption",
"type": "array",
"items": {
"type": "integer"
}
},
"conflict_strategy": {
"description": "Conflict resolution strategy: overwrite or skip",
"type": "string"
},
"created_at": {
"description": "Creation timestamp",
"type": "string"
},
"deleted_at": {
"description": "Soft delete timestamp",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"error_message": {
"description": "Error message if status is \"error\"",
"type": "string"
},
"id": {
"description": "Unique identifier",
"type": "string"
},
"knowledge_base_id": {
"description": "Target knowledge base ID",
"type": "string"
},
"last_sync_at": {
"description": "Last successful sync timestamp",
"type": "string"
},
"last_sync_cursor": {
"description": "Cursor or state for incremental sync (connector-specific)",
"type": "array",
"items": {
"type": "integer"
}
},
"last_sync_result": {
"description": "Summary of last sync result",
"type": "array",
"items": {
"type": "integer"
}
},
"latest_sync_log": {
"description": "Latest sync log (not stored in DB, populated on query)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog"
}
]
},
"name": {
"description": "User-friendly name",
"type": "string"
},
"status": {
"description": "Current status: active, paused, error",
"type": "string"
},
"sync_deletions": {
"description": "Whether to sync deletions from source",
"type": "boolean"
},
"sync_log_retention_days": {
"description": "Number of days to keep sync logs (default: 30)",
"type": "integer"
},
"sync_mode": {
"description": "Sync mode: \"incremental\" (recommended) or \"full\"",
"type": "string"
},
"sync_schedule": {
"description": "Cron expression for scheduled syncs (e.g., \"0 */6 * * *\" = every 6 hours)",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID for multi-tenancy",
"type": "integer"
},
"total_items_synced": {
"description": "Total items synced (not stored in DB, calculated on query)",
"type": "integer"
},
"type": {
"description": "Connector type (feishu, notion, confluence, etc.)",
"type": "string"
},
"updated_at": {
"description": "Last update timestamp",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.EmbeddingParameters": {
"type": "object",
"properties": {
"dimension": {
"type": "integer"
},
"truncate_prompt_tokens": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ExtractConfig": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.GraphNode"
}
},
"relations": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.GraphRelation"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"text": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQBatchUpsertPayload": {
"type": "object",
"required": [
"entries"
],
"properties": {
"dry_run": {
"description": "仅验证,不实际导入",
"type": "boolean"
},
"entries": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload"
}
},
"knowledge_id": {
"type": "string"
},
"mode": {
"type": "string",
"enum": [
"append",
"replace"
]
},
"task_id": {
"description": "可选,如果不传则自动生成UUID",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQConfig": {
"type": "object",
"properties": {
"index_mode": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQIndexMode"
},
"question_index_mode": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQQuestionIndexMode"
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsBatchUpdate": {
"type": "object",
"properties": {
"by_id": {
"description": "ByID 按条目ID更新,key为条目ID (seq_id)",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate"
}
},
"by_tag": {
"description": "ByTag 按Tag批量更新,key为TagID (seq_id)",
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate"
}
},
"exclude_ids": {
"description": "ExcludeIDs 在ByTag操作中需要排除的ID列表 (seq_id)",
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate": {
"type": "object",
"properties": {
"is_enabled": {
"type": "boolean"
},
"is_recommended": {
"type": "boolean"
},
"tag_id": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQEntryPayload": {
"type": "object",
"required": [
"standard_question"
],
"properties": {
"answer_strategy": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.AnswerStrategy"
},
"answers": {
"type": "array",
"items": {
"type": "string"
}
},
"id": {
"description": "ID 可选,用于数据迁移时指定 seq_id(必须小于自增起始值 100000000",
"type": "integer"
},
"is_enabled": {
"type": "boolean"
},
"is_recommended": {
"type": "boolean"
},
"negative_questions": {
"type": "array",
"items": {
"type": "string"
}
},
"similar_questions": {
"type": "array",
"items": {
"type": "string"
}
},
"standard_question": {
"type": "string"
},
"tag_id": {
"type": "integer"
},
"tag_name": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.FAQIndexMode": {
"type": "string",
"enum": [
"question_only",
"question_answer"
],
"x-enum-varnames": [
"FAQIndexModeQuestionOnly",
"FAQIndexModeQuestionAnswer"
]
},
"github_com_Tencent_WeKnora_internal_types.FAQQuestionIndexMode": {
"type": "string",
"enum": [
"combined",
"separate"
],
"x-enum-varnames": [
"FAQQuestionIndexModeCombined",
"FAQQuestionIndexModeSeparate"
]
},
"github_com_Tencent_WeKnora_internal_types.FAQSearchRequest": {
"type": "object",
"required": [
"query_text"
],
"properties": {
"first_priority_tag_ids": {
"description": "第一优先级标签ID列表,限定命中范围,优先级最高",
"type": "array",
"items": {
"type": "integer"
}
},
"match_count": {
"type": "integer"
},
"only_recommended": {
"description": "是否仅返回推荐的条目",
"type": "boolean"
},
"query_text": {
"type": "string"
},
"second_priority_tag_ids": {
"description": "第二优先级标签ID列表,限定命中范围,优先级低于第一优先级",
"type": "array",
"items": {
"type": "integer"
}
},
"vector_threshold": {
"type": "number"
}
}
},
"github_com_Tencent_WeKnora_internal_types.GraphNode": {
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"type": "string"
}
},
"chunks": {
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.GraphRelation": {
"type": "object",
"properties": {
"node1": {
"type": "string"
},
"node2": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig": {
"type": "object",
"properties": {
"model_id": {
"description": "Model ID",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.IndexConfig": {
"type": "object",
"properties": {
"buckets_num": {
"description": "Doris: number of buckets per table (DISTRIBUTED BY HASH ... BUCKETS N)",
"type": "integer"
},
"collection_name": {
"description": "Milvus",
"type": "string"
},
"collection_prefix": {
"description": "Qdrant, Weaviate",
"type": "string"
},
"desired_shard_count": {
"description": "Weaviate: number of shards per collection",
"type": "integer"
},
"index_name": {
"description": "--- Existing fields ---",
"type": "string"
},
"number_of_replicas": {
"description": "ES, OpenSearch",
"type": "integer"
},
"number_of_shards": {
"description": "ES, OpenSearch",
"type": "integer"
},
"replica_number": {
"description": "Milvus: in-memory replica count (LoadCollection)",
"type": "integer"
},
"replication_factor": {
"description": "Qdrant, Weaviate: number of replicas",
"type": "integer"
},
"replication_num": {
"description": "Doris: replication_num PROPERTIES",
"type": "integer"
},
"shard_number": {
"description": "--- Scalability fields ---",
"type": "integer"
},
"shards_num": {
"description": "Milvus: number of shards per collection (CreateCollection)",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.IndexingStrategy": {
"type": "object",
"properties": {
"graph_enabled": {
"description": "GraphEnabled enables knowledge graph entity/relation extraction",
"type": "boolean"
},
"keyword_enabled": {
"description": "KeywordEnabled enables keyword-based (BM25) search",
"type": "boolean"
},
"vector_enabled": {
"description": "VectorEnabled enables semantic vector embedding and search",
"type": "boolean"
},
"wiki_enabled": {
"description": "WikiEnabled enables automatic wiki page generation from documents",
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.InviteMemberRequest": {
"type": "object",
"required": [
"role",
"user_id"
],
"properties": {
"role": {
"description": "Role to assign: admin/editor/viewer",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
]
},
"user_id": {
"description": "User ID to invite",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.JoinByOrganizationIDRequest": {
"type": "object",
"required": [
"organization_id"
],
"properties": {
"message": {
"description": "Optional message for join request",
"type": "string",
"maxLength": 500
},
"organization_id": {
"type": "string"
},
"role": {
"description": "Optional: requested role (admin/editor/viewer); default viewer",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.JoinOrganizationRequest": {
"type": "object",
"required": [
"invite_code"
],
"properties": {
"invite_code": {
"type": "string",
"maxLength": 32,
"minLength": 8
}
}
},
"github_com_Tencent_WeKnora_internal_types.KBCloneTaskStatus": {
"type": "string",
"enum": [
"pending",
"processing",
"completed",
"failed"
],
"x-enum-varnames": [
"KBCloneStatusPending",
"KBCloneStatusProcessing",
"KBCloneStatusCompleted",
"KBCloneStatusFailed"
]
},
"github_com_Tencent_WeKnora_internal_types.KS3EngineConfig": {
"type": "object",
"properties": {
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_key": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.Knowledge": {
"type": "object",
"properties": {
"channel": {
"description": "Channel indicates through which channel the knowledge was ingested (web, api, browser_extension, wechat, etc.)",
"type": "string"
},
"created_at": {
"description": "Creation time of the knowledge",
"type": "string"
},
"deleted_at": {
"description": "Deletion time of the knowledge",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"description": {
"description": "Description of the knowledge",
"type": "string"
},
"embedding_model_id": {
"description": "ID of the embedding model",
"type": "string"
},
"enable_status": {
"description": "Enable status of the knowledge",
"type": "string"
},
"error_message": {
"description": "Error message of the knowledge",
"type": "string"
},
"file_hash": {
"description": "File hash of the knowledge",
"type": "string"
},
"file_name": {
"description": "File name of the knowledge",
"type": "string"
},
"file_path": {
"description": "File path of the knowledge",
"type": "string"
},
"file_size": {
"description": "File size of the knowledge",
"type": "integer"
},
"file_type": {
"description": "File type of the knowledge",
"type": "string"
},
"id": {
"description": "Unique identifier of the knowledge",
"type": "string"
},
"knowledge_base_id": {
"description": "ID of the knowledge base",
"type": "string"
},
"knowledge_base_name": {
"description": "Knowledge base name (not stored in database, populated on query)",
"type": "string"
},
"last_faq_import_result": {
"description": "Last FAQ import result (for FAQ type knowledge only)",
"type": "array",
"items": {
"type": "integer"
}
},
"metadata": {
"description": "Metadata of the knowledge",
"type": "array",
"items": {
"type": "integer"
}
},
"parse_status": {
"description": "Parse status of the knowledge",
"type": "string"
},
"processed_at": {
"description": "Processed time of the knowledge",
"type": "string"
},
"source": {
"description": "Source of the knowledge (e.g. URL address for url type, \"manual\" for manual type)",
"type": "string"
},
"storage_size": {
"description": "Storage size of the knowledge",
"type": "integer"
},
"summary_status": {
"description": "Summary status for async summary generation",
"type": "string"
},
"tag_id": {
"description": "Optional tag ID for categorization within a knowledge base",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID",
"type": "integer"
},
"title": {
"description": "Title of the knowledge",
"type": "string"
},
"type": {
"description": "Type of the knowledge",
"type": "string"
},
"updated_at": {
"description": "Last updated time of the knowledge",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.KnowledgeBase": {
"type": "object",
"properties": {
"asr_config": {
"description": "ASR config (Automatic Speech Recognition)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ASRConfig"
}
]
},
"chunk_count": {
"description": "Chunk count (not stored in database, calculated on query)",
"type": "integer"
},
"chunking_config": {
"description": "Chunking configuration",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ChunkingConfig"
}
]
},
"created_at": {
"description": "Creation time of the knowledge base",
"type": "string"
},
"deleted_at": {
"description": "Deletion time of the knowledge base",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"description": {
"description": "Description of the knowledge base",
"type": "string"
},
"embedding_model_id": {
"description": "ID of the embedding model",
"type": "string"
},
"extract_config": {
"description": "Extract config",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ExtractConfig"
}
]
},
"faq_config": {
"description": "FAQConfig stores FAQ specific configuration such as indexing strategy",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQConfig"
}
]
},
"id": {
"description": "Unique identifier of the knowledge base",
"type": "string"
},
"image_processing_config": {
"description": "Image processing configuration",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig"
}
]
},
"indexing_strategy": {
"description": "IndexingStrategy controls which indexing pipelines are active for this knowledge base.\nPipelines: vector search, keyword search, wiki generation, knowledge graph extraction.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.IndexingStrategy"
}
]
},
"is_pinned": {
"description": "Whether this knowledge base is pinned to the top of the list",
"type": "boolean"
},
"is_processing": {
"description": "IsProcessing indicates if there is a processing import task (for FAQ type knowledge bases)",
"type": "boolean"
},
"is_temporary": {
"description": "Whether this knowledge base is temporary (ephemeral) and should be hidden from UI",
"type": "boolean"
},
"knowledge_count": {
"description": "Knowledge count (not stored in database, calculated on query)",
"type": "integer"
},
"name": {
"description": "Name of the knowledge base",
"type": "string"
},
"pinned_at": {
"description": "Time when the knowledge base was pinned (nil if not pinned)",
"type": "string"
},
"processing_count": {
"description": "ProcessingCount indicates the number of knowledge items being processed (for document type knowledge bases)",
"type": "integer"
},
"question_generation_config": {
"description": "QuestionGenerationConfig stores question generation configuration for document knowledge bases",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.QuestionGenerationConfig"
}
]
},
"share_count": {
"description": "ShareCount indicates the number of organizations this knowledge base is shared with (not stored in database)",
"type": "integer"
},
"storage_config": {
"description": "Deprecated: legacy COS config column. Kept for backward compatibility with old data.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.StorageConfig"
}
]
},
"storage_provider_config": {
"description": "Storage provider config (new): only stores provider selection; credentials from tenant StorageEngineConfig",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.StorageProviderConfig"
}
]
},
"summary_model_id": {
"description": "Summary model ID",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID",
"type": "integer"
},
"type": {
"description": "Type of the knowledge base (document, faq, etc.)",
"type": "string"
},
"updated_at": {
"description": "Last updated time of the knowledge base",
"type": "string"
},
"vector_store_id": {
"description": "VectorStoreID references the VectorStore this knowledge base is bound to.\nWhen nil, the KB falls back to the tenant's effective engines derived from\nthe RETRIEVE_DRIVER environment variable (env store flow).\nThis field is set once at creation time and must not be modified afterwards;\nenforcement lives at the GORM layer (` + "`" + `\u003c-:create` + "`" + `) plus the service-layer\nKB update path, which omits this field from its update DTO.",
"type": "string"
},
"vlm_config": {
"description": "VLM config",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.VLMConfig"
}
]
},
"wiki_config": {
"description": "WikiConfig stores wiki-specific configuration (only for wiki type knowledge bases)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiConfig"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.KnowledgeBaseConfig": {
"type": "object",
"properties": {
"chunking_config": {
"description": "Chunking configuration",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ChunkingConfig"
}
]
},
"faq_config": {
"description": "FAQ configuration (only for FAQ type knowledge bases)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.FAQConfig"
}
]
},
"image_processing_config": {
"description": "Image processing configuration",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig"
}
]
},
"indexing_strategy": {
"description": "IndexingStrategy controls which indexing pipelines are active.\nnil means \"no change\" when updating (preserves existing strategy).",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.IndexingStrategy"
}
]
},
"wiki_config": {
"description": "Wiki configuration (only for wiki-enabled knowledge bases)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiConfig"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.KnowledgeBaseShareResponse": {
"type": "object",
"properties": {
"chunk_count": {
"type": "integer"
},
"created_at": {
"type": "string"
},
"id": {
"type": "string"
},
"knowledge_base_id": {
"type": "string"
},
"knowledge_base_name": {
"type": "string"
},
"knowledge_base_type": {
"type": "string"
},
"knowledge_count": {
"type": "integer"
},
"my_permission": {
"description": "Effective permission for current user = min(Permission, MyRoleInOrg)",
"type": "string"
},
"my_role_in_org": {
"description": "Current user's role in this organization (admin/editor/viewer)",
"type": "string"
},
"organization_id": {
"type": "string"
},
"organization_name": {
"type": "string"
},
"permission": {
"description": "Share permission (what the space was granted: viewer/editor)",
"type": "string"
},
"require_approval": {
"type": "boolean"
},
"shared_by_user_id": {
"type": "string"
},
"shared_by_username": {
"type": "string"
},
"source_tenant_id": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.KnowledgeMoveProgress": {
"type": "object",
"properties": {
"created_at": {
"description": "任务创建时间",
"type": "integer"
},
"error": {
"description": "错误信息",
"type": "string"
},
"failed": {
"description": "失败数",
"type": "integer"
},
"message": {
"description": "状态消息",
"type": "string"
},
"processed": {
"description": "已处理数",
"type": "integer"
},
"progress": {
"description": "0-100",
"type": "integer"
},
"source_kb_id": {
"type": "string"
},
"status": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KBCloneTaskStatus"
},
"target_kb_id": {
"type": "string"
},
"task_id": {
"type": "string"
},
"total": {
"description": "总知识数",
"type": "integer"
},
"updated_at": {
"description": "最后更新时间",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ListMembersResponse": {
"type": "object",
"properties": {
"members": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrganizationMemberResponse"
}
},
"total": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ListOrganizationsResponse": {
"type": "object",
"properties": {
"organizations": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrganizationResponse"
}
},
"resource_counts": {
"description": "各空间内知识库/智能体数量,供列表侧栏展示",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ResourceCountsByOrgResponse"
}
]
},
"total": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ListSharesResponse": {
"type": "object",
"properties": {
"shares": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBaseShareResponse"
}
},
"total": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.LocalEngineConfig": {
"type": "object",
"properties": {
"path_prefix": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.LoginRequest": {
"type": "object",
"required": [
"email",
"password"
],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string",
"minLength": 6
}
}
},
"github_com_Tencent_WeKnora_internal_types.LoginResponse": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"refresh_token": {
"type": "string"
},
"success": {
"type": "boolean"
},
"tenant": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant"
},
"token": {
"type": "string"
},
"user": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.User"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MCPAdvancedConfig": {
"type": "object",
"properties": {
"retry_count": {
"description": "Number of retries, default: 3",
"type": "integer"
},
"retry_delay": {
"description": "Delay between retries in seconds, default: 1",
"type": "integer"
},
"timeout": {
"description": "Timeout in seconds, default: 30",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MCPAuthConfig": {
"type": "object",
"properties": {
"api_key": {
"type": "string"
},
"custom_headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"token": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MCPEnvVars": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"github_com_Tencent_WeKnora_internal_types.MCPHeaders": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"github_com_Tencent_WeKnora_internal_types.MCPService": {
"type": "object",
"properties": {
"advanced_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPAdvancedConfig"
},
"auth_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPAuthConfig"
},
"created_at": {
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"description": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"env_vars": {
"description": "Environment variables for stdio",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPEnvVars"
}
]
},
"headers": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPHeaders"
},
"id": {
"type": "string"
},
"is_builtin": {
"description": "Whether this is a builtin MCP service (visible to all tenants)",
"type": "boolean"
},
"name": {
"type": "string"
},
"stdio_config": {
"description": "Required for stdio transport",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPStdioConfig"
}
]
},
"tenant_id": {
"type": "integer"
},
"transport_type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MCPTransportType"
},
"updated_at": {
"type": "string"
},
"url": {
"description": "Optional: required for SSE/HTTP Streamable",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MCPStdioConfig": {
"type": "object",
"properties": {
"args": {
"description": "Command arguments array",
"type": "array",
"items": {
"type": "string"
}
},
"command": {
"description": "Command: \"uvx\" or \"npx\"",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MCPTransportType": {
"type": "string",
"enum": [
"sse",
"http-streamable",
"stdio"
],
"x-enum-comments": {
"MCPTransportHTTPStreamable": "HTTP Streamable",
"MCPTransportSSE": "Server-Sent Events",
"MCPTransportStdio": "Stdio (Standard Input/Output)"
},
"x-enum-descriptions": [
"Server-Sent Events",
"HTTP Streamable",
"Stdio (Standard Input/Output)"
],
"x-enum-varnames": [
"MCPTransportSSE",
"MCPTransportHTTPStreamable",
"MCPTransportStdio"
]
},
"github_com_Tencent_WeKnora_internal_types.ManualKnowledgePayload": {
"type": "object",
"properties": {
"channel": {
"type": "string"
},
"content": {
"type": "string"
},
"status": {
"type": "string"
},
"tag_id": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MatchType": {
"type": "integer",
"enum": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"x-enum-comments": {
"MatchTypeDataAnalysis": "数据分析匹配类型",
"MatchTypeDirectLoad": "直接加载匹配类型",
"MatchTypeParentChunk": "父Chunk匹配类型",
"MatchTypeRelationChunk": "关系Chunk匹配类型",
"MatchTypeWebSearch": "网络搜索匹配类型"
},
"x-enum-descriptions": [
"",
"",
"",
"",
"父Chunk匹配类型",
"关系Chunk匹配类型",
"",
"网络搜索匹配类型",
"直接加载匹配类型",
"数据分析匹配类型"
],
"x-enum-varnames": [
"MatchTypeEmbedding",
"MatchTypeKeywords",
"MatchTypeNearByChunk",
"MatchTypeHistory",
"MatchTypeParentChunk",
"MatchTypeRelationChunk",
"MatchTypeGraph",
"MatchTypeWebSearch",
"MatchTypeDirectLoad",
"MatchTypeDataAnalysis"
]
},
"github_com_Tencent_WeKnora_internal_types.MentionedItem": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kb_type": {
"description": "\"document\" or \"faq\" (only for kb type)",
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"description": "\"kb\" for knowledge base, \"file\" for file",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.Message": {
"type": "object",
"properties": {
"agent_duration_ms": {
"description": "Agent total execution duration in milliseconds (from query start to answer start)",
"type": "integer"
},
"agent_steps": {
"description": "Agent execution steps (only for assistant messages generated by agent)\nThis contains the detailed reasoning process and tool calls made by the agent\nStored for user history display, but NOT included in LLM context to avoid redundancy",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.AgentStep"
}
},
"attachments": {
"description": "Attached files (documents, audio, etc., for user messages)",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MessageAttachment"
}
},
"channel": {
"description": "Channel indicates the source channel of this message (e.g., \"web\", \"api\", \"im\")",
"type": "string"
},
"content": {
"description": "Message text content",
"type": "string"
},
"created_at": {
"description": "Message creation timestamp",
"type": "string"
},
"deleted_at": {
"description": "Soft delete timestamp",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"id": {
"description": "Unique identifier for the message",
"type": "string"
},
"images": {
"description": "Attached images with OCR/Caption text (for user messages)",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MessageImage"
}
},
"is_completed": {
"description": "Whether message generation is complete",
"type": "boolean"
},
"is_fallback": {
"description": "Whether this response is a fallback (no knowledge base match found)",
"type": "boolean"
},
"knowledge_id": {
"description": "KnowledgeID links this message to a Knowledge entry in the chat history knowledge base\nUsed for vector search indexing: when set, the message content has been indexed as a Knowledge passage",
"type": "string"
},
"knowledge_references": {
"description": "References to knowledge chunks used in the response",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.SearchResult"
}
},
"mentioned_items": {
"description": "Mentioned knowledge bases and files (for user messages)\nStores the @mentioned items when user sends a message",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MentionedItem"
}
},
"request_id": {
"description": "Request identifier for tracking API requests",
"type": "string"
},
"role": {
"description": "Message role: \"user\", \"assistant\", \"system\"",
"type": "string"
},
"session_id": {
"description": "ID of the session this message belongs to",
"type": "string"
},
"updated_at": {
"description": "Last update timestamp",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MessageAttachment": {
"type": "object",
"properties": {
"content": {
"description": "Extracted text content (for small text files)",
"type": "string"
},
"file_name": {
"description": "Original filename",
"type": "string"
},
"file_size": {
"description": "File size in bytes",
"type": "integer"
},
"file_type": {
"description": "File extension (e.g., \".pdf\", \".docx\")",
"type": "string"
},
"is_truncated": {
"description": "Whether content was truncated",
"type": "boolean"
},
"line_count": {
"description": "Total line count (for text files)",
"type": "integer"
},
"url": {
"description": "Storage URL (provider://path)",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MessageImage": {
"type": "object",
"properties": {
"caption": {
"type": "string"
},
"url": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.MinIOEngineConfig": {
"type": "object",
"properties": {
"access_key_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"mode": {
"description": "\"docker\" or \"remote\"",
"type": "string"
},
"path_prefix": {
"type": "string"
},
"secret_access_key": {
"type": "string"
},
"use_ssl": {
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ModelParameters": {
"type": "object",
"properties": {
"api_key": {
"type": "string"
},
"app_id": {
"description": "WeKnoraCloud 厂商专用凭证",
"type": "string"
},
"app_secret": {
"description": "AES-256 加密存储,实际承载上游 API Key",
"type": "string"
},
"base_url": {
"type": "string"
},
"custom_headers": {
"description": "CustomHeaders 允许在调用远程模型 API 时附加自定义 HTTP 请求头,\n用途类似 Python OpenAI SDK 的 extra_headers 参数,\n常见场景包括透传企业网关鉴权信息、追踪 ID、路由标识等。\n保留字段(Authorization、api-key、Content-Type、Accept 等)会在运行期被忽略以避免破坏签名/鉴权流程。",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"embedding_parameters": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.EmbeddingParameters"
},
"extra_config": {
"description": "Provider-specific configuration",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"interface_type": {
"type": "string"
},
"parameter_size": {
"description": "Ollama model parameter size (e.g., \"7B\", \"13B\", \"70B\")",
"type": "string"
},
"provider": {
"description": "Provider identifier: openai, aliyun, zhipu, generic",
"type": "string"
},
"supports_vision": {
"description": "Whether the model accepts image/multimodal input",
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ModelSource": {
"type": "string",
"enum": [
"local",
"remote",
"aliyun",
"zhipu",
"volcengine",
"deepseek",
"hunyuan",
"minimax",
"openai",
"gemini",
"mimo",
"siliconflow",
"jina",
"openrouter",
"nvidia",
"novita",
"azure_openai"
],
"x-enum-comments": {
"ModelSourceAliyun": "Aliyun DashScope model",
"ModelSourceAzureOpenAI": "Azure OpenAI model",
"ModelSourceDeepseek": "Deepseek model",
"ModelSourceGemini": "Gemini model",
"ModelSourceHunyuan": "Hunyuan model",
"ModelSourceJina": "Jina AI model",
"ModelSourceLocal": "Local model",
"ModelSourceMimo": "Mimo model",
"ModelSourceMinimax": "Minimax mode",
"ModelSourceNovita": "Novita AI model",
"ModelSourceNvidia": "NVIDIA model",
"ModelSourceOpenAI": "OpenAI model",
"ModelSourceOpenRouter": "OpenRouter model",
"ModelSourceRemote": "Remote model",
"ModelSourceSiliconFlow": "SiliconFlow model",
"ModelSourceVolcengine": "Volcengine model",
"ModelSourceZhipu": "Zhipu model"
},
"x-enum-descriptions": [
"Local model",
"Remote model",
"Aliyun DashScope model",
"Zhipu model",
"Volcengine model",
"Deepseek model",
"Hunyuan model",
"Minimax mode",
"OpenAI model",
"Gemini model",
"Mimo model",
"SiliconFlow model",
"Jina AI model",
"OpenRouter model",
"NVIDIA model",
"Novita AI model",
"Azure OpenAI model"
],
"x-enum-varnames": [
"ModelSourceLocal",
"ModelSourceRemote",
"ModelSourceAliyun",
"ModelSourceZhipu",
"ModelSourceVolcengine",
"ModelSourceDeepseek",
"ModelSourceHunyuan",
"ModelSourceMinimax",
"ModelSourceOpenAI",
"ModelSourceGemini",
"ModelSourceMimo",
"ModelSourceSiliconFlow",
"ModelSourceJina",
"ModelSourceOpenRouter",
"ModelSourceNvidia",
"ModelSourceNovita",
"ModelSourceAzureOpenAI"
]
},
"github_com_Tencent_WeKnora_internal_types.ModelType": {
"type": "string",
"enum": [
"Embedding",
"Rerank",
"KnowledgeQA",
"VLLM",
"ASR"
],
"x-enum-comments": {
"ModelTypeASR": "ASR (Automatic Speech Recognition) model",
"ModelTypeEmbedding": "Embedding model",
"ModelTypeKnowledgeQA": "KnowledgeQA model",
"ModelTypeRerank": "Rerank model",
"ModelTypeVLLM": "VLLM model"
},
"x-enum-descriptions": [
"Embedding model",
"Rerank model",
"KnowledgeQA model",
"VLLM model",
"ASR (Automatic Speech Recognition) model"
],
"x-enum-varnames": [
"ModelTypeEmbedding",
"ModelTypeRerank",
"ModelTypeKnowledgeQA",
"ModelTypeVLLM",
"ModelTypeASR"
]
},
"github_com_Tencent_WeKnora_internal_types.OIDCAuthURLResponse": {
"type": "object",
"properties": {
"authorization_url": {
"type": "string"
},
"provider_display_name": {
"type": "string"
},
"state": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.OIDCConfigResponse": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"provider_display_name": {
"type": "string"
},
"success": {
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.OSSEngineConfig": {
"type": "object",
"properties": {
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_key": {
"type": "string"
},
"temp_bucket_name": {
"type": "string"
},
"temp_region": {
"type": "string"
},
"use_temp_bucket": {
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.OrgMemberRole": {
"type": "string",
"enum": [
"admin",
"editor",
"viewer"
],
"x-enum-varnames": [
"OrgRoleAdmin",
"OrgRoleEditor",
"OrgRoleViewer"
]
},
"github_com_Tencent_WeKnora_internal_types.OrganizationMemberResponse": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"email": {
"type": "string"
},
"id": {
"type": "string"
},
"joined_at": {
"type": "string"
},
"role": {
"type": "string"
},
"tenant_id": {
"type": "integer"
},
"user_id": {
"type": "string"
},
"username": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.OrganizationResponse": {
"type": "object",
"properties": {
"agent_share_count": {
"description": "共享到该组织的智能体数量",
"type": "integer"
},
"avatar": {
"type": "string"
},
"created_at": {
"type": "string"
},
"description": {
"type": "string"
},
"has_pending_upgrade": {
"description": "当前用户是否有待处理的权限升级申请",
"type": "boolean"
},
"id": {
"type": "string"
},
"invite_code": {
"type": "string"
},
"invite_code_expires_at": {
"type": "string"
},
"invite_code_validity_days": {
"type": "integer"
},
"is_owner": {
"type": "boolean"
},
"member_count": {
"type": "integer"
},
"member_limit": {
"description": "0 = unlimited",
"type": "integer"
},
"my_role": {
"type": "string"
},
"name": {
"type": "string"
},
"owner_id": {
"type": "string"
},
"pending_join_request_count": {
"description": "待审批加入申请数(仅管理员可见)",
"type": "integer"
},
"require_approval": {
"type": "boolean"
},
"searchable": {
"type": "boolean"
},
"share_count": {
"description": "共享到该组织的知识库数量",
"type": "integer"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ParserEngineConfig": {
"type": "object",
"properties": {
"mineru_api_key": {
"description": "MinerU 云 API Key",
"type": "string"
},
"mineru_cloud_enable_formula": {
"type": "boolean"
},
"mineru_cloud_enable_ocr": {
"type": "boolean"
},
"mineru_cloud_enable_table": {
"type": "boolean"
},
"mineru_cloud_language": {
"type": "string"
},
"mineru_cloud_model": {
"description": "MinerU 云 API 解析参数",
"type": "string"
},
"mineru_enable_formula": {
"type": "boolean"
},
"mineru_enable_ocr": {
"type": "boolean"
},
"mineru_enable_table": {
"type": "boolean"
},
"mineru_endpoint": {
"description": "MinerU 自建服务端点",
"type": "string"
},
"mineru_language": {
"type": "string"
},
"mineru_model": {
"description": "MinerU 自建解析参数",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ParserEngineRule": {
"type": "object",
"properties": {
"engine": {
"type": "string"
},
"file_types": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.QuestionGenerationConfig": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"question_count": {
"description": "Number of questions to generate per chunk (default: 3, max: 10)",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.RegisterRequest": {
"type": "object",
"required": [
"email",
"password",
"username"
],
"properties": {
"email": {
"type": "string"
},
"password": {
"type": "string",
"minLength": 6
},
"username": {
"type": "string",
"maxLength": 50,
"minLength": 2
}
}
},
"github_com_Tencent_WeKnora_internal_types.RegisterResponse": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"success": {
"type": "boolean"
},
"tenant": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant"
},
"user": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.User"
}
}
},
"github_com_Tencent_WeKnora_internal_types.RequestRoleUpgradeRequest": {
"type": "object",
"required": [
"requested_role"
],
"properties": {
"message": {
"description": "Optional message explaining the reason",
"type": "string",
"maxLength": 500
},
"requested_role": {
"description": "The role user wants to upgrade to",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.Resource": {
"type": "object",
"properties": {
"description": {
"description": "Optional description",
"type": "string"
},
"external_id": {
"description": "Unique identifier in the external system",
"type": "string"
},
"has_children": {
"description": "Whether this resource has children that can be expanded",
"type": "boolean"
},
"metadata": {
"description": "Additional metadata",
"type": "object",
"additionalProperties": true
},
"modified_at": {
"description": "Last modified time in external system",
"type": "string"
},
"name": {
"description": "Display name",
"type": "string"
},
"parent_id": {
"description": "For hierarchical resources (parent ID if applicable)",
"type": "string"
},
"type": {
"description": "Resource type (document, folder, space, page, etc.)",
"type": "string"
},
"url": {
"description": "URL to access in external system",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ResourceCountsByOrgResponse": {
"type": "object",
"properties": {
"agents": {
"type": "object",
"properties": {
"by_organization": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
}
}
},
"knowledge_bases": {
"type": "object",
"properties": {
"by_organization": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
}
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.RetrievalConfig": {
"type": "object",
"properties": {
"embedding_top_k": {
"description": "EmbeddingTopK is the maximum number of chunks returned by vector search (default: 50)",
"type": "integer"
},
"keyword_threshold": {
"description": "KeywordThreshold is the minimum keyword match score (0-1, default: 0.3)",
"type": "number"
},
"rerank_model_id": {
"description": "RerankModelID is the ID of the rerank model to use (required for search)",
"type": "string"
},
"rerank_threshold": {
"description": "RerankThreshold is the minimum rerank score (-10 to 10, default: 0.2)",
"type": "number"
},
"rerank_top_k": {
"description": "RerankTopK is the maximum number of results after reranking (default: 10)",
"type": "integer"
},
"rrf_k": {
"description": "RRFK is the smoothing constant of Reciprocal Rank Fusion. Larger values\nflatten the curve, reducing the bias towards top-1 results.\nDefault: 60. Sensible range: 30..100 depending on corpus size.",
"type": "integer"
},
"rrf_keyword_weight": {
"description": "RRFKeywordWeight is the keyword counterpart. Default: 0.3.",
"type": "number"
},
"rrf_vector_weight": {
"description": "RRFVectorWeight is the weight applied to the vector retriever inside RRF.\nRRFVectorWeight + RRFKeywordWeight should usually sum to 1.0 but the math\nworks for any positive weights. Default: 0.7.",
"type": "number"
},
"vector_threshold": {
"description": "VectorThreshold is the minimum vector similarity score (0-1, default: 0.15)",
"type": "number"
}
}
},
"github_com_Tencent_WeKnora_internal_types.RetrieverEngineParams": {
"type": "object",
"properties": {
"retriever_engine_type": {
"description": "Retriever engine type",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineType"
}
]
},
"retriever_type": {
"description": "Retriever type",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverType"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.RetrieverEngineType": {
"type": "string",
"enum": [
"postgres",
"elasticsearch",
"infinity",
"elasticfaiss",
"qdrant",
"milvus",
"weaviate",
"doris",
"sqlite",
"tencent_vectordb"
],
"x-enum-varnames": [
"PostgresRetrieverEngineType",
"ElasticsearchRetrieverEngineType",
"InfinityRetrieverEngineType",
"ElasticFaissRetrieverEngineType",
"QdrantRetrieverEngineType",
"MilvusRetrieverEngineType",
"WeaviateRetrieverEngineType",
"DorisRetrieverEngineType",
"SQLiteRetrieverEngineType",
"TencentVectorDBRetrieverEngineType"
]
},
"github_com_Tencent_WeKnora_internal_types.RetrieverEngines": {
"type": "object",
"properties": {
"engines": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineParams"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.RetrieverType": {
"type": "string",
"enum": [
"keywords",
"vector",
"websearch"
],
"x-enum-comments": {
"KeywordsRetrieverType": "Keywords retriever",
"VectorRetrieverType": "Vector retriever",
"WebSearchRetrieverType": "Web search retriever"
},
"x-enum-descriptions": [
"Keywords retriever",
"Vector retriever",
"Web search retriever"
],
"x-enum-varnames": [
"KeywordsRetrieverType",
"VectorRetrieverType",
"WebSearchRetrieverType"
]
},
"github_com_Tencent_WeKnora_internal_types.ReviewJoinRequestRequest": {
"type": "object",
"properties": {
"approved": {
"type": "boolean"
},
"message": {
"type": "string",
"maxLength": 500
},
"role": {
"description": "Optional: role to assign when approving; overrides applicant's requested role",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.S3EngineConfig": {
"type": "object",
"properties": {
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_key": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.SearchParams": {
"type": "object",
"properties": {
"disable_keywords_match": {
"type": "boolean"
},
"disable_vector_match": {
"type": "boolean"
},
"keyword_threshold": {
"type": "number"
},
"knowledge_base_ids": {
"description": "KnowledgeBaseIDs overrides the single KB ID passed to HybridSearch,\nallowing a single retrieval call to span multiple KBs that share the\nsame embedding model. When empty, HybridSearch uses its own id parameter.",
"type": "array",
"items": {
"type": "string"
}
},
"knowledge_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"match_count": {
"type": "integer"
},
"only_recommended": {
"type": "boolean"
},
"query_embedding": {
"type": "array",
"items": {
"type": "number"
}
},
"query_text": {
"type": "string"
},
"skip_context_enrichment": {
"description": "SkipContextEnrichment skips fetching parent, nearby, and relation chunks\nin processSearchResults. Used by the chat pipeline where context assembly\nis handled separately in the merge stage.",
"type": "boolean"
},
"tag_ids": {
"description": "Tag IDs for filtering (used for FAQ priority filtering)",
"type": "array",
"items": {
"type": "string"
}
},
"vector_threshold": {
"type": "number"
}
}
},
"github_com_Tencent_WeKnora_internal_types.SearchResult": {
"type": "object",
"properties": {
"chunk_index": {
"description": "Chunk index",
"type": "integer"
},
"chunk_metadata": {
"description": "ChunkMetadata stores chunk-level metadata (e.g., generated questions)",
"type": "array",
"items": {
"type": "integer"
}
},
"chunk_type": {
"description": "Chunk 类型",
"type": "string"
},
"content": {
"description": "Content",
"type": "string"
},
"end_at": {
"description": "End at",
"type": "integer"
},
"id": {
"description": "ID",
"type": "string"
},
"image_info": {
"description": "图片信息 (JSON 格式)",
"type": "string"
},
"knowledge_base_id": {
"description": "KnowledgeBaseID is the ID of the knowledge base this result belongs to",
"type": "string"
},
"knowledge_channel": {
"description": "KnowledgeChannel indicates through which channel the knowledge was ingested (web, api, wechat, etc.)",
"type": "string"
},
"knowledge_description": {
"description": "KnowledgeDescription is the description of the knowledge document",
"type": "string"
},
"knowledge_filename": {
"description": "Knowledge file name\nUsed for file type knowledge, contains the original file name",
"type": "string"
},
"knowledge_id": {
"description": "Knowledge ID",
"type": "string"
},
"knowledge_source": {
"description": "Knowledge source\nUsed to indicate the source of the knowledge, such as \"url\"",
"type": "string"
},
"knowledge_title": {
"description": "Knowledge title",
"type": "string"
},
"match_type": {
"description": "Match type",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MatchType"
}
]
},
"matched_content": {
"description": "MatchedContent is the actual content that was matched in vector search\nFor FAQ: this is the matched question text (standard or similar question)",
"type": "string"
},
"metadata": {
"description": "Metadata",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"parent_chunk_id": {
"description": "父 Chunk ID",
"type": "string"
},
"score": {
"description": "Score",
"type": "number"
},
"seq": {
"description": "Seq",
"type": "integer"
},
"start_at": {
"description": "Start at",
"type": "integer"
},
"sub_chunk_id": {
"description": "SubChunkIndex",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.Session": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"description": {
"description": "Description",
"type": "string"
},
"id": {
"description": "ID",
"type": "string"
},
"is_pinned": {
"description": "IsPinned indicates whether the session is pinned in the list.",
"type": "boolean"
},
"pinned_at": {
"description": "PinnedAt records when the session was pinned; nil when not pinned.",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID",
"type": "integer"
},
"title": {
"description": "Title",
"type": "string"
},
"updated_at": {
"type": "string"
},
"user_id": {
"description": "UserID is the owner of the session. Empty for legacy rows (visible at\ntenant level) and for IM-created sessions that do not map to a WeKnora user.",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.ShareKnowledgeBaseRequest": {
"type": "object",
"required": [
"organization_id",
"permission"
],
"properties": {
"organization_id": {
"type": "string"
},
"permission": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
}
},
"github_com_Tencent_WeKnora_internal_types.StorageConfig": {
"type": "object",
"properties": {
"app_id": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"provider": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_id": {
"type": "string"
},
"secret_key": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.StorageEngineConfig": {
"type": "object",
"properties": {
"cos": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.COSEngineConfig"
},
"default_provider": {
"description": "\"local\", \"minio\", \"cos\", \"tos\", \"s3\", \"oss\", \"ks3\"",
"type": "string"
},
"ks3": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KS3EngineConfig"
},
"local": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.LocalEngineConfig"
},
"minio": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MinIOEngineConfig"
},
"oss": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OSSEngineConfig"
},
"s3": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.S3EngineConfig"
},
"tos": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.TOSEngineConfig"
}
}
},
"github_com_Tencent_WeKnora_internal_types.StorageProviderConfig": {
"type": "object",
"properties": {
"provider": {
"description": "\"local\", \"minio\", \"cos\", \"tos\", \"s3\", \"oss\", \"ks3\"",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.SubmitJoinRequestRequest": {
"type": "object",
"required": [
"invite_code"
],
"properties": {
"invite_code": {
"type": "string",
"maxLength": 32,
"minLength": 8
},
"message": {
"type": "string",
"maxLength": 500
},
"role": {
"description": "Optional: role the applicant requests (admin/editor/viewer); default viewer",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.SyncLog": {
"type": "object",
"properties": {
"created_at": {
"description": "Creation timestamp (usually same as StartedAt)",
"type": "string"
},
"data_source_id": {
"description": "Reference to the data source",
"type": "string"
},
"error_message": {
"description": "Error details if status is \"failed\"",
"type": "string"
},
"finished_at": {
"description": "Sync completion time",
"type": "string"
},
"id": {
"description": "Unique identifier",
"type": "string"
},
"items_created": {
"description": "New items created in knowledge base",
"type": "integer"
},
"items_deleted": {
"description": "Items deleted from knowledge base",
"type": "integer"
},
"items_failed": {
"description": "Items that failed to sync",
"type": "integer"
},
"items_skipped": {
"description": "Items skipped (no changes detected)",
"type": "integer"
},
"items_total": {
"description": "Total items fetched from source",
"type": "integer"
},
"items_updated": {
"description": "Existing items updated",
"type": "integer"
},
"result": {
"description": "Detailed sync result (JSON-encoded)",
"type": "array",
"items": {
"type": "integer"
}
},
"started_at": {
"description": "Sync start time",
"type": "string"
},
"status": {
"description": "Sync status: running, success, partial, failed, canceled",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID",
"type": "integer"
},
"updated_at": {
"description": "Last update timestamp",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.TOSEngineConfig": {
"type": "object",
"properties": {
"access_key": {
"type": "string"
},
"bucket_name": {
"type": "string"
},
"endpoint": {
"type": "string"
},
"path_prefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secret_key": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.Tenant": {
"type": "object",
"properties": {
"agent_config": {
"description": "Deprecated: AgentConfig is deprecated, use CustomAgent (builtin-smart-reasoning) config instead.\nThis field is kept for backward compatibility and will be removed in future versions.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.AgentConfig"
}
]
},
"api_key": {
"description": "API key",
"type": "string"
},
"business": {
"description": "Business",
"type": "string"
},
"chat_history_config": {
"description": "Chat history config: knowledge base configuration for indexing and searching chat messages via vector search",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ChatHistoryConfig"
}
]
},
"context_config": {
"description": "Global Context configuration for this tenant (default for all sessions)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ContextConfig"
}
]
},
"conversation_config": {
"description": "Deprecated: ConversationConfig is deprecated, use CustomAgent (builtin-quick-answer) config instead.\nThis field is kept for backward compatibility and will be removed in future versions.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ConversationConfig"
}
]
},
"created_at": {
"description": "Creation time",
"type": "string"
},
"credentials": {
"description": "Credentials config: third-party provider credentials (e.g. WeKnoraCloud AppID/AppSecret)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.CredentialsConfig"
}
]
},
"deleted_at": {
"description": "Deletion time",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"description": {
"description": "Description",
"type": "string"
},
"id": {
"description": "ID",
"type": "integer"
},
"name": {
"description": "Name",
"type": "string"
},
"parser_engine_config": {
"description": "Parser engine config overrides (MinerU endpoint, API key, etc.). Used when parsing documents; overrides env.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineConfig"
}
]
},
"retrieval_config": {
"description": "Retrieval config: global search/retrieval parameters shared by knowledge search and message search",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrievalConfig"
}
]
},
"retriever_engines": {
"description": "Retriever engines",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngines"
}
]
},
"status": {
"description": "Status",
"type": "string"
},
"storage_engine_config": {
"description": "Storage engine config: parameters for Local, MinIO, COS. Used for document/file storage and docreader.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.StorageEngineConfig"
}
]
},
"storage_quota": {
"description": "Storage quota (Bytes), default is 10GB, including vector, original file, text, index, etc.",
"type": "integer"
},
"storage_used": {
"description": "Storage used (Bytes)",
"type": "integer"
},
"updated_at": {
"description": "Last updated time",
"type": "string"
},
"web_search_config": {
"description": "Global WebSearch configuration for this tenant",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchConfig"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.ToolCall": {
"type": "object",
"properties": {
"args": {
"description": "Tool arguments",
"type": "object",
"additionalProperties": true
},
"duration": {
"description": "Execution time in milliseconds",
"type": "integer"
},
"id": {
"description": "Function call ID from LLM",
"type": "string"
},
"name": {
"description": "Tool name",
"type": "string"
},
"reflection": {
"description": "Agent's reflection on this tool call result (if enabled)",
"type": "string"
},
"result": {
"description": "Execution result (contains Output)",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ToolResult"
}
]
}
}
},
"github_com_Tencent_WeKnora_internal_types.ToolResult": {
"type": "object",
"properties": {
"data": {
"description": "Structured data for programmatic use",
"type": "object",
"additionalProperties": true
},
"error": {
"description": "Error message if execution failed",
"type": "string"
},
"images": {
"description": "Base64 data URIs from tool (e.g. MCP image content)",
"type": "array",
"items": {
"type": "string"
}
},
"output": {
"description": "Human-readable output",
"type": "string"
},
"success": {
"description": "Whether the tool executed successfully",
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.UpdateMemberRoleRequest": {
"type": "object",
"required": [
"role"
],
"properties": {
"role": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
}
},
"github_com_Tencent_WeKnora_internal_types.UpdateOrganizationRequest": {
"type": "object",
"properties": {
"avatar": {
"description": "optional avatar URL",
"type": "string",
"maxLength": 512
},
"description": {
"type": "string",
"maxLength": 1000
},
"invite_code_validity_days": {
"description": "0=never, 1, 7, 30",
"type": "integer"
},
"member_limit": {
"description": "max members; 0=unlimited",
"type": "integer"
},
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"require_approval": {
"type": "boolean"
},
"searchable": {
"description": "open for search so others can discover and join",
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.UpdateSharePermissionRequest": {
"type": "object",
"required": [
"permission"
],
"properties": {
"permission": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole"
}
}
},
"github_com_Tencent_WeKnora_internal_types.User": {
"type": "object",
"properties": {
"avatar": {
"description": "Avatar URL of the user",
"type": "string"
},
"can_access_all_tenants": {
"description": "Whether the user can access all tenants (cross-tenant access)",
"type": "boolean"
},
"created_at": {
"description": "Creation time of the user",
"type": "string"
},
"deleted_at": {
"description": "Deletion time of the user",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"email": {
"description": "Email address of the user",
"type": "string"
},
"id": {
"description": "Unique identifier of the user",
"type": "string"
},
"is_active": {
"description": "Whether the user is active",
"type": "boolean"
},
"tenant": {
"description": "Association relationship, not stored in the database",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant"
}
]
},
"tenant_id": {
"description": "Tenant ID that the user belongs to",
"type": "integer"
},
"updated_at": {
"description": "Last updated time of the user",
"type": "string"
},
"username": {
"description": "Username of the user",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.VLMConfig": {
"type": "object",
"properties": {
"api_key": {
"description": "API Key",
"type": "string"
},
"base_url": {
"description": "Base URL",
"type": "string"
},
"enabled": {
"type": "boolean"
},
"interface_type": {
"description": "Interface Type: \"ollama\" or \"openai\"",
"type": "string"
},
"model_id": {
"type": "string"
},
"model_name": {
"description": "兼容老版本\nModel Name",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WeKnoraCloudCredentials": {
"type": "object",
"properties": {
"app_id": {
"type": "string"
},
"app_secret": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WebSearchConfig": {
"type": "object",
"properties": {
"api_key": {
"description": "Deprecated: Use WebSearchProviderEntity.Parameters.APIKey instead.",
"type": "string"
},
"blacklist": {
"description": "黑名单规则列表",
"type": "array",
"items": {
"type": "string"
}
},
"compression_method": {
"description": "压缩方法:none, summary, extract, rag",
"type": "string"
},
"document_fragments": {
"description": "文档片段数量(用于RAG压缩)",
"type": "integer"
},
"embedding_dimension": {
"description": "嵌入维度(用于RAG压缩)",
"type": "integer"
},
"embedding_model_id": {
"description": "RAG压缩相关配置",
"type": "string"
},
"include_date": {
"description": "是否包含日期",
"type": "boolean"
},
"max_results": {
"description": "最大搜索结果数",
"type": "integer"
},
"provider": {
"description": "Deprecated: Use WebSearchProviderEntity.Parameters.APIKey instead.",
"type": "string"
},
"proxy_url": {
"description": "Optional per-request proxy override; normally empty — use WebSearchProviderEntity.Parameters.proxy_url. Merged at call time when set.",
"type": "string"
},
"rerank_model_id": {
"description": "重排模型ID(用于RAG压缩)",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity": {
"type": "object",
"properties": {
"created_at": {
"description": "Timestamps",
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"description": {
"description": "Description",
"type": "string"
},
"id": {
"description": "Unique identifier (UUID, auto-generated)",
"type": "string"
},
"is_default": {
"description": "Whether this is the default provider for the tenant",
"type": "boolean"
},
"name": {
"description": "User-friendly name, e.g., \"Production Bing Search\"",
"type": "string"
},
"parameters": {
"description": "Provider-specific parameters (API key, engine ID, etc.) stored as encrypted JSON",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters"
}
]
},
"provider": {
"description": "Provider type: bing, google, duckduckgo, tavily",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderType"
}
]
},
"tenant_id": {
"description": "Tenant ID for scoping",
"type": "integer"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters": {
"type": "object",
"properties": {
"api_key": {
"description": "API key for the search provider (encrypted in DB)",
"type": "string"
},
"engine_id": {
"description": "Google Custom Search Engine ID (only for Google provider)",
"type": "string"
},
"extra_config": {
"description": "Provider-specific extra configuration for future extensibility",
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"proxy_url": {
"description": "Optional HTTP/HTTPS proxy URL for outbound search requests (e.g. http://host:port); validated with utils.ValidateURLForSSRF.\nDoes not replace the search API endpoint; only tunnels traffic to the official APIs.",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WebSearchProviderType": {
"type": "string",
"enum": [
"bing",
"google",
"duckduckgo",
"tavily",
"ollama",
"baidu"
],
"x-enum-varnames": [
"WebSearchProviderTypeBing",
"WebSearchProviderTypeGoogle",
"WebSearchProviderTypeDuckDuckGo",
"WebSearchProviderTypeTavily",
"WebSearchProviderTypeOllama",
"WebSearchProviderTypeBaidu"
]
},
"github_com_Tencent_WeKnora_internal_types.WikiConfig": {
"type": "object",
"properties": {
"extraction_granularity": {
"description": "ExtractionGranularity controls how many candidate slugs Pass 0 extracts\nper document. Empty / unknown value is treated as WikiExtractionStandard.",
"allOf": [
{
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiExtractionGranularity"
}
]
},
"ingest_batch_size": {
"description": "IngestBatchSize controls how many pending ops a single batch\nprocesses before scheduling a follow-up. 0 falls back to the\nhard-coded default (5). Operators on large KBs (4w+ docs) can\nraise this to 1020 to amortize the lock-acquire / index-rebuild\noverhead across more documents per round.",
"type": "integer"
},
"ingest_map_parallel": {
"description": "IngestMapParallel sets the errgroup limit for the Map phase\n(per-document extraction + summary + chunk citation). 0 falls\nback to 10. Bound by the LLM provider's concurrency limit and\nthe worker's outbound HTTP pool.",
"type": "integer"
},
"ingest_reduce_parallel": {
"description": "IngestReduceParallel sets the errgroup limit for the Reduce phase\n(per-slug page write). 0 falls back to 10. Bound by the same\nLLM concurrency / HTTP pool considerations as the Map phase,\nplus DB connection pool size.",
"type": "integer"
},
"max_pages_per_ingest": {
"description": "MaxPagesPerIngest limits pages created/updated per ingest operation (0 = no limit)",
"type": "integer"
},
"synthesis_model_id": {
"description": "SynthesisModelID is the LLM model ID used for wiki page generation and updates",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiExtractionGranularity": {
"type": "string",
"enum": [
"focused",
"standard",
"exhaustive"
],
"x-enum-varnames": [
"WikiExtractionFocused",
"WikiExtractionStandard",
"WikiExtractionExhaustive"
]
},
"github_com_Tencent_WeKnora_internal_types.WikiGraphData": {
"type": "object",
"properties": {
"edges": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphEdge"
}
},
"meta": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphMeta"
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphNode"
}
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiGraphEdge": {
"type": "object",
"properties": {
"source": {
"description": "source slug",
"type": "string"
},
"target": {
"description": "target slug",
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiGraphMeta": {
"type": "object",
"properties": {
"center": {
"description": "populated in ego mode",
"type": "string"
},
"depth": {
"description": "populated in ego mode",
"type": "integer"
},
"mode": {
"type": "string"
},
"returned": {
"description": "number of nodes actually returned",
"type": "integer"
},
"total": {
"description": "total node count in the KB before filtering/limit",
"type": "integer"
},
"truncated": {
"description": "true when Returned \u003c Total (after filters)",
"type": "boolean"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiGraphNode": {
"type": "object",
"properties": {
"link_count": {
"description": "Number of inbound + outbound links",
"type": "integer"
},
"page_type": {
"type": "string"
},
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiIndexEntry": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"summary": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiIndexGroup": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexEntry"
}
},
"next_cursor": {
"type": "string"
},
"total": {
"type": "integer"
},
"type": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiIndexResponse": {
"type": "object",
"properties": {
"groups": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexGroup"
}
},
"intro": {
"type": "string"
},
"version": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiLogEntry": {
"type": "object",
"properties": {
"action": {
"description": "Short operation tag: \"ingest\", \"retract\", etc. Matches the ` + "`" + `action` + "`" + `\nargument historically passed to appendLogEntry.",
"type": "string"
},
"created_at": {
"description": "Server-side timestamp (UTC).",
"type": "string"
},
"doc_title": {
"description": "Document title at the time of the event. Stored verbatim rather than\njoined at read time so deleted knowledge still has a human-readable\nlabel in the log.",
"type": "string"
},
"id": {
"description": "Auto-increment identifier. Monotonic within a single database, so\nfrontend pagination uses it as a stable cursor without needing to\ndisambiguate identical created_at values.",
"type": "integer"
},
"knowledge_base_id": {
"description": "Knowledge base this event belongs to.",
"type": "string"
},
"knowledge_id": {
"description": "Knowledge ID the event was about (may be empty for KB-level events).",
"type": "string"
},
"pages_affected": {
"description": "Wiki pages affected by this event. Each ref carries both slug (for\nnavigation) and title (for display) so the log renders human-\nreadable text without a post-hoc slug→title lookup that might fail\nfor now-deleted pages.",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogPageRef"
}
},
"summary": {
"description": "One-line summary of the change, as it was when the event was logged.",
"type": "string"
},
"tenant_id": {
"description": "Tenant scope, mirrored from the enclosing knowledge base.",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiLogEntryListResponse": {
"type": "object",
"properties": {
"entries": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogEntry"
}
},
"next_cursor": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiLogPageRef": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiPage": {
"type": "object",
"properties": {
"aliases": {
"description": "Alternate names, abbreviations, acronyms or translated names",
"type": "array",
"items": {
"type": "string"
}
},
"chunk_refs": {
"description": "ChunkRefs records the specific source-document chunks this page was\nbuilt from — one UUID per cited chunk. Populated during ingest from\nthe chunk-citation pass; refreshed wholesale whenever the page is\nre-materialized. Empty for summary pages (they are document-level\nsynopses and don't carry chunk-level citations). Use this when you\nneed to surface the underlying evidence for a wiki page, or to\nretract citations when a source document is deleted.",
"type": "array",
"items": {
"type": "string"
}
},
"content": {
"description": "Full markdown content",
"type": "string"
},
"created_at": {
"description": "Creation time",
"type": "string"
},
"deleted_at": {
"description": "Soft delete",
"allOf": [
{
"$ref": "#/definitions/gorm.DeletedAt"
}
]
},
"id": {
"description": "Unique identifier (UUID)",
"type": "string"
},
"in_links": {
"description": "Slugs of pages that link TO this page (backlinks)",
"type": "array",
"items": {
"type": "string"
}
},
"knowledge_base_id": {
"description": "Knowledge base this page belongs to",
"type": "string"
},
"out_links": {
"description": "Slugs of pages this page links to (outbound links)",
"type": "array",
"items": {
"type": "string"
}
},
"page_metadata": {
"description": "Arbitrary metadata (tags, categories, dates, etc.)",
"type": "array",
"items": {
"type": "integer"
}
},
"page_type": {
"description": "Page type: summary, entity, concept, index, log, synthesis, comparison",
"type": "string"
},
"slug": {
"description": "URL-friendly slug for addressing, e.g. \"entity/acme-corp\", \"concept/rag\"\nUnique within a knowledge base",
"type": "string"
},
"source_refs": {
"description": "References to source knowledge IDs that contributed to this page.\nFormat matches the legacy \"\u003cknowledge_id\u003e|\u003cdoc_title\u003e\" convention used\nacross the ingest pipeline, so retract / display code can split on ` + "`" + `|` + "`" + `\nto recover the title. Document-level granularity.",
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"description": "Page status: draft, published, archived",
"type": "string"
},
"summary": {
"description": "One-line summary for index listing",
"type": "string"
},
"tenant_id": {
"description": "Tenant ID for multi-tenant isolation",
"type": "integer"
},
"title": {
"description": "Human-readable title",
"type": "string"
},
"updated_at": {
"description": "Last update time",
"type": "string"
},
"version": {
"description": "Version number. Incremented only when a user-visible content field\n(title, content, summary, page_type, status) actually changes; pure\nbookkeeping writes (link maintenance, same-content re-ingest, status\nsync from background jobs) leave it untouched so it can be used as a\nreal \"the page was edited\" signal.",
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiPageIssue": {
"type": "object",
"properties": {
"created_at": {
"type": "string"
},
"deleted_at": {
"$ref": "#/definitions/gorm.DeletedAt"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"issue_type": {
"type": "string"
},
"knowledge_base_id": {
"type": "string"
},
"reported_by": {
"type": "string"
},
"slug": {
"type": "string"
},
"status": {
"type": "string"
},
"suspected_knowledge_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"tenant_id": {
"type": "integer"
},
"updated_at": {
"type": "string"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiPageListResponse": {
"type": "object",
"properties": {
"page": {
"type": "integer"
},
"page_size": {
"type": "integer"
},
"pages": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
},
"total": {
"type": "integer"
},
"total_pages": {
"type": "integer"
}
}
},
"github_com_Tencent_WeKnora_internal_types.WikiStats": {
"type": "object",
"properties": {
"is_active": {
"description": "whether wiki ingestion is currently running",
"type": "boolean"
},
"orphan_count": {
"description": "pages with no inbound links",
"type": "integer"
},
"pages_by_type": {
"type": "object",
"additionalProperties": {
"type": "integer",
"format": "int64"
}
},
"pending_issues": {
"description": "number of pending wiki issues",
"type": "integer"
},
"pending_tasks": {
"description": "number of documents waiting to be ingested",
"type": "integer"
},
"recent_updates": {
"description": "last N updated pages",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage"
}
},
"total_links": {
"type": "integer"
},
"total_pages": {
"type": "integer"
}
}
},
"gorm.DeletedAt": {
"type": "object",
"properties": {
"time": {
"type": "string"
},
"valid": {
"description": "Valid is true if Time is not NULL",
"type": "boolean"
}
}
},
"internal_handler.BatchDeleteKnowledgeRequest": {
"type": "object",
"required": [
"ids",
"kb_id"
],
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
}
},
"kb_id": {
"type": "string"
}
}
},
"internal_handler.CopyKnowledgeBaseRequest": {
"type": "object",
"required": [
"source_id"
],
"properties": {
"source_id": {
"type": "string"
},
"target_id": {
"type": "string"
},
"task_id": {
"type": "string"
}
}
},
"internal_handler.CreateAgentRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"avatar": {
"type": "string"
},
"config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.CustomAgentConfig"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"internal_handler.CreateModelRequest": {
"type": "object",
"required": [
"name",
"parameters",
"source",
"type"
],
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelParameters"
},
"source": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelSource"
},
"type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelType"
}
}
},
"internal_handler.CreateStoreRequest": {
"type": "object",
"required": [
"connection_config",
"engine_type",
"name"
],
"properties": {
"connection_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ConnectionConfig"
},
"engine_type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineType"
},
"index_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.IndexConfig"
},
"name": {
"type": "string"
}
}
},
"internal_handler.DeleteTagRequest": {
"type": "object",
"properties": {
"exclude_ids": {
"description": "Chunk seq_ids to exclude from deletion",
"type": "array",
"items": {
"type": "integer"
}
}
}
},
"internal_handler.EvaluationRequest": {
"type": "object",
"properties": {
"chat_id": {
"description": "ID of chat model to use",
"type": "string"
},
"dataset_id": {
"description": "ID of dataset to evaluate",
"type": "string"
},
"knowledge_base_id": {
"description": "ID of knowledge base to use",
"type": "string"
},
"rerank_id": {
"description": "ID of rerank model to use",
"type": "string"
}
}
},
"internal_handler.FabriTextRequest": {
"type": "object",
"required": [
"model_id"
],
"properties": {
"model_id": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_handler.GetStorageEngineStatusResponse": {
"type": "object",
"properties": {
"allowed_providers": {
"type": "array",
"items": {
"type": "string"
}
},
"engines": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_handler.StorageEngineStatusItem"
}
},
"minio_env_available": {
"type": "boolean"
}
}
},
"internal_handler.GetSystemInfoResponse": {
"type": "object",
"properties": {
"build_time": {
"type": "string"
},
"commit_id": {
"type": "string"
},
"db_version": {
"type": "string"
},
"edition": {
"type": "string"
},
"go_version": {
"type": "string"
},
"graph_database_engine": {
"type": "string"
},
"keyword_index_engine": {
"type": "string"
},
"minio_enabled": {
"type": "boolean"
},
"vector_store_engine": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"internal_handler.InitializationRequest": {
"type": "object",
"required": [
"documentSplitting",
"embedding",
"llm"
],
"properties": {
"documentSplitting": {
"type": "object",
"required": [
"chunkSize",
"separators"
],
"properties": {
"chunkOverlap": {
"type": "integer",
"minimum": 0
},
"chunkSize": {
"type": "integer",
"maximum": 10000,
"minimum": 100
},
"separators": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
}
}
},
"embedding": {
"type": "object",
"required": [
"modelName",
"source"
],
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"dimension": {
"description": "添加embedding维度字段",
"type": "integer"
},
"modelName": {
"type": "string"
},
"source": {
"type": "string"
}
}
},
"llm": {
"type": "object",
"required": [
"modelName",
"source"
],
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"modelName": {
"type": "string"
},
"source": {
"type": "string"
}
}
},
"multimodal": {
"type": "object",
"properties": {
"cos": {
"type": "object",
"properties": {
"appId": {
"type": "string"
},
"bucketName": {
"type": "string"
},
"pathPrefix": {
"type": "string"
},
"region": {
"type": "string"
},
"secretId": {
"type": "string"
},
"secretKey": {
"type": "string"
}
}
},
"enabled": {
"type": "boolean"
},
"minio": {
"type": "object",
"properties": {
"bucketName": {
"type": "string"
},
"pathPrefix": {
"type": "string"
}
}
},
"storageType": {
"type": "string"
},
"vlm": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"interfaceType": {
"description": "\"ollama\" or \"openai\"",
"type": "string"
},
"modelName": {
"type": "string"
}
}
}
}
},
"nodeExtract": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attributes": {
"type": "array",
"items": {
"type": "string"
}
},
"name": {
"type": "string"
}
}
}
},
"relations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"node1": {
"type": "string"
},
"node2": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"text": {
"type": "string"
}
}
},
"questionGeneration": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"questionCount": {
"type": "integer"
}
}
},
"rerank": {
"type": "object",
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"modelName": {
"type": "string"
}
}
}
}
},
"internal_handler.KBModelConfigRequest": {
"type": "object",
"required": [
"llmModelId"
],
"properties": {
"asr_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ASRConfig"
},
"documentSplitting": {
"description": "文档分块配置",
"type": "object",
"properties": {
"childChunkSize": {
"type": "integer"
},
"chunkOverlap": {
"type": "integer"
},
"chunkSize": {
"type": "integer"
},
"enableParentChild": {
"type": "boolean"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"parentChunkSize": {
"type": "integer"
},
"parserEngineRules": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineRule"
}
},
"separators": {
"type": "array",
"items": {
"type": "string"
}
},
"strategy": {
"description": "Strategy / TokenLimit / Languages use pointer types so the\nhandler can distinguish \"field absent in payload\" (no change)\nfrom \"field present with empty/zero value\" (clear / disable).\nWithout that distinction, users could set strategy=\"auto\" once\nbut never reset it back to legacy / unset.",
"type": "string"
},
"tokenLimit": {
"type": "integer"
}
}
},
"embeddingModelId": {
"description": "optional when RAG indexing is disabled",
"type": "string"
},
"llmModelId": {
"type": "string"
},
"multimodal": {
"description": "多模态配置(仅模型相关;存储引擎在 storageProvider 中配置)",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
}
},
"nodeExtract": {
"description": "知识图谱配置",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"nodes": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.GraphNode"
}
},
"relations": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.GraphRelation"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"text": {
"type": "string"
}
}
},
"questionGeneration": {
"description": "问题生成配置",
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"questionCount": {
"type": "integer"
}
}
},
"storageProvider": {
"description": "存储引擎选择(\"local\" | \"minio\" | \"cos\"),影响文档上传与文档内图片存储,参数从全局设置读取",
"type": "string"
},
"vlm_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.VLMConfig"
}
}
},
"internal_handler.ModelTestRequest": {
"type": "object",
"required": [
"modelName"
],
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"customHeaders": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"dimension": {
"type": "integer"
},
"extraConfig": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"interfaceType": {
"type": "string"
},
"modelName": {
"type": "string"
},
"provider": {
"type": "string"
},
"source": {
"description": "为空时按需默认为 \"remote\"",
"type": "string"
}
}
},
"internal_handler.MoveKnowledgeRequest": {
"type": "object",
"required": [
"knowledge_ids",
"mode",
"source_kb_id",
"target_kb_id"
],
"properties": {
"knowledge_ids": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"mode": {
"type": "string",
"enum": [
"reuse_vectors",
"reparse"
]
},
"source_kb_id": {
"type": "string"
},
"target_kb_id": {
"type": "string"
}
}
},
"internal_handler.MoveKnowledgeResponse": {
"type": "object",
"properties": {
"knowledge_count": {
"type": "integer"
},
"message": {
"type": "string"
},
"source_kb_id": {
"type": "string"
},
"target_kb_id": {
"type": "string"
},
"task_id": {
"type": "string"
}
}
},
"internal_handler.PreviewChunkResult": {
"type": "object",
"properties": {
"content": {
"type": "string"
},
"context_header": {
"type": "string"
},
"end": {
"type": "integer"
},
"seq": {
"type": "integer"
},
"size_chars": {
"type": "integer"
},
"size_tokens_approx": {
"type": "integer"
},
"start": {
"type": "integer"
}
}
},
"internal_handler.PreviewChunkingPayload": {
"type": "object",
"properties": {
"chunk_overlap": {
"type": "integer"
},
"chunk_size": {
"type": "integer"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"separators": {
"type": "array",
"items": {
"type": "string"
}
},
"strategy": {
"type": "string"
},
"token_limit": {
"type": "integer"
}
}
},
"internal_handler.PreviewChunkingRequest": {
"type": "object",
"properties": {
"chunking_config": {
"$ref": "#/definitions/internal_handler.PreviewChunkingPayload"
},
"text": {
"type": "string"
}
}
},
"internal_handler.PreviewChunkingResponse": {
"type": "object",
"properties": {
"chunks": {
"type": "array",
"items": {
"$ref": "#/definitions/internal_handler.PreviewChunkResult"
}
},
"profile": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.DocProfile"
},
"rejected": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.TierRejection"
}
},
"selected_tier": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier"
},
"stats": {
"$ref": "#/definitions/internal_handler.PreviewChunkingStats"
},
"tier_chain": {
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier"
}
}
}
},
"internal_handler.PreviewChunkingStats": {
"type": "object",
"properties": {
"avg_chars": {
"type": "integer"
},
"count": {
"type": "integer"
},
"max_chars": {
"type": "integer"
},
"min_chars": {
"type": "integer"
},
"stddev_chars": {
"type": "integer"
},
"truncated_to": {
"description": "TruncatedTo, when set, is the original chunk count before the\nresponse was truncated to previewMaxChunks for transport.",
"type": "integer"
}
}
},
"internal_handler.RemoteModelCheckRequest": {
"type": "object",
"required": [
"modelName"
],
"properties": {
"apiKey": {
"type": "string"
},
"baseUrl": {
"type": "string"
},
"customHeaders": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"dimension": {
"type": "integer"
},
"extraConfig": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"interfaceType": {
"type": "string"
},
"modelName": {
"type": "string"
},
"provider": {
"type": "string"
},
"source": {
"description": "为空时按需默认为 \"remote\"",
"type": "string"
}
}
},
"internal_handler.SearchMessagesRequest": {
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"description": "Maximum number of results to return (default: 20)",
"type": "integer"
},
"mode": {
"description": "Search mode: \"keyword\", \"vector\", \"hybrid\" (default: \"hybrid\")",
"type": "string"
},
"query": {
"description": "Query text for search",
"type": "string"
},
"session_ids": {
"description": "Filter by specific session IDs (optional)",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"internal_handler.StorageCheckRequest": {
"type": "object",
"properties": {
"cos": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.COSEngineConfig"
},
"ks3": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KS3EngineConfig"
},
"minio": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.MinIOEngineConfig"
},
"oss": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.OSSEngineConfig"
},
"provider": {
"description": "\"minio\", \"cos\", \"tos\", \"s3\", \"oss\", \"ks3\"",
"type": "string"
},
"s3": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.S3EngineConfig"
},
"tos": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.TOSEngineConfig"
}
}
},
"internal_handler.StorageCheckResponse": {
"type": "object",
"properties": {
"bucket_created": {
"type": "boolean"
},
"message": {
"type": "string"
},
"ok": {
"type": "boolean"
}
}
},
"internal_handler.StorageEngineStatusItem": {
"type": "object",
"properties": {
"allowed": {
"type": "boolean"
},
"available": {
"description": "whether the engine can be used",
"type": "boolean"
},
"description": {
"description": "short description for UI",
"type": "string"
},
"name": {
"description": "\"local\", \"minio\", \"cos\", \"tos\", \"s3\", \"oss\", \"ks3\"",
"type": "string"
}
}
},
"internal_handler.TestProviderRequest": {
"type": "object",
"required": [
"provider"
],
"properties": {
"parameters": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters"
},
"provider": {
"type": "string"
}
}
},
"internal_handler.TestStoreRequest": {
"type": "object",
"required": [
"connection_config",
"engine_type"
],
"properties": {
"connection_config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ConnectionConfig"
},
"engine_type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineType"
}
}
},
"internal_handler.TextRelationExtractionRequest": {
"type": "object",
"required": [
"model_id",
"tags",
"text"
],
"properties": {
"model_id": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"text": {
"type": "string"
}
}
},
"internal_handler.UpdateAgentRequest": {
"type": "object",
"properties": {
"avatar": {
"type": "string"
},
"config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.CustomAgentConfig"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"internal_handler.UpdateChunkRequest": {
"type": "object",
"properties": {
"chunk_index": {
"type": "integer"
},
"content": {
"type": "string"
},
"embedding": {
"type": "array",
"items": {
"type": "number"
}
},
"end_at": {
"type": "integer"
},
"image_info": {
"type": "string"
},
"is_enabled": {
"type": "boolean"
},
"start_at": {
"type": "integer"
}
}
},
"internal_handler.UpdateKnowledgeBaseRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"config": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBaseConfig"
},
"description": {
"type": "string"
},
"name": {
"type": "string"
}
}
},
"internal_handler.UpdateModelRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelParameters"
},
"source": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelSource"
},
"type": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.ModelType"
}
}
},
"internal_handler.UpdateProviderRequest": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"is_default": {
"type": "boolean"
},
"name": {
"type": "string"
},
"parameters": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters"
}
}
},
"internal_handler.UpdateStoreRequest": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
},
"internal_handler.addSimilarQuestionsRequest": {
"type": "object",
"required": [
"similar_questions"
],
"properties": {
"similar_questions": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
}
}
},
"internal_handler.updateLastFAQImportResultDisplayStatusRequest": {
"type": "object",
"required": [
"display_status"
],
"properties": {
"display_status": {
"type": "string",
"enum": [
"open",
"close"
]
}
}
},
"internal_handler_session.AttachmentUpload": {
"type": "object",
"properties": {
"data": {
"description": "Base64-encoded file content",
"type": "string"
},
"file_name": {
"description": "Original filename",
"type": "string"
},
"file_size": {
"description": "File size in bytes",
"type": "integer"
}
}
},
"internal_handler_session.CreateKnowledgeQARequest": {
"type": "object",
"required": [
"query"
],
"properties": {
"agent_enabled": {
"description": "Whether agent mode is enabled for this request",
"type": "boolean"
},
"agent_id": {
"description": "Selected custom agent ID (backend resolves shared agent and its tenant from share relation)",
"type": "string"
},
"attachment_uploads": {
"description": "Attached files (documents, audio, etc.)",
"type": "array",
"items": {
"$ref": "#/definitions/internal_handler_session.AttachmentUpload"
}
},
"channel": {
"description": "Source channel: \"web\", \"api\", \"im\", etc.",
"type": "string"
},
"disable_title": {
"description": "Whether to disable auto title generation",
"type": "boolean"
},
"enable_memory": {
"description": "Whether memory feature is enabled for this request",
"type": "boolean"
},
"images": {
"description": "Attached images for multimodal chat",
"type": "array",
"items": {
"$ref": "#/definitions/internal_handler_session.ImageAttachment"
}
},
"knowledge_base_ids": {
"description": "Selected knowledge base ID for this request",
"type": "array",
"items": {
"type": "string"
}
},
"knowledge_ids": {
"description": "Selected knowledge ID for this request",
"type": "array",
"items": {
"type": "string"
}
},
"mentioned_items": {
"description": "@mentioned knowledge bases and files",
"type": "array",
"items": {
"$ref": "#/definitions/internal_handler_session.MentionedItemRequest"
}
},
"query": {
"description": "Query text for knowledge base search",
"type": "string"
},
"summary_model_id": {
"description": "Optional summary model ID for this request (overrides session default)",
"type": "string"
},
"web_search_enabled": {
"description": "Whether web search is enabled for this request",
"type": "boolean"
}
}
},
"internal_handler_session.CreateSessionRequest": {
"type": "object",
"properties": {
"description": {
"description": "Description for the session (optional)",
"type": "string"
},
"title": {
"description": "Title for the session (optional)",
"type": "string"
}
}
},
"internal_handler_session.GenerateTitleRequest": {
"type": "object",
"required": [
"messages"
],
"properties": {
"messages": {
"description": "Messages to use as context for title generation",
"type": "array",
"items": {
"$ref": "#/definitions/github_com_Tencent_WeKnora_internal_types.Message"
}
}
}
},
"internal_handler_session.ImageAttachment": {
"type": "object",
"properties": {
"caption": {
"description": "VLM analysis result (context-aware, single call)",
"type": "string"
},
"data": {
"description": "base64 data URI from frontend (data:image/png;base64,...)",
"type": "string"
},
"url": {
"description": "serving URL after saving to storage",
"type": "string"
}
}
},
"internal_handler_session.MentionedItemRequest": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"kb_type": {
"description": "\"document\" or \"faq\" (only for kb type)",
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"description": "\"kb\" for knowledge base, \"file\" for file",
"type": "string"
}
}
},
"internal_handler_session.SearchKnowledgeRequest": {
"type": "object",
"required": [
"query"
],
"properties": {
"knowledge_base_id": {
"description": "Single knowledge base ID (for backward compatibility)",
"type": "string"
},
"knowledge_base_ids": {
"description": "IDs of knowledge bases to search (multi-KB support)",
"type": "array",
"items": {
"type": "string"
}
},
"knowledge_ids": {
"description": "IDs of specific knowledge (files) to search",
"type": "array",
"items": {
"type": "string"
}
},
"query": {
"description": "Query text to search for",
"type": "string"
}
}
},
"internal_handler_session.StopSessionRequest": {
"type": "object",
"required": [
"message_id"
],
"properties": {
"message_id": {
"type": "string"
}
}
},
"internal_handler_session.batchDeleteRequest": {
"type": "object",
"properties": {
"delete_all": {
"type": "boolean"
},
"ids": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
},
"securityDefinitions": {
"ApiKeyAuth": {
"description": "租户身份认证:输入 sk- 开头的 API Key",
"type": "apiKey",
"name": "X-API-Key",
"in": "header"
},
"Bearer": {
"description": "用户登录认证:输入 Bearer {token} 格式的 JWT 令牌",
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}`
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Host: "",
BasePath: "/api/v1",
Schemes: []string{},
Title: "WeKnora API",
Description: "WeKnora 知识库管理系统 API 文档",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
LeftDelim: "{{",
RightDelim: "}}",
}
func init() {
swag.Register(SwaggerInfo.InstanceName(), SwaggerInfo)
}