Files
Enterprise-Knowledge-Base/docs/swagger.yaml
T

12151 lines
341 KiB
YAML
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.
basePath: /api/v1
definitions:
github_com_Tencent_WeKnora_internal_application_service.WikiLintIssue:
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
broken link target, or the entity slug for a missing cross-ref). It is
the structured field used by AutoFix instead of parsing Description.
type: string
type:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueType'
type: object
github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueSeverity:
enum:
- info
- warning
- error
type: string
x-enum-varnames:
- SeverityInfo
- SeverityWarning
- SeverityError
github_com_Tencent_WeKnora_internal_application_service.WikiLintIssueType:
enum:
- orphan_page
- broken_link
- stale_ref
- missing_cross_ref
- empty_content
- duplicate_slug
type: string
x-enum-varnames:
- LintIssueOrphanPage
- LintIssueBrokenLink
- LintIssueStaleRef
- LintIssueMissingCrossRef
- LintIssueEmptyContent
- LintIssueDuplicateSlug
github_com_Tencent_WeKnora_internal_application_service.WikiLintReport:
properties:
health_score:
description: 0-100
type: integer
issues:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintIssue'
type: array
knowledge_base_id:
type: string
stats:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiStats'
summary:
type: string
type: object
github_com_Tencent_WeKnora_internal_datasource.ConnectorMetadata:
properties:
auth_type:
description: '"oauth2", "api_key", "token", etc.'
type: string
capabilities:
description: '"incremental", "webhook", "deletion_sync", etc.'
items:
type: string
type: array
description:
type: string
icon:
type: string
name:
type: string
priority:
description: Priority order for UI display (lower = higher priority)
type: integer
type:
type: string
type: object
github_com_Tencent_WeKnora_internal_errors.AppError:
properties:
code:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.ErrorCode'
details: {}
message:
type: string
type: object
github_com_Tencent_WeKnora_internal_errors.ErrorCode:
enum:
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 2000
- 2001
- 2002
- 2003
- 2004
- 2100
- 2101
- 2102
- 2103
- 2200
- 2201
type: integer
x-enum-varnames:
- ErrBadRequest
- ErrUnauthorized
- ErrForbidden
- ErrNotFound
- ErrMethodNotAllowed
- ErrConflict
- ErrTooManyRequests
- ErrInternalServer
- ErrServiceUnavailable
- ErrTimeout
- ErrValidation
- ErrTenantNotFound
- ErrTenantAlreadyExists
- ErrTenantInactive
- ErrTenantNameRequired
- ErrTenantInvalidStatus
- ErrAgentMissingThinkingModel
- ErrAgentMissingAllowedTools
- ErrAgentInvalidMaxIterations
- ErrAgentInvalidTemperature
- ErrVectorStoreBindingInvalid
- ErrVectorStoreUnavailable
github_com_Tencent_WeKnora_internal_infrastructure_chunker.DocProfile:
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)
items:
type: string
type: array
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:
additionalProperties:
type: integer
description: Markdown structure
type: object
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
type: object
github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier:
enum:
- heading
- heuristic
- legacy
type: string
x-enum-varnames:
- TierHeading
- TierHeuristic
- TierLegacy
github_com_Tencent_WeKnora_internal_infrastructure_chunker.TierRejection:
properties:
reason:
type: string
tier:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier'
type: object
github_com_Tencent_WeKnora_internal_types.ASRConfig:
properties:
enabled:
type: boolean
language:
description: 'optional: language hint for transcription'
type: string
model_id:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.AgentStep:
properties:
iteration:
description: Iteration number (0-indexed)
type: integer
reasoning_content:
description: |-
ReasoningContent stores the OpenAI-protocol reasoning_content emitted by the
model in this round. Persisted on AgentStep so cross-turn replay can put it
back on the assistant message — required by MiMo / DeepSeek V3.2+ thinking
mode, ignored by providers that don't recognize the field.
type: string
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)
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ToolCall'
type: array
type: object
github_com_Tencent_WeKnora_internal_types.AnswerStrategy:
enum:
- all
- random
type: string
x-enum-varnames:
- AnswerStrategyAll
- AnswerStrategyRandom
github_com_Tencent_WeKnora_internal_types.AuditAction:
enum:
- rbac.member_added
- rbac.member_removed
- rbac.member_role_changed
- rbac.member_left
- rbac.access_denied
- rbac.invitation_sent
- rbac.invitation_accepted
- rbac.invitation_declined
- rbac.invitation_revoked
- rbac.invitation_expired
type: string
x-enum-varnames:
- AuditActionMemberAdded
- AuditActionMemberRemoved
- AuditActionMemberRoleChanged
- AuditActionMemberLeft
- AuditActionAccessDenied
- AuditActionInvitationSent
- AuditActionInvitationAccepted
- AuditActionInvitationDeclined
- AuditActionInvitationRevoked
- AuditActionInvitationExpired
github_com_Tencent_WeKnora_internal_types.AuditLog:
properties:
action:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.AuditAction'
actor_role:
type: string
actor_user_id:
type: string
created_at:
type: string
details:
items:
type: integer
type: array
id:
type: integer
outcome:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.AuditOutcome'
request_method:
type: string
request_path:
type: string
target_id:
type: string
target_type:
type: string
target_user_id:
type: string
tenant_id:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.AuditOutcome:
enum:
- success
- denied
type: string
x-enum-varnames:
- AuditOutcomeSuccess
- AuditOutcomeDenied
github_com_Tencent_WeKnora_internal_types.COSEngineConfig:
properties:
app_id:
type: string
bucket_name:
type: string
path_prefix:
type: string
region:
type: string
secret_id:
type: string
secret_key:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ChatHistoryConfig:
properties:
embedding_model_id:
description: |-
EmbeddingModelID is the ID of the embedding model used for vectorizing chat messages.
Once 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.
This is set internally when the feature is first enabled; users should not set this directly.
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ChunkingConfig:
properties:
child_chunk_size:
description: |-
ChildChunkSize is the size of child chunks used for embedding (default: 384).
Only 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.
When enabled, large parent chunks provide context while small child chunks
are 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.
Examples: ["de"], ["en", "zh"].
items:
type: string
type: array
parent_chunk_size:
description: |-
ParentChunkSize is the size of parent chunks (default: 4096).
Only used when EnableParentChild is true.
type: integer
parser_engine_rules:
description: |-
ParserEngineRules configures which parser engine to use for each file type.
When empty, the builtin engine is used for all types.
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineRule'
type: array
separators:
description: Separators
items:
type: string
type: array
strategy:
description: |-
Strategy selects the adaptive chunking tier. Empty / "legacy" preserves
the historical recursive splitter; "auto" lets a profiler pick between
heading-aware, heuristic and recursive tiers; "heading" / "heuristic" /
"recursive" pin the tier explicitly.
type: string
token_limit:
description: |-
TokenLimit caps chunk size in approximate tokens. 0 = use ChunkSize
as a character count.
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.ConnectionConfig:
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).
Addr is reused for the MySQL protocol "host:9030"; HTTPPort + the host of Addr
together 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").
Auto-populated by TestConnection on successful connectivity check.
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ContextCompressionStrategy:
enum:
- sliding_window
- smart
type: string
x-enum-varnames:
- ContextCompressionSlidingWindow
- ContextCompressionSmart
github_com_Tencent_WeKnora_internal_types.ContextConfig:
properties:
compression_strategy:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ContextCompressionStrategy'
description: 'Compression strategy: "sliding_window" or "smart"'
max_tokens:
description: Maximum tokens allowed in LLM context
type: integer
recent_message_count:
description: |-
For sliding_window: number of messages to keep
For smart: number of recent messages to keep uncompressed
type: integer
summarize_threshold:
description: 'Summarize threshold: number of messages before summarization'
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.CreateOrganizationRequest:
properties:
avatar:
description: optional avatar URL
maxLength: 512
type: string
description:
maxLength: 1000
type: string
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:
maxLength: 255
minLength: 1
type: string
required:
- name
type: object
github_com_Tencent_WeKnora_internal_types.CredentialsConfig:
properties:
weknoracloud:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WeKnoraCloudCredentials'
type: object
github_com_Tencent_WeKnora_internal_types.CustomAgentConfig:
properties:
agent_mode:
description: |-
===== Basic Settings =====
Agent 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
system prompt, allowed tools and recommended KB compatibility.
Valid values: "rag-qa", "wiki-qa", "hybrid-rag-wiki", "custom".
Empty / unknown values are treated as "custom" (no preset applied).
Ignored for quick-answer mode.
type: string
allowed_tools:
description: Allowed tools (only for agent type)
items:
type: string
type: array
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.
If set and ContextTemplate is empty, the template content will be resolved at startup.
type: string
data_analysis_enabled:
description: |-
===== Data Analysis Settings =====
Whether to run the legacy in-pipeline DuckDB SQL data-analysis stage when
the retrieved chunks include CSV/Excel files. This issues an extra LLM
call to generate a SQL query and is disabled by default because most
quick-answer / RAG-style agents do not want the added latency.
type: boolean
embedding_top_k:
description: |-
===== Retrieval Strategy Settings (for both modes) =====
Embedding/Vector retrieval top K
type: integer
enable_query_expansion:
description: |-
===== Advanced Settings (mainly for normal mode) =====
Whether 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 > this value, use
FAQ answer directly
type: number
faq_priority_enabled:
description: |-
===== FAQ Strategy Settings =====
Whether 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".
Empty means use the global/tenant default provider.
type: string
image_upload_enabled:
description: |-
===== Image Upload / Multimodal Settings =====
Whether image upload is enabled for this agent (default: false)
type: boolean
kb_selection_mode:
description: |-
===== Knowledge Base Settings =====
Knowledge 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")
items:
type: string
type: array
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 =====
Maximum 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")
items:
type: string
type: array
model_id:
description: |-
===== Model Settings =====
Model ID to use for conversations
type: string
multi_turn_enabled:
description: |-
===== Multi-turn Conversation Settings =====
Whether multi-turn conversation is enabled
type: boolean
query_understand_model_id:
description: |-
Dedicated chat model ID for the query-understanding (rewrite + intent) step.
When empty, the main conversation ModelID is used as a fallback.
type: string
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)
When true, knowledge base retrieval only happens if user explicitly mentions KB/files with @
When 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")
items:
type: string
type: array
skills_selection_mode:
description: |-
===== Skills Settings (only for smart-reasoning mode) =====
Skills selection mode: "all" = all preloaded skills, "selected" = specific skills, "none" = no skills
type: string
suggested_prompts:
description: |-
===== Suggested Prompts =====
推荐问题列表,用于在前端对话面板展示快捷提问
items:
type: string
type: array
supported_file_types:
description: |-
===== File Type Restriction Settings =====
Supported file types for this agent (e.g., ["csv", "xlsx", "xls"])
Empty means all file types are supported
When set, only files with matching extensions can be used with this agent
items:
type: string
type: array
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.
If 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 =====
Whether 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.
If empty, the tenant's default provider (is_default=true) is used.
type: string
type: object
github_com_Tencent_WeKnora_internal_types.DataSource:
properties:
config:
description: |-
Encrypted configuration (API credentials, tokens, etc.)
Stored as JSON with AES-256-GCM encryption
items:
type: integer
type: array
conflict_strategy:
description: 'Conflict resolution strategy: overwrite or skip'
type: string
created_at:
description: Creation timestamp
type: string
deleted_at:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Soft delete timestamp
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)
items:
type: integer
type: array
last_sync_result:
description: Summary of last sync result
items:
type: integer
type: array
latest_sync_log:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog'
description: Latest sync log (not stored in DB, populated on query)
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
type: object
github_com_Tencent_WeKnora_internal_types.EmbeddingParameters:
properties:
dimension:
type: integer
truncate_prompt_tokens:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.ExtractConfig:
properties:
enabled:
type: boolean
nodes:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.GraphNode'
type: array
relations:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.GraphRelation'
type: array
tags:
items:
type: string
type: array
text:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.FAQBatchUpsertPayload:
properties:
dry_run:
description: 仅验证,不实际导入
type: boolean
entries:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload'
type: array
knowledge_id:
type: string
mode:
enum:
- append
- replace
type: string
task_id:
description: 可选,如果不传则自动生成UUID
type: string
required:
- entries
type: object
github_com_Tencent_WeKnora_internal_types.FAQConfig:
properties:
index_mode:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQIndexMode'
question_index_mode:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQQuestionIndexMode'
type: object
github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsBatchUpdate:
properties:
by_id:
additionalProperties:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate'
description: ByID 按条目ID更新,key为条目ID (seq_id)
type: object
by_tag:
additionalProperties:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate'
description: ByTag 按Tag批量更新,key为TagID (seq_id)
type: object
exclude_ids:
description: ExcludeIDs 在ByTag操作中需要排除的ID列表 (seq_id)
items:
type: integer
type: array
type: object
github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsUpdate:
properties:
is_enabled:
type: boolean
is_recommended:
type: boolean
tag_id:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.FAQEntryPayload:
properties:
answer_strategy:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.AnswerStrategy'
answers:
items:
type: string
type: array
id:
description: ID 可选,用于数据迁移时指定 seq_id(必须小于自增起始值 100000000)
type: integer
is_enabled:
type: boolean
is_recommended:
type: boolean
negative_questions:
items:
type: string
type: array
similar_questions:
items:
type: string
type: array
standard_question:
type: string
tag_id:
type: integer
tag_name:
type: string
required:
- standard_question
type: object
github_com_Tencent_WeKnora_internal_types.FAQIndexMode:
enum:
- question_only
- question_answer
type: string
x-enum-varnames:
- FAQIndexModeQuestionOnly
- FAQIndexModeQuestionAnswer
github_com_Tencent_WeKnora_internal_types.FAQQuestionIndexMode:
enum:
- combined
- separate
type: string
x-enum-varnames:
- FAQQuestionIndexModeCombined
- FAQQuestionIndexModeSeparate
github_com_Tencent_WeKnora_internal_types.FAQSearchRequest:
properties:
first_priority_tag_ids:
description: 第一优先级标签ID列表,限定命中范围,优先级最高
items:
type: integer
type: array
match_count:
type: integer
only_recommended:
description: 是否仅返回推荐的条目
type: boolean
query_text:
type: string
second_priority_tag_ids:
description: 第二优先级标签ID列表,限定命中范围,优先级低于第一优先级
items:
type: integer
type: array
vector_threshold:
type: number
required:
- query_text
type: object
github_com_Tencent_WeKnora_internal_types.GraphNode:
properties:
attributes:
items:
type: string
type: array
chunks:
items:
type: string
type: array
name:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.GraphRelation:
properties:
node1:
type: string
node2:
type: string
type:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig:
properties:
model_id:
description: Model ID
type: string
type: object
github_com_Tencent_WeKnora_internal_types.IndexConfig:
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
type: object
github_com_Tencent_WeKnora_internal_types.IndexingStrategy:
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
type: object
github_com_Tencent_WeKnora_internal_types.InviteMemberRequest:
properties:
representative_user_id:
description: |-
RepresentativeUserID identifies the user attached to the OTM row for
display/audit. Optional: when unset, the handler picks a stable default
(the user from the legacy UserID field, or the tenant's owner).
type: string
role:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
description: 'Role to assign: admin/editor/viewer'
tenant_id:
description: TenantID is the tenant to enrol as an org member. Preferred field.
type: integer
user_id:
description: |-
UserID is retained for backward compatibility. When set without
TenantID, the handler resolves the user's TenantID and uses this
user as the representative.
type: string
required:
- role
type: object
github_com_Tencent_WeKnora_internal_types.JoinByOrganizationIDRequest:
properties:
message:
description: Optional message for join request
maxLength: 500
type: string
organization_id:
type: string
role:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
description: 'Optional: requested role (admin/editor/viewer); default viewer'
required:
- organization_id
type: object
github_com_Tencent_WeKnora_internal_types.JoinOrganizationRequest:
properties:
invite_code:
maxLength: 32
minLength: 8
type: string
required:
- invite_code
type: object
github_com_Tencent_WeKnora_internal_types.KBCloneTaskStatus:
enum:
- pending
- processing
- completed
- failed
type: string
x-enum-varnames:
- KBCloneStatusPending
- KBCloneStatusProcessing
- KBCloneStatusCompleted
- KBCloneStatusFailed
github_com_Tencent_WeKnora_internal_types.KS3EngineConfig:
properties:
access_key:
type: string
bucket_name:
type: string
endpoint:
type: string
path_prefix:
type: string
region:
type: string
secret_key:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.Knowledge:
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:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Deletion time of the knowledge
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)
items:
type: integer
type: array
metadata:
description: Metadata of the knowledge
items:
type: integer
type: array
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
type: object
github_com_Tencent_WeKnora_internal_types.KnowledgeBase:
properties:
asr_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ASRConfig'
description: ASR config (Automatic Speech Recognition)
chunk_count:
description: Chunk count (not stored in database, calculated on query)
type: integer
chunking_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ChunkingConfig'
description: Chunking configuration
created_at:
description: Creation time of the knowledge base
type: string
creator_id:
description: |-
CreatorID records the user ID of whoever originally created the KB.
Used by the tenant-level RBAC middleware to let Contributors edit
their own KBs without granting them access to everyone else's.
Nullable for backward compatibility with rows created before the
RBAC migration backfilled the column to the tenant Owner.
type: string
creator_name:
description: |-
CreatorName 是 CreatorID 对应用户的展示名(username / email 等),
仅在列表场景由 handler 批量回填,不落库;为空表示创建者无法解析(用户已删除、
CreatorID 为空的老数据等)。前端用它在卡片来源徽章上做 mine vs tenant 的二分。
type: string
deleted_at:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Deletion time of the knowledge base
description:
description: Description of the knowledge base
type: string
embedding_model_id:
description: ID of the embedding model
type: string
extract_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ExtractConfig'
description: Extract config
faq_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQConfig'
description: FAQConfig stores FAQ specific configuration such as indexing
strategy
id:
description: Unique identifier of the knowledge base
type: string
image_processing_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig'
description: Image processing configuration
indexing_strategy:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.IndexingStrategy'
description: |-
IndexingStrategy controls which indexing pipelines are active for this knowledge base.
Pipelines: vector search, keyword search, wiki generation, knowledge graph extraction.
is_pinned:
description: |-
IsPinned and PinnedAt are computed per-caller from user_kb_pins
(see migration 000050). They used to be stored on the row itself,
which made pinning a tenant-wide ordering decision gated behind
the kb-edit RBAC guard. The columns are still present in legacy
schemas for rollback safety but are no longer read or written by
the application — both fields are tagged `gorm:"-"` so GORM
ignores them on every CRUD call and the list handler stamps them
after enriching with the caller's pin set.
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: |-
PinnedAt records when the current caller pinned this knowledge
base; nil when they have not.
type: string
processing_count:
description: ProcessingCount indicates the number of knowledge items being
processed (for document type knowledge bases)
type: integer
question_generation_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.QuestionGenerationConfig'
description: QuestionGenerationConfig stores question generation configuration
for document knowledge bases
share_count:
description: ShareCount indicates the number of organizations this knowledge
base is shared with (not stored in database)
type: integer
storage_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.StorageConfig'
description: 'Deprecated: legacy COS config column. Kept for backward compatibility
with old data.'
storage_provider_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.StorageProviderConfig'
description: 'Storage provider config (new): only stores provider selection;
credentials from tenant StorageEngineConfig'
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.
When nil, the KB falls back to the tenant's effective engines derived from
the RETRIEVE_DRIVER environment variable (env store flow).
This field is set once at creation time and must not be modified afterwards;
enforcement lives at the GORM layer (`<-:create`) plus the service-layer
KB update path, which omits this field from its update DTO.
type: string
vlm_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.VLMConfig'
description: VLM config
wiki_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiConfig'
description: WikiConfig stores wiki-specific configuration (only for wiki
type knowledge bases)
type: object
github_com_Tencent_WeKnora_internal_types.KnowledgeBaseConfig:
properties:
chunking_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ChunkingConfig'
description: Chunking configuration
faq_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQConfig'
description: FAQ configuration (only for FAQ type knowledge bases)
image_processing_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ImageProcessingConfig'
description: Image processing configuration
indexing_strategy:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.IndexingStrategy'
description: |-
IndexingStrategy controls which indexing pipelines are active.
nil means "no change" when updating (preserves existing strategy).
wiki_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiConfig'
description: Wiki configuration (only for wiki-enabled knowledge bases)
type: object
github_com_Tencent_WeKnora_internal_types.KnowledgeBaseShareResponse:
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
type: object
github_com_Tencent_WeKnora_internal_types.KnowledgeMoveProgress:
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
type: object
github_com_Tencent_WeKnora_internal_types.ListMembersResponse:
properties:
members:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrganizationMemberResponse'
type: array
total:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.ListOrganizationsResponse:
properties:
organizations:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrganizationResponse'
type: array
resource_counts:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ResourceCountsByOrgResponse'
description: 各空间内知识库/智能体数量,供列表侧栏展示
total:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.ListSharesResponse:
properties:
shares:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBaseShareResponse'
type: array
total:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.LocalEngineConfig:
properties:
path_prefix:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.LoginRequest:
properties:
email:
type: string
password:
minLength: 6
type: string
required:
- email
- password
type: object
github_com_Tencent_WeKnora_internal_types.LoginResponse:
properties:
active_tenant:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant'
description: |-
ActiveTenant is the tenant whose ID is encoded in the issued JWT;
future requests are scoped to it until the client calls /auth/switch-tenant.
Defaults to the user's home tenant on a fresh login.
memberships:
description: |-
Memberships lists every tenant the user can authenticate into,
along with their role in each. Always populated (length 1 for users
who only belong to their home tenant) so frontends can render a
tenant switcher without a follow-up request. Serialised without
omitempty so the field is always present as a JSON array (possibly
empty) — the "always populated" contract relies on the server side
guaranteeing a non-nil slice.
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Membership'
type: array
message:
type: string
refresh_token:
type: string
success:
type: boolean
token:
type: string
user:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.User'
type: object
github_com_Tencent_WeKnora_internal_types.MCPAdvancedConfig:
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
type: object
github_com_Tencent_WeKnora_internal_types.MCPAuthConfig:
properties:
api_key:
type: string
custom_headers:
additionalProperties:
type: string
type: object
token:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MCPEnvVars:
additionalProperties:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MCPHeaders:
additionalProperties:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MCPService:
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:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MCPEnvVars'
description: Environment variables for stdio
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:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MCPStdioConfig'
description: Required for stdio transport
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
type: object
github_com_Tencent_WeKnora_internal_types.MCPStdioConfig:
properties:
args:
description: Command arguments array
items:
type: string
type: array
command:
description: 'Command: "uvx" or "npx"'
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MCPTransportType:
enum:
- sse
- http-streamable
- stdio
type: string
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:
properties:
channel:
type: string
content:
type: string
status:
type: string
tag_id:
type: string
title:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MatchType:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
type: integer
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.Membership:
properties:
role:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.TenantRole'
tenant_id:
type: integer
tenant_name:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MentionedItem:
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
type: object
github_com_Tencent_WeKnora_internal_types.Message:
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)
This contains the detailed reasoning process and tool calls made by the agent
Stored for user history display, but NOT included in LLM context to avoid redundancy
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.AgentStep'
type: array
attachments:
description: Attached files (documents, audio, etc., for user messages)
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MessageAttachment'
type: array
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:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Soft delete timestamp
id:
description: Unique identifier for the message
type: string
images:
description: Attached images with OCR/Caption text (for user messages)
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MessageImage'
type: array
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
Used 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
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SearchResult'
type: array
mentioned_items:
description: |-
Mentioned knowledge bases and files (for user messages)
Stores the @mentioned items when user sends a message
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MentionedItem'
type: array
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
type: object
github_com_Tencent_WeKnora_internal_types.MessageAttachment:
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
type: object
github_com_Tencent_WeKnora_internal_types.MessageImage:
properties:
caption:
type: string
url:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.MinIOEngineConfig:
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
type: object
github_com_Tencent_WeKnora_internal_types.ModelParameters:
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:
additionalProperties:
type: string
description: |-
CustomHeaders 允许在调用远程模型 API 时附加自定义 HTTP 请求头,
用途类似 Python OpenAI SDK 的 extra_headers 参数,
常见场景包括透传企业网关鉴权信息、追踪 ID、路由标识等。
保留字段(Authorization、api-key、Content-Type、Accept 等)会在运行期被忽略以避免破坏签名/鉴权流程。
type: object
embedding_parameters:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.EmbeddingParameters'
extra_config:
additionalProperties:
type: string
description: Provider-specific configuration
type: object
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
type: object
github_com_Tencent_WeKnora_internal_types.ModelSource:
enum:
- local
- remote
- aliyun
- zhipu
- volcengine
- deepseek
- hunyuan
- minimax
- openai
- gemini
- mimo
- siliconflow
- jina
- openrouter
- nvidia
- novita
- azure_openai
type: string
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:
enum:
- Embedding
- Rerank
- KnowledgeQA
- VLLM
- ASR
type: string
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.OBSEngineConfig:
properties:
access_key:
type: string
bucket_name:
type: string
endpoint:
type: string
path_prefix:
type: string
region:
type: string
secret_key:
type: string
use_ssl:
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.OIDCAuthURLResponse:
properties:
authorization_url:
type: string
provider_display_name:
type: string
state:
type: string
success:
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.OIDCConfigResponse:
properties:
enabled:
type: boolean
provider_display_name:
type: string
success:
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.OSSEngineConfig:
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
type: object
github_com_Tencent_WeKnora_internal_types.OrgMemberRole:
enum:
- admin
- editor
- viewer
type: string
x-enum-varnames:
- OrgRoleAdmin
- OrgRoleEditor
- OrgRoleViewer
github_com_Tencent_WeKnora_internal_types.OrganizationMemberResponse:
properties:
avatar:
type: string
email:
type: string
id:
type: string
joined_at:
type: string
representative_user_id:
type: string
role:
type: string
tenant_id:
type: integer
tenant_name:
type: string
user_id:
type: string
username:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.OrganizationResponse:
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
owner_tenant_id:
description: |-
OwnerTenantID is the persisted owner tenant of the organization
(Plan 3, migration 000046). Frontend uses this to identify the
"owner row" in the tenant-keyed members list — comparing
member.tenant_id against owner_tenant_id is the post-Plan-3
equivalent of the old member.user_id == owner_id check.
type: integer
pending_join_request_count:
description: 待审批加入申请数(仅管理员可见)
type: integer
require_approval:
type: boolean
searchable:
type: boolean
share_count:
description: 共享到该组织的知识库数量
type: integer
updated_at:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ParserEngineConfig:
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
mineru_vlm_server_url:
description: vLLM 服务器地址 (vlm-http-client / hybrid-http-client)
type: string
type: object
github_com_Tencent_WeKnora_internal_types.ParserEngineRule:
properties:
engine:
type: string
file_types:
items:
type: string
type: array
type: object
github_com_Tencent_WeKnora_internal_types.QuestionGenerationConfig:
properties:
enabled:
type: boolean
question_count:
description: 'Number of questions to generate per chunk (default: 3, max:
10)'
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.RegisterRequest:
properties:
email:
type: string
password:
minLength: 6
type: string
username:
maxLength: 50
minLength: 2
type: string
required:
- email
- password
- username
type: object
github_com_Tencent_WeKnora_internal_types.RegisterResponse:
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'
type: object
github_com_Tencent_WeKnora_internal_types.RequestRoleUpgradeRequest:
properties:
message:
description: Optional message explaining the reason
maxLength: 500
type: string
requested_role:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
description: The role user wants to upgrade to
required:
- requested_role
type: object
github_com_Tencent_WeKnora_internal_types.Resource:
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:
additionalProperties: true
description: Additional metadata
type: object
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
type: object
github_com_Tencent_WeKnora_internal_types.ResourceCountsByOrgResponse:
properties:
agents:
properties:
by_organization:
additionalProperties:
type: integer
type: object
type: object
knowledge_bases:
properties:
by_organization:
additionalProperties:
type: integer
type: object
type: object
type: object
github_com_Tencent_WeKnora_internal_types.RetrievalConfig:
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
flatten the curve, reducing the bias towards top-1 results.
Default: 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.
RRFVectorWeight + RRFKeywordWeight should usually sum to 1.0 but the math
works 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
type: object
github_com_Tencent_WeKnora_internal_types.RetrieverEngineParams:
properties:
retriever_engine_type:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineType'
description: Retriever engine type
retriever_type:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverType'
description: Retriever type
type: object
github_com_Tencent_WeKnora_internal_types.RetrieverEngineType:
enum:
- postgres
- elasticsearch
- infinity
- elasticfaiss
- qdrant
- milvus
- weaviate
- doris
- sqlite
- tencent_vectordb
type: string
x-enum-varnames:
- PostgresRetrieverEngineType
- ElasticsearchRetrieverEngineType
- InfinityRetrieverEngineType
- ElasticFaissRetrieverEngineType
- QdrantRetrieverEngineType
- MilvusRetrieverEngineType
- WeaviateRetrieverEngineType
- DorisRetrieverEngineType
- SQLiteRetrieverEngineType
- TencentVectorDBRetrieverEngineType
github_com_Tencent_WeKnora_internal_types.RetrieverEngines:
properties:
engines:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineParams'
type: array
type: object
github_com_Tencent_WeKnora_internal_types.RetrieverType:
enum:
- keywords
- vector
- websearch
type: string
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:
properties:
approved:
type: boolean
message:
maxLength: 500
type: string
role:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
description: 'Optional: role to assign when approving; overrides applicant''s
requested role'
type: object
github_com_Tencent_WeKnora_internal_types.S3EngineConfig:
properties:
access_key:
type: string
bucket_name:
type: string
endpoint:
type: string
force_path_style:
type: boolean
path_prefix:
type: string
region:
type: string
secret_key:
type: string
use_ssl:
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.SearchParams:
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,
allowing a single retrieval call to span multiple KBs that share the
same embedding model. When empty, HybridSearch uses its own id parameter.
items:
type: string
type: array
knowledge_ids:
items:
type: string
type: array
match_count:
type: integer
only_recommended:
type: boolean
query_embedding:
items:
type: number
type: array
query_text:
type: string
skip_context_enrichment:
description: |-
SkipContextEnrichment skips fetching parent, nearby, and relation chunks
in processSearchResults. Used by the chat pipeline where context assembly
is handled separately in the merge stage.
type: boolean
tag_ids:
description: Tag IDs for filtering (used for FAQ priority filtering)
items:
type: string
type: array
vector_threshold:
type: number
type: object
github_com_Tencent_WeKnora_internal_types.SearchResult:
properties:
chunk_index:
description: Chunk index
type: integer
chunk_metadata:
description: ChunkMetadata stores chunk-level metadata (e.g., generated questions)
items:
type: integer
type: array
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
Used for file type knowledge, contains the original file name
type: string
knowledge_id:
description: Knowledge ID
type: string
knowledge_source:
description: |-
Knowledge source
Used to indicate the source of the knowledge, such as "url"
type: string
knowledge_title:
description: Knowledge title
type: string
match_type:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MatchType'
description: Match type
matched_content:
description: |-
MatchedContent is the actual content that was matched in vector search
For FAQ: this is the matched question text (standard or similar question)
type: string
metadata:
additionalProperties:
type: string
description: Metadata
type: object
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
items:
type: string
type: array
type: object
github_com_Tencent_WeKnora_internal_types.Session:
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
last_request_state:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SessionLastRequestState'
description: |-
LastRequestState records the input-bar state used the last time this
session sent a question (agent, model, KB scope, web search, MCPs).
Persisted on every successful POST to /knowledge-chat or /agent-chat so
that reopening the session can restore the original request context to
the chat UI. Stored in the legacy sessions.agent_config JSONB column to
avoid a new migration; the shape used today is `SessionLastRequestState`.
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
tenant level) and for IM-created sessions that do not map to a WeKnora user.
type: string
type: object
github_com_Tencent_WeKnora_internal_types.SessionLastRequestState:
properties:
agent_enabled:
type: boolean
agent_id:
type: string
knowledge_base_ids:
items:
type: string
type: array
knowledge_ids:
items:
type: string
type: array
model_id:
type: string
web_search_enabled:
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.ShareKnowledgeBaseRequest:
properties:
organization_id:
type: string
permission:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
required:
- organization_id
- permission
type: object
github_com_Tencent_WeKnora_internal_types.StorageConfig:
properties:
app_id:
description: App ID (COS specific)
type: string
bucket_name:
description: Bucket Name
type: string
endpoint:
description: Endpoint (S3 specific) - e.g., s3.amazonaws.com, oss-cn-hangzhou.aliyuncs.com
type: string
force_path_style:
description: ForcePathStyle (S3 specific) - whether to use path-style URLs
type: boolean
path_prefix:
description: Path Prefix
type: string
provider:
description: 'Provider: "cos", "minio", "s3"'
type: string
region:
description: Region
type: string
secret_id:
description: Secret ID (COS) / Access Key ID (S3, MinIO)
type: string
secret_key:
description: Secret Key (COS) / Secret Access Key (S3, MinIO)
type: string
use_ssl:
description: UseSSL (S3 specific) - whether to use HTTPS
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.StorageEngineConfig:
properties:
cos:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.COSEngineConfig'
default_provider:
description: '"local", "minio", "cos", "tos", "s3", "oss", "ks3", "obs"'
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'
obs:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OBSEngineConfig'
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'
type: object
github_com_Tencent_WeKnora_internal_types.StorageProviderConfig:
properties:
provider:
description: '"local", "minio", "cos", "tos", "s3", "oss", "ks3", "obs"'
type: string
type: object
github_com_Tencent_WeKnora_internal_types.SubmitJoinRequestRequest:
properties:
invite_code:
maxLength: 32
minLength: 8
type: string
message:
maxLength: 500
type: string
role:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
description: 'Optional: role the applicant requests (admin/editor/viewer);
default viewer'
required:
- invite_code
type: object
github_com_Tencent_WeKnora_internal_types.SyncLog:
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)
items:
type: integer
type: array
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
type: object
github_com_Tencent_WeKnora_internal_types.TOSEngineConfig:
properties:
access_key:
type: string
bucket_name:
type: string
endpoint:
type: string
path_prefix:
type: string
region:
type: string
secret_key:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.Tenant:
properties:
api_key:
description: API key
type: string
business:
description: Business
type: string
chat_history_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ChatHistoryConfig'
description: 'Chat history config: knowledge base configuration for indexing
and searching chat messages via vector search'
context_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ContextConfig'
description: Global Context configuration for this tenant (default for all
sessions)
created_at:
description: Creation time
type: string
credentials:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.CredentialsConfig'
description: 'Credentials config: third-party provider credentials (e.g. WeKnoraCloud
AppID/AppSecret)'
deleted_at:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Deletion time
description:
description: Description
type: string
id:
description: ID
type: integer
name:
description: Name
type: string
parser_engine_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineConfig'
description: Parser engine config overrides (MinerU endpoint, API key, etc.).
Used when parsing documents; overrides env.
retrieval_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrievalConfig'
description: 'Retrieval config: global search/retrieval parameters shared
by knowledge search and message search'
retriever_engines:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngines'
description: Retriever engines
status:
description: Status
type: string
storage_engine_config:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.StorageEngineConfig'
description: 'Storage engine config: parameters for Local, MinIO, COS. Used
for document/file storage and docreader.'
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:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchConfig'
description: Global WebSearch configuration for this tenant
type: object
github_com_Tencent_WeKnora_internal_types.TenantRole:
enum:
- owner
- admin
- contributor
- viewer
type: string
x-enum-varnames:
- TenantRoleOwner
- TenantRoleAdmin
- TenantRoleContributor
- TenantRoleViewer
github_com_Tencent_WeKnora_internal_types.ToolCall:
properties:
args:
additionalProperties: true
description: Tool arguments
type: object
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:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ToolResult'
description: Execution result (contains Output)
type: object
github_com_Tencent_WeKnora_internal_types.ToolResult:
properties:
data:
additionalProperties: true
description: Structured data for programmatic use
type: object
error:
description: Error message if execution failed
type: string
images:
description: Base64 data URIs from tool (e.g. MCP image content)
items:
type: string
type: array
output:
description: Human-readable output
type: string
success:
description: Whether the tool executed successfully
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.UpdateMemberRoleRequest:
properties:
role:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
required:
- role
type: object
github_com_Tencent_WeKnora_internal_types.UpdateOrganizationRequest:
properties:
avatar:
description: optional avatar URL
maxLength: 512
type: string
description:
maxLength: 1000
type: string
invite_code_validity_days:
description: 0=never, 1, 7, 30
type: integer
member_limit:
description: max members; 0=unlimited
type: integer
name:
maxLength: 255
minLength: 1
type: string
require_approval:
type: boolean
searchable:
description: open for search so others can discover and join
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.UpdateSharePermissionRequest:
properties:
permission:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OrgMemberRole'
required:
- permission
type: object
github_com_Tencent_WeKnora_internal_types.User:
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:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Deletion time of the user
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
preferences:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.UserPreferences'
description: |-
Per-user UI/feature preferences (memory toggle, future knobs).
Stored as JSON (jsonb on Postgres, TEXT on SQLite) via the
driver.Valuer / sql.Scanner methods on UserPreferences.
tenant:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant'
description: Association relationship, not stored in the database
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
type: object
github_com_Tencent_WeKnora_internal_types.UserPreferences:
properties:
enable_memory:
description: |-
EnableMemory mirrors the "开启记忆功能" switch in General Settings.
nil = preference never set (treat as feature default = false)
*false / *true = user explicitly set the toggle.
type: boolean
last_active_tenant_id:
description: |-
LastActiveTenantID remembers the last tenant the user actively
switched into, so a fresh login (new device, cleared browser, new
refresh token) lands them back in that workspace instead of always
bouncing to their home tenant. Login / RefreshToken validate that
the tenant still exists and the user still has an active membership
(or CanAccessAllTenants) before honouring this preference; an
invalid pointer is best-effort cleared and the user falls back to
home.
nil = no preference (use user.TenantID, i.e. home)
*0 = "clear preference" sentinel for the partial-update endpoint
(UpdateUserPreferences turns this into nil). Otherwise treat
a stored *0 the same as nil.
*N = preferred tenant id.
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.VLMConfig:
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: |-
兼容老版本
Model Name
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WeKnoraCloudCredentials:
properties:
app_id:
type: string
app_secret:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WebSearchConfig:
properties:
api_key:
description: 'Deprecated: Use WebSearchProviderEntity.Parameters.APIKey instead.'
type: string
blacklist:
description: 黑名单规则列表
items:
type: string
type: array
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
type: object
github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity:
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:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters'
description: Provider-specific parameters (API key, engine ID, etc.) stored
as encrypted JSON
provider:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderType'
description: 'Provider type: bing, google, duckduckgo, tavily'
tenant_id:
description: Tenant ID for scoping
type: integer
updated_at:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters:
properties:
api_key:
description: API key for the search provider (encrypted in DB)
type: string
base_url:
description: |-
Base URL for self-hosted search engines (e.g. SearXNG instance URL).
Validated with utils.ValidateURLForSSRF; private hosts must be added to SSRF_WHITELIST.
type: string
engine_id:
description: Google Custom Search Engine ID (only for Google provider)
type: string
extra_config:
additionalProperties:
type: string
description: Provider-specific extra configuration for future extensibility
type: object
proxy_url:
description: |-
Optional HTTP/HTTPS proxy URL for outbound search requests (e.g. http://host:port); validated with utils.ValidateURLForSSRF.
Does not replace the search API endpoint; only tunnels traffic to the official APIs.
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WebSearchProviderType:
enum:
- bing
- google
- duckduckgo
- tavily
- ollama
- baidu
- searxng
type: string
x-enum-varnames:
- WebSearchProviderTypeBing
- WebSearchProviderTypeGoogle
- WebSearchProviderTypeDuckDuckGo
- WebSearchProviderTypeTavily
- WebSearchProviderTypeOllama
- WebSearchProviderTypeBaidu
- WebSearchProviderTypeSearxng
github_com_Tencent_WeKnora_internal_types.WikiConfig:
properties:
extraction_granularity:
allOf:
- $ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiExtractionGranularity'
description: |-
ExtractionGranularity controls how many candidate slugs Pass 0 extracts
per document. Empty / unknown value is treated as WikiExtractionStandard.
ingest_batch_size:
description: |-
IngestBatchSize controls how many pending ops a single batch
processes before scheduling a follow-up. 0 falls back to the
hard-coded default (5). Operators on large KBs (4w+ docs) can
raise this to 10–20 to amortize the lock-acquire / index-rebuild
overhead across more documents per round.
type: integer
ingest_map_parallel:
description: |-
IngestMapParallel sets the errgroup limit for the Map phase
(per-document extraction + summary + chunk citation). 0 falls
back to 10. Bound by the LLM provider's concurrency limit and
the worker's outbound HTTP pool.
type: integer
ingest_reduce_parallel:
description: |-
IngestReduceParallel sets the errgroup limit for the Reduce phase
(per-slug page write). 0 falls back to 10. Bound by the same
LLM concurrency / HTTP pool considerations as the Map phase,
plus 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
type: object
github_com_Tencent_WeKnora_internal_types.WikiExtractionGranularity:
enum:
- focused
- standard
- exhaustive
type: string
x-enum-varnames:
- WikiExtractionFocused
- WikiExtractionStandard
- WikiExtractionExhaustive
github_com_Tencent_WeKnora_internal_types.WikiGraphData:
properties:
edges:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphEdge'
type: array
meta:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphMeta'
nodes:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphNode'
type: array
type: object
github_com_Tencent_WeKnora_internal_types.WikiGraphEdge:
properties:
source:
description: source slug
type: string
target:
description: target slug
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiGraphMeta:
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 < Total (after filters)
type: boolean
type: object
github_com_Tencent_WeKnora_internal_types.WikiGraphNode:
properties:
link_count:
description: Number of inbound + outbound links
type: integer
page_type:
type: string
slug:
type: string
title:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiIndexEntry:
properties:
slug:
type: string
summary:
type: string
title:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiIndexGroup:
properties:
items:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexEntry'
type: array
next_cursor:
type: string
total:
type: integer
type:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiIndexResponse:
properties:
groups:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexGroup'
type: array
intro:
type: string
version:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.WikiLogEntry:
properties:
action:
description: |-
Short operation tag: "ingest", "retract", etc. Matches the `action`
argument 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
joined at read time so deleted knowledge still has a human-readable
label in the log.
type: string
id:
description: |-
Auto-increment identifier. Monotonic within a single database, so
frontend pagination uses it as a stable cursor without needing to
disambiguate 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
navigation) and title (for display) so the log renders human-
readable text without a post-hoc slug→title lookup that might fail
for now-deleted pages.
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogPageRef'
type: array
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
type: object
github_com_Tencent_WeKnora_internal_types.WikiLogEntryListResponse:
properties:
entries:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogEntry'
type: array
next_cursor:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiLogPageRef:
properties:
slug:
type: string
title:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiPage:
properties:
aliases:
description: Alternate names, abbreviations, acronyms or translated names
items:
type: string
type: array
chunk_refs:
description: |-
ChunkRefs records the specific source-document chunks this page was
built from — one UUID per cited chunk. Populated during ingest from
the chunk-citation pass; refreshed wholesale whenever the page is
re-materialized. Empty for summary pages (they are document-level
synopses and don't carry chunk-level citations). Use this when you
need to surface the underlying evidence for a wiki page, or to
retract citations when a source document is deleted.
items:
type: string
type: array
content:
description: Full markdown content
type: string
created_at:
description: Creation time
type: string
deleted_at:
allOf:
- $ref: '#/definitions/gorm.DeletedAt'
description: Soft delete
id:
description: Unique identifier (UUID)
type: string
in_links:
description: Slugs of pages that link TO this page (backlinks)
items:
type: string
type: array
knowledge_base_id:
description: Knowledge base this page belongs to
type: string
out_links:
description: Slugs of pages this page links to (outbound links)
items:
type: string
type: array
page_metadata:
description: Arbitrary metadata (tags, categories, dates, etc.)
items:
type: integer
type: array
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"
Unique within a knowledge base
type: string
source_refs:
description: |-
References to source knowledge IDs that contributed to this page.
Format matches the legacy "<knowledge_id>|<doc_title>" convention used
across the ingest pipeline, so retract / display code can split on `|`
to recover the title. Document-level granularity.
items:
type: string
type: array
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
(title, content, summary, page_type, status) actually changes; pure
bookkeeping writes (link maintenance, same-content re-ingest, status
sync from background jobs) leave it untouched so it can be used as a
real "the page was edited" signal.
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.WikiPageIssue:
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:
items:
type: string
type: array
tenant_id:
type: integer
updated_at:
type: string
type: object
github_com_Tencent_WeKnora_internal_types.WikiPageListResponse:
properties:
page:
type: integer
page_size:
type: integer
pages:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage'
type: array
total:
type: integer
total_pages:
type: integer
type: object
github_com_Tencent_WeKnora_internal_types.WikiStats:
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:
additionalProperties:
format: int64
type: integer
type: object
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
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage'
type: array
total_links:
type: integer
total_pages:
type: integer
type: object
gorm.DeletedAt:
properties:
time:
type: string
valid:
description: Valid is true if Time is not NULL
type: boolean
type: object
internal_handler.AddFavoriteRequest:
properties:
id:
type: string
type:
type: string
type: object
internal_handler.BatchDeleteKnowledgeRequest:
properties:
ids:
items:
type: string
type: array
kb_id:
type: string
required:
- ids
- kb_id
type: object
internal_handler.CopyKnowledgeBaseRequest:
properties:
source_id:
type: string
target_id:
type: string
task_id:
type: string
required:
- source_id
type: object
internal_handler.CreateAgentRequest:
properties:
avatar:
type: string
config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.CustomAgentConfig'
description:
type: string
name:
type: string
required:
- name
type: object
internal_handler.CreateModelRequest:
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'
required:
- name
- parameters
- source
- type
type: object
internal_handler.CreateStoreRequest:
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
required:
- connection_config
- engine_type
- name
type: object
internal_handler.DeleteTagRequest:
properties:
exclude_ids:
description: Chunk seq_ids to exclude from deletion
items:
type: integer
type: array
type: object
internal_handler.EvaluationRequest:
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
type: object
internal_handler.FabriTextRequest:
properties:
model_id:
type: string
tags:
items:
type: string
type: array
required:
- model_id
type: object
internal_handler.GetStorageEngineStatusResponse:
properties:
allowed_providers:
items:
type: string
type: array
engines:
items:
$ref: '#/definitions/internal_handler.StorageEngineStatusItem'
type: array
minio_env_available:
type: boolean
type: object
internal_handler.GetSystemInfoResponse:
properties:
build_time:
type: string
commit_id:
type: string
db_migration_error:
description: |-
DBMigrationError carries the human-readable error message recorded when
the most recent startup migration attempt failed. Empty when migrations
succeeded; non-empty values let the frontend surface a troubleshooting
banner instead of silently hiding the DB version row (see issue #1319).
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
type: object
internal_handler.InitializationRequest:
properties:
documentSplitting:
properties:
chunkOverlap:
minimum: 0
type: integer
chunkSize:
maximum: 10000
minimum: 100
type: integer
separators:
items:
type: string
minItems: 1
type: array
required:
- chunkSize
- separators
type: object
embedding:
properties:
apiKey:
type: string
baseUrl:
type: string
dimension:
description: 添加embedding维度字段
type: integer
modelName:
type: string
source:
type: string
required:
- modelName
- source
type: object
llm:
properties:
apiKey:
type: string
baseUrl:
type: string
modelName:
type: string
source:
type: string
required:
- modelName
- source
type: object
multimodal:
properties:
cos:
properties:
appId:
type: string
bucketName:
type: string
pathPrefix:
type: string
region:
type: string
secretId:
type: string
secretKey:
type: string
type: object
enabled:
type: boolean
minio:
properties:
bucketName:
type: string
pathPrefix:
type: string
type: object
storageType:
type: string
vlm:
properties:
apiKey:
type: string
baseUrl:
type: string
interfaceType:
description: '"ollama" or "openai"'
type: string
modelName:
type: string
type: object
type: object
nodeExtract:
properties:
enabled:
type: boolean
nodes:
items:
properties:
attributes:
items:
type: string
type: array
name:
type: string
type: object
type: array
relations:
items:
properties:
node1:
type: string
node2:
type: string
type:
type: string
type: object
type: array
tags:
items:
type: string
type: array
text:
type: string
type: object
questionGeneration:
properties:
enabled:
type: boolean
questionCount:
type: integer
type: object
rerank:
properties:
apiKey:
type: string
baseUrl:
type: string
enabled:
type: boolean
modelName:
type: string
type: object
required:
- documentSplitting
- embedding
- llm
type: object
internal_handler.KBModelConfigRequest:
properties:
asr_config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ASRConfig'
documentSplitting:
description: 文档分块配置
properties:
childChunkSize:
type: integer
chunkOverlap:
type: integer
chunkSize:
type: integer
enableParentChild:
type: boolean
languages:
items:
type: string
type: array
parentChunkSize:
type: integer
parserEngineRules:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ParserEngineRule'
type: array
separators:
items:
type: string
type: array
strategy:
description: |-
Strategy / TokenLimit / Languages use pointer types so the
handler can distinguish "field absent in payload" (no change)
from "field present with empty/zero value" (clear / disable).
Without that distinction, users could set strategy="auto" once
but never reset it back to legacy / unset.
type: string
tokenLimit:
type: integer
type: object
embeddingModelId:
description: optional when RAG indexing is disabled
type: string
llmModelId:
type: string
multimodal:
description: 多模态配置(仅模型相关;存储引擎在 storageProvider 中配置)
properties:
enabled:
type: boolean
type: object
nodeExtract:
description: 知识图谱配置
properties:
enabled:
type: boolean
nodes:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.GraphNode'
type: array
relations:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.GraphRelation'
type: array
tags:
items:
type: string
type: array
text:
type: string
type: object
questionGeneration:
description: 问题生成配置
properties:
enabled:
type: boolean
questionCount:
type: integer
type: object
storageProvider:
description: 存储引擎选择("local" | "minio" | "cos"),影响文档上传与文档内图片存储,参数从全局设置读取
type: string
vlm_config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.VLMConfig'
required:
- llmModelId
type: object
internal_handler.ModelTestRequest:
properties:
apiKey:
type: string
baseUrl:
type: string
customHeaders:
additionalProperties:
type: string
type: object
dimension:
type: integer
extraConfig:
additionalProperties:
type: string
type: object
interfaceType:
type: string
modelId:
description: |-
ModelID, when set, instructs the handler to substitute any missing
secrets (APIKey, AppSecret via ExtraConfig) from the stored model
record before assembling the test client. This lets the "Test
connection" button work on existing models without making the
frontend reload — and ship — the plaintext API key. Other fields
(BaseURL, ModelName, etc.) on this request still override the
stored values, so a user can validate a new endpoint against the
existing credentials in one click.
type: string
modelName:
type: string
provider:
type: string
source:
description: 为空时按需默认为 "remote"
type: string
required:
- modelName
type: object
internal_handler.MoveKnowledgeRequest:
properties:
knowledge_ids:
items:
type: string
minItems: 1
type: array
mode:
enum:
- reuse_vectors
- reparse
type: string
source_kb_id:
type: string
target_kb_id:
type: string
required:
- knowledge_ids
- mode
- source_kb_id
- target_kb_id
type: object
internal_handler.MoveKnowledgeResponse:
properties:
knowledge_count:
type: integer
message:
type: string
source_kb_id:
type: string
target_kb_id:
type: string
task_id:
type: string
type: object
internal_handler.PreviewChunkResult:
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
type: object
internal_handler.PreviewChunkingPayload:
properties:
chunk_overlap:
type: integer
chunk_size:
type: integer
languages:
items:
type: string
type: array
separators:
items:
type: string
type: array
strategy:
type: string
token_limit:
type: integer
type: object
internal_handler.PreviewChunkingRequest:
properties:
chunking_config:
$ref: '#/definitions/internal_handler.PreviewChunkingPayload'
text:
type: string
type: object
internal_handler.PreviewChunkingResponse:
properties:
chunks:
items:
$ref: '#/definitions/internal_handler.PreviewChunkResult'
type: array
profile:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.DocProfile'
rejected:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.TierRejection'
type: array
selected_tier:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier'
stats:
$ref: '#/definitions/internal_handler.PreviewChunkingStats'
tier_chain:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_infrastructure_chunker.StrategyTier'
type: array
type: object
internal_handler.PreviewChunkingStats:
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
response was truncated to previewMaxChunks for transport.
type: integer
type: object
internal_handler.RemoteModelCheckRequest:
properties:
apiKey:
type: string
baseUrl:
type: string
customHeaders:
additionalProperties:
type: string
type: object
dimension:
type: integer
extraConfig:
additionalProperties:
type: string
type: object
interfaceType:
type: string
modelId:
description: |-
ModelID, when set, instructs the handler to substitute any missing
secrets (APIKey, AppSecret via ExtraConfig) from the stored model
record before assembling the test client. This lets the "Test
connection" button work on existing models without making the
frontend reload — and ship — the plaintext API key. Other fields
(BaseURL, ModelName, etc.) on this request still override the
stored values, so a user can validate a new endpoint against the
existing credentials in one click.
type: string
modelName:
type: string
provider:
type: string
source:
description: 为空时按需默认为 "remote"
type: string
required:
- modelName
type: object
internal_handler.SearchMessagesRequest:
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)
items:
type: string
type: array
required:
- query
type: object
internal_handler.StorageCheckRequest:
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'
obs:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OBSEngineConfig'
oss:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OSSEngineConfig'
provider:
description: '"minio", "cos", "tos", "s3", "oss", "ks3", "obs"'
type: string
s3:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.S3EngineConfig'
tos:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.TOSEngineConfig'
type: object
internal_handler.StorageCheckResponse:
properties:
bucket_created:
type: boolean
message:
type: string
ok:
type: boolean
type: object
internal_handler.StorageEngineStatusItem:
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
type: object
internal_handler.TestProviderRequest:
properties:
parameters:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters'
provider:
type: string
required:
- provider
type: object
internal_handler.TestStoreRequest:
properties:
connection_config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ConnectionConfig'
engine_type:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RetrieverEngineType'
required:
- connection_config
- engine_type
type: object
internal_handler.TextRelationExtractionRequest:
properties:
model_id:
type: string
tags:
items:
type: string
type: array
text:
type: string
required:
- model_id
- tags
- text
type: object
internal_handler.UpdateAgentRequest:
properties:
avatar:
type: string
config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.CustomAgentConfig'
description:
type: string
name:
type: string
type: object
internal_handler.UpdateChunkRequest:
properties:
chunk_index:
type: integer
content:
type: string
embedding:
items:
type: number
type: array
end_at:
type: integer
image_info:
type: string
is_enabled:
type: boolean
start_at:
type: integer
type: object
internal_handler.UpdateKnowledgeBaseRequest:
properties:
config:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBaseConfig'
description:
type: string
name:
type: string
required:
- name
type: object
internal_handler.UpdateModelRequest:
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'
type: object
internal_handler.UpdateProviderRequest:
properties:
description:
type: string
is_default:
type: boolean
name:
type: string
parameters:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderParameters'
type: object
internal_handler.UpdateStoreRequest:
properties:
name:
type: string
required:
- name
type: object
internal_handler.addMemberRequest:
properties:
email:
type: string
role:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.TenantRole'
required:
- email
- role
type: object
internal_handler.addSimilarQuestionsRequest:
properties:
similar_questions:
items:
type: string
minItems: 1
type: array
required:
- similar_questions
type: object
internal_handler.auditLogListResponse:
properties:
data:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.AuditLog'
type: array
next_cursor:
type: integer
success:
type: boolean
type: object
internal_handler.createInvitationRequest:
properties:
email:
type: string
message:
type: string
role:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.TenantRole'
required:
- email
- role
type: object
internal_handler.createTenantRequest:
properties:
description:
maxLength: 512
type: string
name:
maxLength: 128
minLength: 1
type: string
required:
- name
type: object
internal_handler.updateLastFAQImportResultDisplayStatusRequest:
properties:
display_status:
enum:
- open
- close
type: string
required:
- display_status
type: object
internal_handler.updateMemberRoleRequest:
properties:
role:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.TenantRole'
required:
- role
type: object
internal_handler.updateMyPreferencesRequest:
properties:
enable_memory:
type: boolean
last_active_tenant_id:
description: |-
LastActiveTenantID lets the SPA persist "after a fresh login,
drop me back into this workspace" across devices. Send a positive
tenant id to set / replace, or 0 to clear. Membership is validated
at next login, not here. Nil = field omitted from the PATCH and
stays untouched.
type: integer
type: object
internal_handler_session.AttachmentUpload:
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
type: object
internal_handler_session.CreateKnowledgeQARequest:
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.)
items:
$ref: '#/definitions/internal_handler_session.AttachmentUpload'
type: array
channel:
description: 'Source channel: "web", "api", "im", etc.'
type: string
disable_title:
description: Whether to disable auto title generation
type: boolean
enable_memory:
description: |-
EnableMemory is the per-request override for the memory feature.
Pointer + omitempty so the request can distinguish three states:
nil = client did not specify; backend falls back to the calling
user's persisted preference (user.preferences.enable_memory),
defaulting to false if that's also unset. This is the path
used by the normal logged-in chat UI now that the toggle is
stored server-side per user.
*true / *false = explicit override. Embedded mode forces *false so a
user's personal memory setting doesn't leak into a widget
context; older clients that still send a literal bool also
land here (back-compat).
type: boolean
images:
description: Attached images for multimodal chat
items:
$ref: '#/definitions/internal_handler_session.ImageAttachment'
type: array
knowledge_base_ids:
description: Selected knowledge base ID for this request
items:
type: string
type: array
knowledge_ids:
description: Selected knowledge ID for this request
items:
type: string
type: array
mentioned_items:
description: '@mentioned knowledge bases and files'
items:
$ref: '#/definitions/internal_handler_session.MentionedItemRequest'
type: array
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
required:
- query
type: object
internal_handler_session.CreateSessionRequest:
properties:
description:
description: Description for the session (optional)
type: string
title:
description: Title for the session (optional)
type: string
type: object
internal_handler_session.GenerateTitleRequest:
properties:
messages:
description: Messages to use as context for title generation
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Message'
type: array
required:
- messages
type: object
internal_handler_session.ImageAttachment:
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
type: object
internal_handler_session.MentionedItemRequest:
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
type: object
internal_handler_session.SearchKnowledgeRequest:
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)
items:
type: string
type: array
knowledge_ids:
description: IDs of specific knowledge (files) to search
items:
type: string
type: array
query:
description: Query text to search for
type: string
required:
- query
type: object
internal_handler_session.StopSessionRequest:
properties:
message_id:
type: string
required:
- message_id
type: object
internal_handler_session.batchDeleteRequest:
properties:
delete_all:
type: boolean
ids:
items:
type: string
type: array
type: object
info:
contact:
name: WeKnora Github
url: https://github.com/Tencent/WeKnora
description: WeKnora 知识库管理系统 API 文档
termsOfService: http://swagger.io/terms/
title: WeKnora API
version: "1.0"
paths:
/agent/tool-approvals/{pending_id}:
post:
consumes:
- application/json
description: 用户审批通过或驳回一次工具调用(用于 Agent 阻塞等待审批的场景)
parameters:
- description: 待审批记录 ID
in: path
name: pending_id
required: true
type: string
- description: '{decision: \'
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 审批结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 待审批记录不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 处理 MCP 工具调用待审批请求
tags:
- MCP服务
/agents:
get:
consumes:
- application/json
description: 获取当前租户的所有智能体(包括内置智能体)
produces:
- application/json
responses:
"200":
description: 智能体列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取智能体列表
tags:
- 智能体
post:
consumes:
- application/json
description: 创建新的自定义智能体
parameters:
- description: 智能体信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.CreateAgentRequest'
produces:
- application/json
responses:
"201":
description: 创建的智能体
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建智能体
tags:
- 智能体
/agents/{id}:
delete:
consumes:
- application/json
description: 删除指定的智能体
parameters:
- description: 智能体ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"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'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除智能体
tags:
- 智能体
get:
consumes:
- application/json
description: 根据ID获取智能体详情
parameters:
- description: 智能体ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 智能体详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 智能体不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取智能体详情
tags:
- 智能体
put:
consumes:
- application/json
description: 更新智能体的名称、描述和配置
parameters:
- description: 智能体ID
in: path
name: id
required: true
type: string
- description: 更新请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateAgentRequest'
produces:
- application/json
responses:
"200":
description: 更新后的智能体
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 无法修改内置智能体
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新智能体
tags:
- 智能体
/agents/{id}/copy:
post:
consumes:
- application/json
description: 复制指定的智能体
parameters:
- description: 智能体ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"201":
description: 复制成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 智能体不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 复制智能体
tags:
- 智能体
/agents/{id}/shares/{share_id}:
delete:
description: 从智能体的共享列表中移除指定共享关系
parameters:
- description: 智能体 ID
in: path
name: id
required: true
type: string
- description: 共享记录 ID
in: path
name: share_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 'success: true'
schema:
additionalProperties: true
type: object
"403":
description: 无权限
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 取消智能体共享
tags:
- 组织
/agents/{id}/suggested-questions:
get:
consumes:
- application/json
description: 基于智能体关联的知识库,返回推荐问题供用户快捷提问
parameters:
- description: 智能体ID
in: path
name: id
required: true
type: string
- description: 知识库ID列表(逗号分隔),覆盖智能体默认配置
in: query
name: knowledge_base_ids
type: string
- description: 知识ID列表(逗号分隔),限定到具体文档
in: query
name: knowledge_ids
type: string
- description: 返回数量上限(默认6)
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: 推荐问题列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 智能体不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取推荐问题
tags:
- 智能体
/agents/placeholders:
get:
consumes:
- application/json
description: 获取所有可用的提示词占位符定义,按字段类型分组
produces:
- application/json
responses:
"200":
description: 占位符定义
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取占位符定义
tags:
- 智能体
/agents/type-presets:
get:
consumes:
- application/json
description: 返回所有 smart-reasoning 下可用的智能体类型预设(RAG/Wiki/Hybrid/Custom),用于编辑器自动填充系统提示词、工具和
KB 兼容性
produces:
- application/json
responses:
"200":
description: 预设列表
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取智能体类型预设列表
tags:
- 智能体
/auth/auto-setup:
post:
consumes:
- application/json
description: Lite 版专用:首次启动时自动创建默认用户和租户并返回令牌,后续启动直接签发令牌,免除手动注册/登录流程
produces:
- application/json
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'
summary: 自动初始化(Lite 桌面版)
tags:
- 认证
/auth/change-password:
post:
consumes:
- application/json
description: 修改当前用户的登录密码
parameters:
- description: 密码修改请求
in: body
name: request
required: true
schema:
properties:
new_password:
type: string
old_password:
type: string
type: object
produces:
- application/json
responses:
"200":
description: 修改成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 修改密码
tags:
- 认证
/auth/config:
get:
consumes:
- application/json
description: 返回当前部署的注册模式等公开认证配置,供前端决定是否展示注册入口
produces:
- application/json
responses:
"200":
description: 认证配置
schema:
additionalProperties: true
type: object
summary: 获取认证配置
tags:
- 认证
/auth/login:
post:
consumes:
- application/json
description: 用户登录并获取访问令牌
parameters:
- description: 登录请求参数
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.LoginRequest'
produces:
- application/json
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'
summary: 用户登录
tags:
- 认证
/auth/logout:
post:
consumes:
- application/json
description: 撤销当前访问令牌并登出
produces:
- application/json
responses:
"200":
description: 登出成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 用户登出
tags:
- 认证
/auth/me:
get:
consumes:
- application/json
description: 获取当前登录用户的详细信息
produces:
- application/json
responses:
"200":
description: 用户信息
schema:
additionalProperties: true
type: object
"401":
description: 未授权
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 获取当前用户信息
tags:
- 认证
/auth/me/preferences:
put:
consumes:
- application/json
description: |-
按 PATCH 语义合并用户偏好(仅覆盖请求体里出现的字段,其余字段保持不变),
数据存放在 users.preferences (JSON),跨设备/浏览器自动同步。
parameters:
- description: Preferences patch
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.updateMyPreferencesRequest'
produces:
- application/json
responses:
"200":
description: 更新后的偏好
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"401":
description: 未授权
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 更新当前用户的个性化设置
tags:
- 认证
/auth/oidc/callback:
get:
consumes:
- application/json
description: 接收OIDC provider回调并由后端完成code交换,随后重定向回前端登录页
parameters:
- description: OIDC授权码
in: query
name: code
type: string
- description: OIDC状态
in: query
name: state
type: string
- description: OIDC错误码
in: query
name: error
type: string
produces:
- application/json
responses:
"302":
description: Found
summary: OIDC登录重定向回调
tags:
- 认证
/auth/oidc/config:
get:
consumes:
- application/json
description: 返回OIDC是否启用以及provider展示名称,供前端决定是否展示OIDC登录入口
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.OIDCConfigResponse'
summary: 获取OIDC登录配置
tags:
- 认证
/auth/oidc/url:
get:
consumes:
- application/json
description: 根据后端OIDC配置生成第三方登录跳转地址
parameters:
- description: OIDC回调地址
in: query
name: redirect_uri
required: true
type: string
produces:
- application/json
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'
summary: 获取OIDC授权地址
tags:
- 认证
/auth/refresh:
post:
consumes:
- application/json
description: 使用刷新令牌获取新的访问令牌
parameters:
- description: 刷新令牌
in: body
name: request
required: true
schema:
properties:
refreshToken:
type: string
type: object
produces:
- application/json
responses:
"200":
description: 新令牌
schema:
additionalProperties: true
type: object
"401":
description: 令牌无效
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
summary: 刷新令牌
tags:
- 认证
/auth/register:
post:
consumes:
- application/json
description: 注册新用户账号
parameters:
- description: 注册请求参数
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RegisterRequest'
produces:
- application/json
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'
summary: 用户注册
tags:
- 认证
/auth/switch-tenant:
post:
consumes:
- application/json
description: 为当前用户在目标租户重新签发访问令牌;要求该用户在目标租户存在 active 成员关系
parameters:
- description: 切换请求
in: body
name: request
required: true
schema:
properties:
refresh_token:
type: string
tenant_id:
type: integer
type: object
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.LoginResponse'
"400":
description: 参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 无该租户成员关系
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 切换激活租户
tags:
- 认证
/auth/validate:
get:
consumes:
- application/json
description: 验证访问令牌是否有效
produces:
- application/json
responses:
"200":
description: 令牌有效
schema:
additionalProperties: true
type: object
"401":
description: 令牌无效
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 验证令牌
tags:
- 认证
/chunker/preview:
post:
consumes:
- application/json
description: 对提交的文本运行自适应分块器并返回分块预览,不写入数据库不生成 embedding。文本最大 64k 字符
parameters:
- description: '{text, chunking_config}'
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.PreviewChunkingRequest'
produces:
- application/json
responses:
"200":
description: 分块结果
schema:
$ref: '#/definitions/internal_handler.PreviewChunkingResponse'
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"413":
description: 文本超过预览限制
schema:
additionalProperties: true
type: object
"504":
description: 分块超时
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 预览分块结果
tags:
- 分块
/chunks/{knowledge_id}:
delete:
consumes:
- application/json
description: 删除指定知识下的所有分块
parameters:
- description: 知识ID
in: path
name: knowledge_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除知识下所有分块
tags:
- 分块管理
get:
consumes:
- application/json
description: 获取指定知识下的所有分块列表,支持分页
parameters:
- description: 知识ID
in: path
name: knowledge_id
required: true
type: string
- default: 1
description: 页码
in: query
name: page
type: integer
- default: 10
description: 每页数量
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: 分块列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识分块列表
tags:
- 分块管理
/chunks/{knowledge_id}/{id}:
delete:
consumes:
- application/json
description: 删除指定的分块
parameters:
- description: 知识ID
in: path
name: knowledge_id
required: true
type: string
- description: 分块ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 分块不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除分块
tags:
- 分块管理
put:
consumes:
- application/json
description: 更新指定分块的内容和属性
parameters:
- description: 知识ID
in: path
name: knowledge_id
required: true
type: string
- description: 分块ID
in: path
name: id
required: true
type: string
- description: 更新请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateChunkRequest'
produces:
- application/json
responses:
"200":
description: 更新后的分块
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 分块不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新分块
tags:
- 分块管理
/chunks/by-id/{id}:
get:
consumes:
- application/json
description: 仅通过分块ID获取分块详情(不需要knowledge_id);支持共享知识库下的分块访问
parameters:
- description: 分块ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 分块详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 分块不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 通过ID获取分块
tags:
- 分块管理
/chunks/by-id/{id}/questions:
delete:
consumes:
- application/json
description: 删除分块中生成的问题
parameters:
- description: 分块ID
in: path
name: id
required: true
type: string
- description: 问题ID
in: body
name: request
required: true
schema:
properties:
question_id:
type: string
type: object
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 分块不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除生成的问题
tags:
- 分块管理
/datasource:
get:
description: List all data sources for a specific knowledge base
parameters:
- description: Knowledge base ID
in: query
name: kb_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
type: array
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: List data sources for a knowledge base
tags:
- DataSource
post:
consumes:
- application/json
description: Create a new data source configuration for a knowledge base
parameters:
- description: Data source configuration
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
produces:
- application/json
responses:
"201":
description: Created
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Create a new data source
tags:
- DataSource
/datasource/{id}:
delete:
description: Delete a data source (soft delete)
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
responses:
"204":
description: No Content
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
summary: Delete a data source
tags:
- DataSource
get:
description: Retrieve a data source configuration by ID
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
summary: Get a data source by ID
tags:
- DataSource
put:
consumes:
- application/json
description: Update an existing data source configuration
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
- description: Updated configuration
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.DataSource'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Update a data source
tags:
- DataSource
/datasource/{id}/logs:
get:
description: Retrieve sync history for a data source
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
- description: 'Limit (default: 10)'
in: query
name: limit
type: integer
- description: 'Offset (default: 0)'
in: query
name: offset
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog'
type: array
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Get sync logs
tags:
- DataSource
/datasource/{id}/pause:
post:
description: Pause a data source's scheduled syncs
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Pause data source
tags:
- DataSource
/datasource/{id}/resources:
get:
description: List resources available for sync in the external system
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Resource'
type: array
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: List available resources in data source
tags:
- DataSource
/datasource/{id}/resume:
post:
description: Resume a paused data source
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Resume data source
tags:
- DataSource
/datasource/{id}/sync:
post:
description: Trigger an immediate sync for a data source
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog'
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Trigger immediate sync
tags:
- DataSource
/datasource/{id}/validate:
post:
description: Validate the connection to an external data source
parameters:
- description: Data source ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Test data source connection
tags:
- DataSource
/datasource/logs/{log_id}:
get:
description: Retrieve a specific sync log entry
parameters:
- description: Sync log ID
in: path
name: log_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SyncLog'
"404":
description: Not Found
schema:
additionalProperties:
type: string
type: object
summary: Get specific sync log
tags:
- DataSource
/datasource/types:
get:
description: Get list of available data source connectors
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_datasource.ConnectorMetadata'
type: array
summary: Get available connectors
tags:
- DataSource
/datasource/validate-credentials:
post:
consumes:
- application/json
description: Validate connectivity to an external data source using type + credentials
parameters:
- description: type and credentials
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
additionalProperties:
type: string
type: object
summary: Test connection with raw credentials (no persistence)
tags:
- DataSource
/evaluation/:
get:
consumes:
- application/json
description: 根据任务ID获取评估结果
parameters:
- description: 评估任务ID
in: query
name: task_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 评估结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取评估结果
tags:
- 评估
post:
consumes:
- application/json
description: 对知识库进行评估测试
parameters:
- description: 评估请求参数
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.EvaluationRequest'
produces:
- application/json
responses:
"200":
description: 评估任务
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 执行评估
tags:
- 评估
/faq/import/progress/{task_id}:
get:
consumes:
- application/json
description: 获取FAQ导入任务的进度
parameters:
- description: 任务ID
in: path
name: task_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 导入进度
schema:
additionalProperties: true
type: object
"404":
description: 任务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取FAQ导入进度
tags:
- FAQ管理
/im-channels/{id}:
delete:
description: 删除指定 IM 渠道
parameters:
- description: 渠道 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 'success: true'
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"404":
description: 渠道不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除 IM 渠道
tags:
- IM 渠道
put:
consumes:
- application/json
description: 更新指定 IM 渠道的名称、模式、知识库、凭证或启用状态
parameters:
- description: 渠道 ID
in: path
name: id
required: true
type: string
- description: 更新字段(name/mode/output_mode/knowledge_base_id/credentials/enabled)
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 更新后的渠道
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"404":
description: 渠道不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新 IM 渠道
tags:
- IM 渠道
/im-channels/{id}/toggle:
post:
description: 切换指定 IM 渠道的启用状态
parameters:
- description: 渠道 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 更新后的渠道
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"404":
description: 渠道不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 启用/停用 IM 渠道
tags:
- IM 渠道
/im/callback/{channel_id}:
get:
consumes:
- application/json
description: 接收各 IM 平台的事件回调;走平台自身签名校验,不使用 API Key
parameters:
- description: 渠道 ID
in: path
name: channel_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 处理结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"401":
description: 签名校验失败
schema:
additionalProperties: true
type: object
summary: IM 平台回调
tags:
- IM 回调
post:
consumes:
- application/json
description: 接收各 IM 平台的事件回调;走平台自身签名校验,不使用 API Key
parameters:
- description: 渠道 ID
in: path
name: channel_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 处理结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"401":
description: 签名校验失败
schema:
additionalProperties: true
type: object
summary: IM 平台回调
tags:
- IM 回调
/initialization/asr/check:
post:
consumes:
- application/json
description: 检查ASR(语音识别)模型连接是否正常,通过发送一段静默音频测试 /v1/audio/transcriptions 端点
parameters:
- description: ASR检查请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.ModelTestRequest'
produces:
- application/json
responses:
"200":
description: 检查结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 检查ASR模型
tags:
- 初始化
/initialization/config/{kbId}:
get:
consumes:
- application/json
description: 根据知识库ID获取当前配置信息
parameters:
- description: 知识库ID
in: path
name: kbId
required: true
type: string
produces:
- application/json
responses:
"200":
description: 配置信息
schema:
additionalProperties: true
type: object
"404":
description: 知识库不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识库配置
tags:
- 初始化
put:
consumes:
- application/json
description: 根据知识库ID更新模型和分块配置
parameters:
- description: 知识库ID
in: path
name: kbId
required: true
type: string
- description: 配置请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.KBModelConfigRequest'
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 知识库不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新知识库配置
tags:
- 初始化
/initialization/embedding/test:
post:
consumes:
- application/json
description: 测试Embedding接口是否可用并返回向量维度
parameters:
- description: Embedding测试请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.ModelTestRequest'
produces:
- application/json
responses:
"200":
description: 测试结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 测试Embedding模型
tags:
- 初始化
/initialization/extract/fabri-tag:
post:
consumes:
- application/json
description: 随机生成一组标签
produces:
- application/json
responses:
"200":
description: 生成的标签
schema:
additionalProperties: true
type: object
summary: 生成随机标签
tags:
- 初始化
/initialization/extract/fabri-text:
post:
consumes:
- application/json
description: 根据标签生成示例文本
parameters:
- description: 生成请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.FabriTextRequest'
produces:
- application/json
responses:
"200":
description: 生成的文本
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 生成示例文本
tags:
- 初始化
/initialization/extract/text-relation:
post:
consumes:
- application/json
description: 从文本中提取实体和关系
parameters:
- description: 提取请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.TextRelationExtractionRequest'
produces:
- application/json
responses:
"200":
description: 提取结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 提取文本关系
tags:
- 初始化
/initialization/initialize/{kbId}:
post:
consumes:
- application/json
description: 根据知识库ID执行完整配置更新
parameters:
- description: 知识库ID
in: path
name: kbId
required: true
type: string
- description: 初始化请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.InitializationRequest'
produces:
- application/json
responses:
"200":
description: 初始化成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 初始化知识库配置
tags:
- 初始化
/initialization/multimodal/test:
post:
consumes:
- multipart/form-data
description: 上传图片测试多模态处理功能
parameters:
- description: 测试图片
in: formData
name: image
required: true
type: file
- description: VLM模型名称
in: formData
name: vlm_model
required: true
type: string
- description: VLM Base URL
in: formData
name: vlm_base_url
required: true
type: string
- description: VLM API Key
in: formData
name: vlm_api_key
type: string
- description: VLM接口类型
in: formData
name: vlm_interface_type
type: string
- description: 存储类型(cos/minio)
in: formData
name: storage_type
required: true
type: string
produces:
- application/json
responses:
"200":
description: 测试结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 测试多模态功能
tags:
- 初始化
/initialization/ollama/download/progress/{taskId}:
get:
consumes:
- application/json
description: 获取Ollama模型下载任务的进度
parameters:
- description: 任务ID
in: path
name: taskId
required: true
type: string
produces:
- application/json
responses:
"200":
description: 下载进度
schema:
additionalProperties: true
type: object
"404":
description: 任务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取下载进度
tags:
- 初始化
/initialization/ollama/download/tasks:
get:
consumes:
- application/json
description: 列出所有Ollama模型下载任务
produces:
- application/json
responses:
"200":
description: 任务列表
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 列出下载任务
tags:
- 初始化
/initialization/ollama/models:
get:
consumes:
- application/json
description: 列出已安装的Ollama模型
produces:
- application/json
responses:
"200":
description: 模型列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 列出Ollama模型
tags:
- 初始化
/initialization/ollama/models/check:
post:
consumes:
- application/json
description: 检查指定的Ollama模型是否已安装
parameters:
- description: 模型名称列表
in: body
name: request
required: true
schema:
properties:
models:
items:
type: string
type: array
type: object
produces:
- application/json
responses:
"200":
description: 模型状态
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 检查Ollama模型状态
tags:
- 初始化
/initialization/ollama/models/download:
post:
consumes:
- application/json
description: 异步下载指定的Ollama模型
parameters:
- description: 模型名称
in: body
name: request
required: true
schema:
properties:
modelName:
type: string
type: object
produces:
- application/json
responses:
"200":
description: 下载任务信息
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 下载Ollama模型
tags:
- 初始化
/initialization/ollama/status:
get:
consumes:
- application/json
description: 检查Ollama服务是否可用
produces:
- application/json
responses:
"200":
description: Ollama状态
schema:
additionalProperties: true
type: object
summary: 检查Ollama服务状态
tags:
- 初始化
/initialization/remote/check:
post:
consumes:
- application/json
description: 检查远程API模型连接是否正常
parameters:
- description: 模型检查请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.RemoteModelCheckRequest'
produces:
- application/json
responses:
"200":
description: 检查结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 检查远程模型
tags:
- 初始化
/initialization/rerank/check:
post:
consumes:
- application/json
description: 检查Rerank模型连接和功能是否正常
parameters:
- description: Rerank检查请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.ModelTestRequest'
produces:
- application/json
responses:
"200":
description: 检查结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 检查Rerank模型
tags:
- 初始化
/knowledge-bases:
get:
consumes:
- application/json
description: 获取当前租户的所有知识库;或当传入 agent_id(共享智能体)时,校验权限后返回该智能体配置的知识库范围(用于 @ 提及)
parameters:
- description: 共享智能体 ID(传入时返回该智能体可用的知识库)
in: query
name: agent_id
type: string
produces:
- application/json
responses:
"200":
description: 知识库列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识库列表
tags:
- 知识库
post:
consumes:
- application/json
description: 创建新的知识库
parameters:
- description: 知识库信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.KnowledgeBase'
produces:
- application/json
responses:
"201":
description: 创建的知识库
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建知识库
tags:
- 知识库
/knowledge-bases/{id}:
delete:
consumes:
- application/json
description: 删除指定的知识库及其所有内容
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除知识库
tags:
- 知识库
get:
consumes:
- application/json
description: 根据ID获取知识库详情。当使用共享智能体时,可传 agent_id 以校验该智能体是否有权访问该知识库。
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 共享智能体 ID(用于校验智能体是否有权访问该知识库)
in: query
name: agent_id
type: string
produces:
- application/json
responses:
"200":
description: 知识库详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 知识库不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识库详情
tags:
- 知识库
put:
consumes:
- application/json
description: 更新知识库的名称、描述和配置
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 更新请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateKnowledgeBaseRequest'
produces:
- application/json
responses:
"200":
description: 更新后的知识库
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新知识库
tags:
- 知识库
/knowledge-bases/{id}/faq/entries:
delete:
consumes:
- application/json
description: 批量删除指定的FAQ条目
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 要删除的FAQ ID列表(seq_id)
in: body
name: request
required: true
schema:
properties:
ids:
items:
type: integer
type: array
type: object
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量删除FAQ条目
tags:
- FAQ管理
get:
consumes:
- application/json
description: 获取知识库下的FAQ条目列表,支持分页和筛选
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 页码
in: query
name: page
type: integer
- description: 每页数量
in: query
name: page_size
type: integer
- description: 标签ID筛选(seq_id)
in: query
name: tag_id
type: integer
- description: 关键词搜索
in: query
name: keyword
type: string
- description: '搜索字段: standard_question(标准问题), similar_questions(相似问法), answers(答案),
默认搜索全部'
in: query
name: search_field
type: string
- description: '排序方式: asc(按更新时间正序), 默认按更新时间倒序'
in: query
name: sort_order
type: string
produces:
- application/json
responses:
"200":
description: FAQ列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取FAQ条目列表
tags:
- FAQ管理
post:
consumes:
- application/json
description: |-
异步批量更新或插入FAQ条目。支持 dry_run 模式(设置 dry_run=true),异步验证不实际导入。
dry_run 模式是异步操作,返回 task_id,通过 /faq/import/progress/{task_id} 查询进度和结果。
验证内容包括:1) 条目基本格式 2) 重复问题(批次内和知识库已有) 3) 内容安全检查。
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 批量操作请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQBatchUpsertPayload'
produces:
- application/json
responses:
"200":
description: 任务ID
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量更新/插入FAQ条目
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entries/{entry_id}:
get:
consumes:
- application/json
description: 根据ID获取单个FAQ条目的详情
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: FAQ条目ID(seq_id)
in: path
name: entry_id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: FAQ条目详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 条目不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取FAQ条目详情
tags:
- FAQ管理
put:
consumes:
- application/json
description: 更新指定的FAQ条目
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: FAQ条目ID(seq_id)
in: path
name: entry_id
required: true
type: integer
- description: FAQ条目
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload'
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新FAQ条目
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entries/{entry_id}/similar-questions:
post:
consumes:
- application/json
description: 向指定的FAQ条目添加相似问题
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: FAQ条目ID(seq_id)
in: path
name: entry_id
required: true
type: integer
- description: 相似问列表
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.addSimilarQuestionsRequest'
produces:
- application/json
responses:
"200":
description: 更新后的FAQ条目
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 条目不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 添加相似问
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entries/export:
get:
consumes:
- application/json
description: 将所有FAQ条目导出为CSV文件
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
produces:
- text/csv
responses:
"200":
description: CSV文件
schema:
type: file
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 导出FAQ条目
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entries/fields:
put:
consumes:
- application/json
description: 批量更新FAQ条目的多个字段(is_enabled, is_recommended, tag_id)
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 字段更新请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryFieldsBatchUpdate'
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量更新FAQ字段
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entries/tags:
put:
consumes:
- application/json
description: 批量更新FAQ条目的标签
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 标签更新请求
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量更新FAQ标签
tags:
- FAQ管理
/knowledge-bases/{id}/faq/entry:
post:
consumes:
- application/json
description: 同步创建单个FAQ条目
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: FAQ条目
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQEntryPayload'
produces:
- application/json
responses:
"200":
description: 创建的FAQ条目
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建单个FAQ条目
tags:
- FAQ管理
/knowledge-bases/{id}/faq/import/last-result/display:
put:
consumes:
- application/json
description: 更新FAQ知识库导入结果统计卡片的显示或隐藏状态
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 状态更新请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.updateLastFAQImportResultDisplayStatusRequest'
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 知识库不存在或无导入记录
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新FAQ最后一次导入结果显示状态
tags:
- FAQ管理
/knowledge-bases/{id}/faq/search:
post:
consumes:
- application/json
description: 使用混合搜索在FAQ中搜索,支持两级优先级标签召回:first_priority_tag_ids优先级最高,second_priority_tag_ids次之
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 搜索请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.FAQSearchRequest'
produces:
- application/json
responses:
"200":
description: 搜索结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 搜索FAQ
tags:
- FAQ管理
/knowledge-bases/{id}/hybrid-search:
get:
consumes:
- application/json
description: 在知识库中执行向量和关键词混合搜索
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 搜索参数
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SearchParams'
produces:
- application/json
responses:
"200":
description: 搜索结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 混合搜索
tags:
- 知识库
/knowledge-bases/{id}/knowledge:
delete:
consumes:
- application/json
description: 删除知识库下的所有知识条目(异步任务)。知识库本身保留,仅清空其中的内容
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 清空任务已提交
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 清空知识库内容
tags:
- 知识管理
get:
consumes:
- application/json
description: 获取知识库下的知识列表,支持分页和筛选
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 页码
in: query
name: page
type: integer
- description: 每页数量
in: query
name: page_size
type: integer
- description: 标签ID筛选
in: query
name: tag_id
type: string
- description: 关键词搜索
in: query
name: keyword
type: string
- description: 文件类型筛选
in: query
name: file_type
type: string
- description: 解析状态筛选 (pending/processing/completed/failed)
in: query
name: parse_status
type: string
- description: 来源/渠道筛选 (web/api/feishu/notion/yuque/wechat/...,或 manual/url
按 type 过滤)
in: query
name: source
type: string
- description: 更新时间起点,RFC3339 格式
in: query
name: start_time
type: string
- description: 更新时间终点,RFC3339 格式
in: query
name: end_time
type: string
produces:
- application/json
responses:
"200":
description: 知识列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识列表
tags:
- 知识管理
/knowledge-bases/{id}/knowledge/file:
post:
consumes:
- multipart/form-data
description: 上传文件并创建知识条目
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 上传的文件
in: formData
name: file
required: true
type: file
- description: 自定义文件名
in: formData
name: fileName
type: string
- description: 元数据JSON
in: formData
name: metadata
type: string
- description: 启用多模态处理
in: formData
name: enable_multimodel
type: boolean
produces:
- application/json
responses:
"200":
description: 创建的知识
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"409":
description: 文件重复
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 从文件创建知识
tags:
- 知识管理
/knowledge-bases/{id}/knowledge/manual:
post:
consumes:
- application/json
description: 手工录入Markdown格式的知识内容
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 手工知识内容
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ManualKnowledgePayload'
produces:
- application/json
responses:
"200":
description: 创建的知识
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 手工创建知识
tags:
- 知识管理
/knowledge-bases/{id}/knowledge/url:
post:
consumes:
- application/json
description: 从指定URL抓取内容并创建知识条目。当提供 file_name/file_type 或 URL 路径含已知文件扩展名时,自动切换为文件下载模式
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: URL请求
in: body
name: request
required: true
schema:
properties:
enable_multimodel:
type: boolean
file_name:
type: string
file_type:
type: string
tag_id:
type: string
title:
type: string
url:
type: string
type: object
produces:
- application/json
responses:
"201":
description: 创建的知识
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"409":
description: URL重复
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 从URL创建知识
tags:
- 知识管理
/knowledge-bases/{id}/move-targets:
get:
description: 返回与源知识库 Type 一致、EmbeddingModelID 一致、非临时且不是自身的目标知识库列表
parameters:
- description: 源知识库 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 可移动目标列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 知识库不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取可移动目标知识库列表
tags:
- 知识库
/knowledge-bases/{id}/pin:
put:
consumes:
- application/json
description: 切换知识库的置顶状态
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 更新后的知识库
schema:
additionalProperties: true
type: object
"404":
description: 知识库不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 置顶/取消置顶知识库
tags:
- 知识库
/knowledge-bases/{id}/shares:
get:
description: 获取知识库的所有共享记录
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ListSharesResponse'
security:
- Bearer: []
summary: 获取知识库的共享列表
tags:
- 知识库共享
post:
consumes:
- application/json
description: 将知识库共享到指定组织
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 共享信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ShareKnowledgeBaseRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 共享知识库到组织
tags:
- 知识库共享
/knowledge-bases/{id}/shares/{share_id}:
delete:
description: 取消知识库的共享
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 共享记录ID
in: path
name: share_id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 取消共享
tags:
- 知识库共享
put:
consumes:
- application/json
description: 更新知识库共享的权限级别
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 共享记录ID
in: path
name: share_id
required: true
type: string
- description: 权限信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateSharePermissionRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 更新共享权限
tags:
- 知识库共享
/knowledge-bases/{id}/tags:
get:
consumes:
- application/json
description: 获取知识库下的所有标签及统计信息
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 页码
in: query
name: page
type: integer
- description: 每页数量
in: query
name: page_size
type: integer
- description: 关键词搜索
in: query
name: keyword
type: string
produces:
- application/json
responses:
"200":
description: 标签列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取标签列表
tags:
- 标签管理
post:
consumes:
- application/json
description: 在知识库下创建新标签
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 标签信息
in: body
name: request
required: true
schema:
properties:
color:
type: string
name:
type: string
sort_order:
type: integer
type: object
produces:
- application/json
responses:
"200":
description: 创建的标签
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建标签
tags:
- 标签管理
/knowledge-bases/{id}/tags/{tag_id}:
delete:
consumes:
- application/json
description: 删除标签,可使用force=true强制删除被引用的标签,content_only=true仅删除标签下的内容而保留标签本身
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 标签ID (UUID或seq_id)
in: path
name: tag_id
required: true
type: string
- description: 强制删除
in: query
name: force
type: boolean
- description: 仅删除内容,保留标签
in: query
name: content_only
type: boolean
- description: 删除选项
in: body
name: body
schema:
$ref: '#/definitions/internal_handler.DeleteTagRequest'
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除标签
tags:
- 标签管理
put:
consumes:
- application/json
description: 更新标签信息
parameters:
- description: 知识库ID
in: path
name: id
required: true
type: string
- description: 标签ID (UUID或seq_id)
in: path
name: tag_id
required: true
type: string
- description: 标签更新信息
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: 更新后的标签
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新标签
tags:
- 标签管理
/knowledge-bases/copy:
post:
consumes:
- application/json
description: 将一个知识库的内容复制到另一个知识库(异步任务)
parameters:
- description: 复制请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.CopyKnowledgeBaseRequest'
produces:
- application/json
responses:
"200":
description: 任务ID
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 复制知识库
tags:
- 知识库
/knowledge-bases/copy/progress/{task_id}:
get:
consumes:
- application/json
description: 获取知识库复制任务的进度
parameters:
- description: 任务ID
in: path
name: task_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 进度信息
schema:
additionalProperties: true
type: object
"404":
description: 任务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识库复制进度
tags:
- 知识库
/knowledge/{id}:
delete:
consumes:
- application/json
description: 根据ID删除知识条目
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除知识
tags:
- 知识管理
get:
consumes:
- application/json
description: 根据ID获取知识条目详情
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 知识详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 知识不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识详情
tags:
- 知识管理
put:
consumes:
- application/json
description: 更新知识条目信息
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
- description: 知识信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Knowledge'
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新知识
tags:
- 知识管理
/knowledge/{id}/download:
get:
consumes:
- application/json
description: 下载知识条目关联的原始文件
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
produces:
- application/octet-stream
responses:
"200":
description: 文件内容
schema:
type: file
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 下载知识文件
tags:
- 知识管理
/knowledge/{id}/preview:
get:
consumes:
- application/json
description: 返回知识条目关联的原始文件,Content-Type 根据文件类型设置,用于浏览器内嵌预览
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
produces:
- application/pdf
- image/jpeg
- image/png
- text/plain
responses:
"200":
description: 文件内容
schema:
type: file
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 预览知识文件
tags:
- 知识管理
/knowledge/{id}/reparse:
post:
consumes:
- application/json
description: 删除知识中现有的文档内容并重新解析,使用异步任务方式处理
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 重新解析任务已提交
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 重新解析知识
tags:
- 知识管理
/knowledge/batch:
get:
consumes:
- application/json
description: 根据ID列表批量获取知识条目。可选 kb_id:指定时按该知识库校验权限并用于共享知识库的租户解析;可选 agent_id:使用共享智能体时传此参数,后端按智能体所属租户查询(用于刷新后恢复共享知识库下的文件)
parameters:
- collectionFormat: csv
description: 知识ID列表
in: query
items:
type: string
name: ids
required: true
type: array
- description: 可选,知识库ID(用于共享知识库时指定范围)
in: query
name: kb_id
type: string
- description: 可选,共享智能体ID(用于按智能体租户批量拉取文件详情)
in: query
name: agent_id
type: string
produces:
- application/json
responses:
"200":
description: 知识列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量获取知识
tags:
- 知识管理
/knowledge/batch-delete:
post:
consumes:
- application/json
description: 按 ID 列表批量删除单个知识库下的多个知识条目
parameters:
- description: 批量删除请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.BatchDeleteKnowledgeRequest'
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量删除知识
tags:
- 知识管理
/knowledge/image/{id}/{chunk_id}:
put:
consumes:
- application/json
description: 更新知识分块的图像信息
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
- description: 分块ID
in: path
name: chunk_id
required: true
type: string
- description: 图像信息
in: body
name: request
required: true
schema:
properties:
image_info:
type: string
type: object
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新图像信息
tags:
- 知识管理
/knowledge/manual/{id}:
put:
consumes:
- application/json
description: 更新手工录入的Markdown知识内容
parameters:
- description: 知识ID
in: path
name: id
required: true
type: string
- description: 手工知识内容
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ManualKnowledgePayload'
produces:
- application/json
responses:
"200":
description: 更新后的知识
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新手工知识
tags:
- 知识管理
/knowledge/move:
post:
consumes:
- application/json
description: 将一条或多条知识从源知识库移动到目标知识库(异步),返回任务 ID 用于查询进度
parameters:
- description: '{source_kb_id, target_kb_id, knowledge_ids}'
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.MoveKnowledgeRequest'
produces:
- application/json
responses:
"200":
description: 任务信息
schema:
$ref: '#/definitions/internal_handler.MoveKnowledgeResponse'
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 移动知识到其他知识库
tags:
- 知识
/knowledge/move/progress/{task_id}:
get:
description: 按任务 ID 查询移动进度
parameters:
- description: 移动任务 ID
in: path
name: task_id
required: true
type: string
produces:
- application/json
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'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取知识移动进度
tags:
- 知识
/knowledge/search:
get:
consumes:
- application/json
description: Search knowledge files by keyword. When agent_id is set (shared
agent), scope is the agent's configured knowledge bases.
parameters:
- description: Keyword to search
in: query
name: keyword
type: string
- description: Offset for pagination
in: query
name: offset
type: integer
- description: Limit for pagination (default 20)
in: query
name: limit
type: integer
- description: Comma-separated file extensions to filter (e.g., csv,xlsx)
in: query
name: file_types
type: string
- description: Shared agent ID (search within agent's KB scope)
in: query
name: agent_id
type: string
produces:
- application/json
responses:
"200":
description: Search results
schema:
additionalProperties: true
type: object
"400":
description: Invalid request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: Search knowledge
tags:
- Knowledge
/knowledge/tags:
put:
consumes:
- application/json
description: 批量更新知识条目的标签。可选 kb_id:指定时按该知识库校验编辑权限并用于共享知识库的租户解析
parameters:
- description: 标签更新请求(updates 必填,kb_id 可选)
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量更新知识标签
tags:
- 知识管理
/knowledgebase/{kb_id}/wiki/auto-fix:
post:
description: Automatically fix fixable wiki issues (broken links, etc.)
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: Auto-fix wiki issues
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/graph:
get:
description: |-
Returns a slice of the wiki link graph for visualization. Supports
`mode=overview` (top-N most-connected pages, default) and
`mode=ego` (BFS neighborhood of a center slug) to keep response
size tractable for knowledge bases with tens of thousands of pages.
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: overview (default) | ego
in: query
name: mode
type: string
- description: Center slug for ego mode
in: query
name: center
type: string
- description: Ego BFS depth (1-3, default 1)
in: query
name: depth
type: integer
- description: Comma-separated page_type allow-list
in: query
name: types
type: string
- description: Max nodes to return (default 500, max 2000)
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiGraphData'
security:
- Bearer: []
summary: Get wiki link graph
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/index:
get:
description: |-
Returns the wiki index as intro text plus per-type paginated
directory groups. The heavy directory markdown that used to
live in wiki_pages.content was replaced with this structured
response so a KB with tens of thousands of pages no longer
materializes megabytes of TEXT on every index open.
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: 'Comma-separated page types (default: all content types)'
in: query
name: types
type: string
- description: Per-group window size, 1-200 (default 50)
in: query
name: limit
type: integer
- description: Opaque offset cursor from previous response
in: query
name: cursor
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiIndexResponse'
security:
- Bearer: []
summary: Get wiki index view
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/issues:
get:
description: List issues flagged on wiki pages with optional filtering
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Filter by page slug
in: query
name: slug
type: string
- description: Filter by status (pending, ignored, resolved)
in: query
name: status
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPageIssue'
type: array
security:
- Bearer: []
summary: List wiki page issues
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/issues/{issue_id}/status:
put:
consumes:
- application/json
description: Update the status of a flagged wiki page issue
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Issue ID
in: path
name: issue_id
required: true
type: string
- description: 'New status {''status'': ''ignored''}'
in: body
name: status
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: Update wiki page issue status
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/lint:
get:
description: Perform a comprehensive health check on the wiki
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_application_service.WikiLintReport'
security:
- Bearer: []
summary: Run wiki lint
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/log:
get:
description: |-
Returns a paginated feed of wiki operation events (ingest, retract, ...)
newest-first. Pagination is cursor-based: pass `next_cursor` from the
previous response back as `cursor` to fetch the next page.
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Opaque cursor from the previous page (empty = newest)
in: query
name: cursor
type: string
- description: Page size, 1-200 (default 50)
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiLogEntryListResponse'
security:
- Bearer: []
summary: Get wiki operation log
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/pages:
get:
description: List wiki pages with optional filtering and pagination
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Filter by page type
in: query
name: page_type
type: string
- description: Filter by status
in: query
name: status
type: string
- description: Full-text search
in: query
name: query
type: string
- description: Page number
in: query
name: page
type: integer
- description: Page size
in: query
name: page_size
type: integer
- description: Sort field
in: query
name: sort_by
type: string
- description: Sort order (asc/desc)
in: query
name: sort_order
type: string
produces:
- application/json
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'
security:
- Bearer: []
summary: List wiki pages
tags:
- Wiki
post:
consumes:
- application/json
description: Create a new wiki page in the knowledge base
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Wiki page data
in: body
name: page
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage'
produces:
- application/json
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'
security:
- Bearer: []
summary: Create a wiki page
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/pages/{slug}:
delete:
description: Soft-delete a wiki page by slug
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Page slug
in: path
name: slug
required: true
type: string
responses:
"204":
description: No Content
"404":
description: Not Found
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: Delete a wiki page
tags:
- Wiki
get:
description: Retrieve a wiki page by its slug
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Page slug
in: path
name: slug
required: true
type: string
produces:
- application/json
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'
security:
- Bearer: []
summary: Get a wiki page by slug
tags:
- Wiki
put:
consumes:
- application/json
description: Update an existing wiki page by slug
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Page slug
in: path
name: slug
required: true
type: string
- description: Updated wiki page data
in: body
name: page
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage'
produces:
- application/json
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'
security:
- Bearer: []
summary: Update a wiki page
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/rebuild-links:
post:
description: Re-parse all pages and rebuild bidirectional link references
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties:
type: string
type: object
security:
- Bearer: []
summary: Rebuild wiki links
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/search:
get:
description: Full-text search over wiki pages
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
- description: Search query
in: query
name: q
required: true
type: string
- description: Max results (default 10)
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
items:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiPage'
type: array
security:
- Bearer: []
summary: Search wiki pages
tags:
- Wiki
/knowledgebase/{kb_id}/wiki/stats:
get:
description: Returns aggregate statistics about the wiki
parameters:
- description: Knowledge base ID
in: path
name: kb_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WikiStats'
security:
- Bearer: []
summary: Get wiki statistics
tags:
- Wiki
/mcp-services:
get:
consumes:
- application/json
description: 获取当前租户的所有MCP服务
produces:
- application/json
responses:
"200":
description: MCP服务列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取MCP服务列表
tags:
- MCP服务
post:
consumes:
- application/json
description: 创建新的MCP服务配置
parameters:
- description: MCP服务配置
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.MCPService'
produces:
- application/json
responses:
"200":
description: 创建的MCP服务
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建MCP服务
tags:
- MCP服务
/mcp-services/{id}:
delete:
consumes:
- application/json
description: 删除指定的MCP服务
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除MCP服务
tags:
- MCP服务
get:
consumes:
- application/json
description: 根据ID获取MCP服务详情
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: MCP服务详情
schema:
additionalProperties: true
type: object
"404":
description: 服务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取MCP服务详情
tags:
- MCP服务
put:
consumes:
- application/json
description: 更新MCP服务配置
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
- description: 更新字段
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: 更新后的MCP服务
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新MCP服务
tags:
- MCP服务
/mcp-services/{id}/credentials:
put:
consumes:
- application/json
description: 为指定字段写入新凭据;省略的字段保留原值;空字符串视为 no-op(如需删除请用 DELETE)
parameters:
- description: MCP 服务 ID
in: path
name: id
required: true
type: string
- description: '{api_key?: string, token?: string}'
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 写入后的凭据状态
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 服务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 设置 MCP 服务凭据
tags:
- MCP服务
/mcp-services/{id}/credentials/{field}:
delete:
description: 删除指定字段的存储凭据;删除已为空的字段是幂等的
parameters:
- description: MCP 服务 ID
in: path
name: id
required: true
type: string
- description: 字段名(api_key | token)
in: path
name: field
required: true
type: string
produces:
- application/json
responses:
"204":
description: No Content
"400":
description: 字段名非法
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 服务不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 移除 MCP 服务的单个凭据字段
tags:
- MCP服务
/mcp-services/{id}/resources:
get:
consumes:
- application/json
description: 获取MCP服务提供的资源列表
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 资源列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取MCP服务资源列表
tags:
- MCP服务
/mcp-services/{id}/test:
post:
consumes:
- application/json
description: 测试MCP服务是否可以正常连接
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 测试结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 测试MCP服务连接
tags:
- MCP服务
/mcp-services/{id}/tool-approvals/{tool_name}:
put:
consumes:
- application/json
description: 为指定 MCP 服务下的某个工具设置/更新审批要求
parameters:
- description: MCP 服务 ID
in: path
name: id
required: true
type: string
- description: 工具名
in: path
name: tool_name
required: true
type: string
- description: '{require_approval: bool}'
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 更新结果
schema:
additionalProperties: true
type: object
"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'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 设置 MCP 工具人工审批策略
tags:
- MCP服务
/mcp-services/{id}/tools:
get:
consumes:
- application/json
description: 获取MCP服务提供的工具列表
parameters:
- description: MCP服务ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 工具列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取MCP服务工具列表
tags:
- MCP服务
/me/invitations:
get:
description: 返回当前登录用户的待接受邀请(默认仅 pending),用于头像入口和 /invitations 收件箱页。
parameters:
- description: 是否包含已处理 / 已过期等终止态行(默认 false)
in: query
name: include_terminal
type: boolean
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 列出我的待接受邀请
tags:
- 我的邀请
/me/invitations/{inv_id}/accept:
post:
description: 当前登录用户接受一条 pending 邀请;服务端会同时写入 tenant_members 行。
parameters:
- description: 邀请 ID
in: path
name: inv_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 接受邀请
tags:
- 我的邀请
/me/invitations/{inv_id}/decline:
post:
description: 当前登录用户拒绝一条 pending 邀请;不创建 tenant_members 行。
parameters:
- description: 邀请 ID
in: path
name: inv_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 拒绝邀请
tags:
- 我的邀请
/me/invitations/pending-count:
get:
description: 轻量级 endpoint,返回当前登录用户的 pending 邀请数,用于头像旁的角标轮询。
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 获取我的待处理邀请数
tags:
- 我的邀请
/messages/{session_id}/{id}:
delete:
consumes:
- application/json
description: 从会话中删除指定消息
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 消息ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除消息
tags:
- 消息
/messages/{session_id}/load:
get:
consumes:
- application/json
description: 加载会话的消息历史,支持分页和时间筛选
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- default: 20
description: 返回数量
in: query
name: limit
type: integer
- description: 在此时间之前的消息(RFC3339Nano格式)
in: query
name: before_time
type: string
produces:
- application/json
responses:
"200":
description: 消息列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 加载消息历史
tags:
- 消息
/messages/chat-history-stats:
get:
consumes:
- application/json
description: 获取聊天历史知识库的统计信息(已索引消息数、知识库大小等)
produces:
- application/json
responses:
"200":
description: 统计信息
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取聊天历史知识库统计
tags:
- 消息
/messages/search:
post:
consumes:
- application/json
description: 通过关键词和/或向量相似度搜索历史对话记录,支持关键词、向量、混合三种模式
parameters:
- description: 搜索请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.SearchMessagesRequest'
produces:
- application/json
responses:
"200":
description: 搜索结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 搜索历史对话
tags:
- 消息
/models:
get:
consumes:
- application/json
description: 获取当前租户的所有模型
produces:
- application/json
responses:
"200":
description: 模型列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取模型列表
tags:
- 模型管理
post:
consumes:
- application/json
description: 创建新的模型配置
parameters:
- description: 模型信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.CreateModelRequest'
produces:
- application/json
responses:
"201":
description: 创建的模型
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建模型
tags:
- 模型管理
/models/{id}:
delete:
consumes:
- application/json
description: 删除指定的模型
parameters:
- description: 模型ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"404":
description: 模型不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除模型
tags:
- 模型管理
get:
consumes:
- application/json
description: 根据ID获取模型详情
parameters:
- description: 模型ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 模型详情
schema:
additionalProperties: true
type: object
"404":
description: 模型不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取模型详情
tags:
- 模型管理
put:
consumes:
- application/json
description: 更新模型配置信息
parameters:
- description: 模型ID
in: path
name: id
required: true
type: string
- description: 更新信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateModelRequest'
produces:
- application/json
responses:
"200":
description: 更新后的模型
schema:
additionalProperties: true
type: object
"404":
description: 模型不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新模型
tags:
- 模型管理
/models/providers:
get:
consumes:
- application/json
description: 根据模型类型获取支持的厂商列表及配置信息
parameters:
- description: 模型类型 (chat, embedding, rerank, vllm)
in: query
name: model_type
type: string
produces:
- application/json
responses:
"200":
description: 厂商列表
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取模型厂商列表
tags:
- 模型管理
/models/weknoracloud/status:
get:
description: 检查当前租户的 WeKnoraCloud 凭证是否完好;needs_reinit=true 表示需要重新保存
produces:
- application/json
responses:
"200":
description: 凭证状态
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 检查 WeKnoraCloud 凭证状态
tags:
- WeKnoraCloud
/organizations:
get:
description: 获取当前租户所属的所有组织,并附带各空间内知识库/智能体数量
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ListOrganizationsResponse'
security:
- Bearer: []
summary: 获取我的组织列表
tags:
- 组织管理
post:
consumes:
- application/json
description: 创建新的组织,创建者自动成为管理员
parameters:
- description: 组织信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.CreateOrganizationRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 创建组织
tags:
- 组织管理
/organizations/{id}:
delete:
description: 删除组织(仅组织创建者可操作)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 删除组织
tags:
- 组织管理
get:
description: 根据ID获取组织详情
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 获取组织详情
tags:
- 组织管理
put:
consumes:
- application/json
description: 更新组织信息(需要管理员权限)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 更新信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateOrganizationRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 更新组织
tags:
- 组织管理
/organizations/{id}/agent-shares:
get:
description: 返回所有被共享到指定组织的智能体(含我的有效权限)
parameters:
- description: 组织 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 智能体共享列表 + total
schema:
additionalProperties: true
type: object
"403":
description: 非组织成员
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取共享到本组织的智能体
tags:
- 组织
/organizations/{id}/invite:
post:
consumes:
- application/json
description: 管理员直接添加用户为组织成员
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 邀请信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.InviteMemberRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"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'
security:
- Bearer: []
summary: 邀请成员
tags:
- 组织管理
/organizations/{id}/invite-code:
post:
description: 生成新的组织邀请码(需要管理员权限)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 生成邀请码
tags:
- 组织管理
/organizations/{id}/join-requests:
get:
description: 获取组织的待审核加入申请(仅管理员)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 获取待审核加入申请列表
tags:
- 组织管理
/organizations/{id}/join-requests/{request_id}/review:
put:
consumes:
- application/json
description: 通过或拒绝加入申请(仅管理员)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 申请ID
in: path
name: request_id
required: true
type: string
- description: 审核结果
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ReviewJoinRequestRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 审核加入申请
tags:
- 组织管理
/organizations/{id}/leave:
post:
description: 退出指定组织
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 退出组织
tags:
- 组织管理
/organizations/{id}/members:
get:
description: 获取组织的所有成员(按租户)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ListMembersResponse'
security:
- Bearer: []
summary: 获取组织成员列表
tags:
- 组织管理
/organizations/{id}/members/{tenant_id}:
delete:
description: 从组织中移除成员租户(需要管理员权限)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 成员租户ID
in: path
name: tenant_id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 移除成员
tags:
- 组织管理
put:
consumes:
- application/json
description: 更新组织成员(租户)的角色(需要管理员权限)
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 成员租户ID
in: path
name: tenant_id
required: true
type: string
- description: 角色信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.UpdateMemberRoleRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 更新成员角色
tags:
- 组织管理
/organizations/{id}/request-upgrade:
post:
consumes:
- application/json
description: 现有成员申请更高权限
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 申请信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.RequestRoleUpgradeRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 申请权限升级
tags:
- 组织管理
/organizations/{id}/search-tenants:
get:
description: 搜索租户(排除已加入的租户)用于邀请加入组织;按租户去重,附带代表用户
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
- description: 搜索关键词(租户名、用户名或邮箱)
in: query
name: q
required: true
type: string
- default: 10
description: 返回数量限制
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 搜索可邀请的租户
tags:
- 组织管理
/organizations/{id}/search-users:
get:
deprecated: true
responses: {}
/organizations/{id}/shared-agents:
get:
description: 获取指定空间下所有共享智能体,包含他人共享的与我共享的,用于列表页空间视角
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 获取空间内全部智能体(含我共享的)
tags:
- 组织管理
/organizations/{id}/shared-knowledge-bases:
get:
description: 获取指定空间下所有共享知识库,包含直接共享的与通过共享智能体可见的,用于列表页空间视角
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 获取空间内全部知识库(含我共享的、含智能体携带的)
tags:
- 组织管理
/organizations/{id}/shares:
get:
description: 获取共享到指定组织的所有知识库
parameters:
- description: 组织ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.ListSharesResponse'
security:
- Bearer: []
summary: 获取组织的共享知识库列表
tags:
- 组织管理
/organizations/join:
post:
consumes:
- application/json
description: 使用邀请码加入组织
parameters:
- description: 邀请码
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.JoinOrganizationRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 通过邀请码加入组织
tags:
- 组织管理
/organizations/join-by-id:
post:
consumes:
- application/json
description: 加入已开放可被搜索的空间,无需邀请码
parameters:
- description: 空间 ID
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.JoinByOrganizationIDRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 通过空间 ID 加入(可搜索空间)
tags:
- 组织管理
/organizations/join-request:
post:
consumes:
- application/json
description: 对需要审核的组织提交加入申请
parameters:
- description: 申请信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.SubmitJoinRequestRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 提交加入申请
tags:
- 组织管理
/organizations/preview/{code}:
get:
description: 通过邀请码获取组织基本信息(不加入)
parameters:
- description: 邀请码
in: path
name: code
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 通过邀请码预览组织
tags:
- 组织管理
/organizations/search:
get:
description: 搜索已开放可被搜索的空间,用于发现并加入
parameters:
- description: 搜索关键词(空间名称或描述)
in: query
name: q
type: string
- default: 20
description: 返回数量限制
in: query
name: limit
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 搜索可加入的空间
tags:
- 组织管理
/sessions:
get:
consumes:
- application/json
description: 获取当前租户的会话列表,支持分页、关键字搜索、按来源/Agent 筛选
parameters:
- description: 页码
in: query
name: page
type: integer
- description: 每页数量
in: query
name: page_size
type: integer
- description: 标题模糊搜索
in: query
name: keyword
type: string
- description: 来源过滤:web / feishu / wechat / slack / ...
in: query
name: source
type: string
- description: 按 Agent 过滤(仅对 IM 会话生效)
in: query
name: agent_id
type: string
produces:
- application/json
responses:
"200":
description: 会话列表
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取会话列表
tags:
- 会话
post:
consumes:
- application/json
description: 创建新的对话会话
parameters:
- description: 会话创建请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.CreateSessionRequest'
produces:
- application/json
responses:
"201":
description: 创建的会话
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 创建会话
tags:
- 会话
/sessions/{id}:
delete:
consumes:
- application/json
description: 删除指定的会话
parameters:
- description: 会话ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除会话
tags:
- 会话
get:
consumes:
- application/json
description: 根据ID获取会话详情
parameters:
- description: 会话ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 会话详情
schema:
additionalProperties: true
type: object
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取会话详情
tags:
- 会话
put:
consumes:
- application/json
description: 更新会话属性
parameters:
- description: 会话ID
in: path
name: id
required: true
type: string
- description: 会话信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Session'
produces:
- application/json
responses:
"200":
description: 更新后的会话
schema:
additionalProperties: true
type: object
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新会话
tags:
- 会话
/sessions/{id}/messages:
delete:
consumes:
- application/json
description: 删除会话中的所有消息,同时清除 LLM 上下文和聊天历史知识库条目。会话本身保留。
parameters:
- description: 会话ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 清空成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 清空会话消息
tags:
- 会话
/sessions/{id}/pin:
delete:
description: 取消指定会话的置顶
parameters:
- description: 会话ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 取消置顶成功
schema:
additionalProperties: true
type: object
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 取消置顶会话
tags:
- 会话
/sessions/{session_id}/agent-qa:
post:
consumes:
- application/json
description: 基于Agent的智能问答,支持多轮对话和SSE流式响应
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 问答请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.CreateKnowledgeQARequest'
produces:
- text/event-stream
responses:
"200":
description: 问答结果(SSE流)
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: Agent问答
tags:
- 问答
/sessions/{session_id}/knowledge-qa:
post:
consumes:
- application/json
description: 基于知识库的问答(使用LLM总结),支持SSE流式响应
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 问答请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.CreateKnowledgeQARequest'
produces:
- text/event-stream
responses:
"200":
description: 问答结果(SSE流)
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 知识问答
tags:
- 问答
/sessions/{session_id}/pin:
post:
description: 将指定会话置顶(用户维度)
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 置顶成功
schema:
additionalProperties: true
type: object
"404":
description: 会话不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 置顶会话
tags:
- 会话
/sessions/{session_id}/stop:
post:
consumes:
- application/json
description: 停止当前正在进行的生成任务
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 停止请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.StopSessionRequest'
produces:
- application/json
responses:
"200":
description: 停止成功
schema:
additionalProperties: true
type: object
"404":
description: 会话或消息不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 停止生成
tags:
- 问答
/sessions/{session_id}/title:
post:
consumes:
- application/json
description: 根据消息内容自动生成会话标题
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 生成请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.GenerateTitleRequest'
produces:
- application/json
responses:
"200":
description: 生成的标题
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 生成会话标题
tags:
- 会话
/sessions/batch:
delete:
consumes:
- application/json
description: 根据ID列表批量删除对话会话,或设置 delete_all=true 删除当前租户的所有会话
parameters:
- description: 批量删除请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.batchDeleteRequest'
produces:
- application/json
responses:
"200":
description: 删除结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 批量删除会话
tags:
- 会话
/sessions/continue-stream/{session_id}:
get:
consumes:
- application/json
description: 继续获取正在进行的流式响应
parameters:
- description: 会话ID
in: path
name: session_id
required: true
type: string
- description: 消息ID
in: query
name: message_id
required: true
type: string
produces:
- text/event-stream
responses:
"200":
description: 流式响应
schema:
additionalProperties: true
type: object
"404":
description: 会话或消息不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 继续流式响应
tags:
- 问答
/sessions/search:
post:
consumes:
- application/json
description: 在知识库中搜索(不使用LLM总结)
parameters:
- description: 搜索请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler_session.SearchKnowledgeRequest'
produces:
- application/json
responses:
"200":
description: 搜索结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 知识搜索
tags:
- 问答
/shared-agents:
get:
description: 返回所有共享给当前用户所在组织的智能体
produces:
- application/json
responses:
"200":
description: 智能体列表 + total
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取我可访问的共享智能体
tags:
- 组织
/shared-knowledge-bases:
get:
description: 获取通过组织共享给当前用户的所有知识库
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 获取共享给我的知识库列表
tags:
- 知识库共享
/skills:
get:
consumes:
- application/json
description: 获取所有预装的Agent Skills元数据
produces:
- application/json
responses:
"200":
description: Skills列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取预装Skills列表
tags:
- Skills
/system/docreader/reconnect:
post:
consumes:
- application/json
parameters:
- description: DocReader 地址
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: OK
summary: 重连文档解析服务
tags:
- 系统
/system/info:
get:
consumes:
- application/json
description: 获取系统版本、构建信息和引擎配置
produces:
- application/json
responses:
"200":
description: 系统信息
schema:
$ref: '#/definitions/internal_handler.GetSystemInfoResponse'
summary: 获取系统信息
tags:
- 系统
/system/parser-engines:
get:
produces:
- application/json
responses:
"200":
description: 解析引擎列表
schema:
additionalProperties: true
type: object
summary: 列出可用的文档解析引擎
tags:
- 系统
/system/parser-engines/check:
post:
consumes:
- application/json
parameters:
- description: 解析引擎配置(与保存接口同结构)
in: body
name: body
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: OK
summary: 使用当前参数检测解析引擎可用性
tags:
- 系统
/system/storage-engine-check:
post:
consumes:
- application/json
description: 使用当前填写的参数测试 MinIO/COS 连通性,不保存配置
parameters:
- description: 存储引擎配置
in: body
name: body
required: true
schema:
$ref: '#/definitions/internal_handler.StorageCheckRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_handler.StorageCheckResponse'
summary: 测试存储引擎连通性
tags:
- 系统
/system/storage-engine-status:
get:
description: 返回 Local、MinIO、COS 各存储引擎的可用状态及说明,供全局设置与知识库选择使用
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_handler.GetStorageEngineStatusResponse'
summary: 获取存储引擎状态
tags:
- 系统
/tenants:
get:
consumes:
- application/json
description: 获取当前用户可访问的租户列表
produces:
- application/json
responses:
"200":
description: 租户列表
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 获取租户列表
tags:
- 租户管理
post:
consumes:
- application/json
description: |-
创建新的租户。任意已登录用户均可调用以建立自己的新工作区,
调用方会被自动设为该租户的 Owner。跨租户超管仍可像以前一样
通过本接口创建任意租户。
parameters:
- description: 租户信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.createTenantRequest'
produces:
- application/json
responses:
"201":
description: 创建的租户
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 创建租户
tags:
- 租户管理
/tenants/{id}:
delete:
consumes:
- application/json
description: 删除指定的租户
parameters:
- description: 租户ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 删除成功
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 删除租户
tags:
- 租户管理
get:
consumes:
- application/json
description: 根据ID获取租户详情
parameters:
- description: 租户ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 租户详情
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"404":
description: 租户不存在
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取租户详情
tags:
- 租户管理
put:
consumes:
- application/json
description: 更新租户信息
parameters:
- description: 租户ID
in: path
name: id
required: true
type: integer
- description: 租户信息
in: body
name: request
required: true
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.Tenant'
produces:
- application/json
responses:
"200":
description: 更新后的租户
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 更新租户
tags:
- 租户管理
/tenants/{id}/api-key:
post:
consumes:
- application/json
description: 为指定租户生成一个新的 API Key,旧 Key 立即失效
parameters:
- description: 租户ID
in: path
name: id
required: true
type: integer
produces:
- application/json
responses:
"200":
description: 新生成的 API Key
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 重置租户 API Key
tags:
- 租户管理
/tenants/{id}/audit-log:
get:
description: 返回该租户最近的审计事件,按 id 倒序。游标分页:将上次响应的 next_cursor 作为下一次请求的 after_id。
parameters:
- description: 租户ID
in: path
name: id
required: true
type: string
- description: 游标:返回 id 小于此值的记录(默认从最新开始)
in: query
name: after_id
type: integer
- description: 页大小,1-100,默认 50
in: query
name: limit
type: integer
- description: 按 action 精确过滤(如 rbac.member_added / rbac.access_denied)
in: query
name: action
type: string
- description: 按 outcome 精确过滤(success / denied)
in: query
name: outcome
type: string
- description: 按 actor_user_id 精确过滤
in: query
name: actor
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
$ref: '#/definitions/internal_handler.auditLogListResponse'
"400":
description: Bad Request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取租户审计日志
tags:
- 审计日志
/tenants/{id}/invitations:
get:
description: 按 tenant 列出待接受 / 历史邀请。query include_terminal=true 时附带 accepted/declined/revoked/expired。
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 是否包含终止态行(默认 false)
in: query
name: include_terminal
type: boolean
- default: 1
description: 页码(从 1 起)
in: query
name: page
type: integer
- default: 20
description: 每页数量
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 列出租户邀请
tags:
- 租户邀请
post:
consumes:
- application/json
description: Owner 通过邮箱邀请已注册用户加入当前租户;被邀请人需要在 /me/invitations 接受后才会成为成员。
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 邀请请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.createInvitationRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 发出租户邀请
tags:
- 租户邀请
/tenants/{id}/invitations/{inv_id}:
delete:
description: Owner 取消一条还在 pending 的邀请;已 accepted/declined/revoked/expired 的行不可再撤销。
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 邀请 ID
in: path
name: inv_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 撤销待接受邀请
tags:
- 租户邀请
/tenants/{id}/leave:
post:
description: 调用方主动退出当前租户。等价于以自己的 user_id 调 RemoveMember,
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 退出当前租户
tags:
- 租户成员
/tenants/{id}/members:
get:
description: 分页返回当前租户内 active 成员(含每位成员的角色、邮箱、头像);支持 q 按邮箱/用户名筛选
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 按邮箱/用户名模糊筛选
in: query
name: q
type: string
- default: 1
description: 页码(从 1 起)
in: query
name: page
type: integer
- default: 20
description: 每页数量(最大 100)
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 列出租户成员
tags:
- 租户成员
post:
consumes:
- application/json
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 邀请请求
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.addMemberRequest'
produces:
- application/json
responses:
"201":
description: Created
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 直接添加租户成员(直加路径)
tags:
- 租户成员
/tenants/{id}/members/{user_id}:
delete:
description: Owner 将某位成员从当前租户中移除(软删除 tenant_members 行);不能移除最后一位 Owner
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 用户 ID
in: path
name: user_id
required: true
type: string
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 移除租户成员
tags:
- 租户成员
put:
consumes:
- application/json
description: Owner 修改某位成员在当前租户内的角色;不能将最后一位 Owner 降级
parameters:
- description: 租户 ID
in: path
name: id
required: true
type: string
- description: 用户 ID
in: path
name: user_id
required: true
type: string
- description: 目标角色
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.updateMemberRoleRequest'
produces:
- application/json
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
security:
- Bearer: []
summary: 修改租户成员角色
tags:
- 租户成员
/tenants/all:
get:
consumes:
- application/json
description: 获取系统中所有租户(需要跨租户访问权限)
produces:
- application/json
responses:
"200":
description: 所有租户列表
schema:
additionalProperties: true
type: object
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
summary: 获取所有租户列表
tags:
- 租户管理
/tenants/kv/{key}:
get:
consumes:
- application/json
description: 获取租户级别的KV配置(支持web-search-config、prompt-templates、parser-engine-config、storage-engine-config、chat-history-config、retrieval-config)
parameters:
- description: 配置键名
in: path
name: key
required: true
type: string
produces:
- application/json
responses:
"200":
description: 配置值
schema:
additionalProperties: true
type: object
"400":
description: 不支持的键
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取租户KV配置
tags:
- 租户管理
put:
consumes:
- application/json
description: 更新租户级别的KV配置(支持web-search-config、parser-engine-config、storage-engine-config、chat-history-config、retrieval-config)
parameters:
- description: 配置键名
in: path
name: key
required: true
type: string
- description: 配置值
in: body
name: request
required: true
schema:
type: object
produces:
- application/json
responses:
"200":
description: 更新成功
schema:
additionalProperties: true
type: object
"400":
description: 不支持的键
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新租户KV配置
tags:
- 租户管理
/tenants/kv/prompt-templates:
get:
consumes:
- application/json
description: 获取系统配置的提示词模板列表
produces:
- application/json
responses:
"200":
description: 提示词模板配置
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取提示词模板
tags:
- 租户管理
/tenants/kv/web-search-config:
get:
consumes:
- application/json
description: 获取租户的网络搜索配置
produces:
- application/json
responses:
"200":
description: 网络搜索配置
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取租户网络搜索配置
tags:
- 租户管理
/tenants/search:
get:
consumes:
- application/json
description: 分页搜索租户(需要跨租户访问权限)
parameters:
- description: 搜索关键词
in: query
name: keyword
type: string
- description: 租户ID筛选
in: query
name: tenant_id
type: integer
- default: 1
description: 页码
in: query
name: page
type: integer
- default: 20
description: 每页数量
in: query
name: page_size
type: integer
produces:
- application/json
responses:
"200":
description: 搜索结果
schema:
additionalProperties: true
type: object
"403":
description: 权限不足
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: 搜索租户
tags:
- 租户管理
/user/favorites:
get:
description: Lists this user's starred resources in the current tenant for a
given type
parameters:
- description: Resource type (kb | agent)
in: query
name: type
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
summary: List my favorites
tags:
- User
post:
parameters:
- description: Type + id
in: body
name: body
required: true
schema:
$ref: '#/definitions/internal_handler.AddFavoriteRequest'
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
summary: Star a resource
tags:
- User
/user/favorites/{type}/{id}:
delete:
parameters:
- description: Resource type
in: path
name: type
required: true
type: string
- description: Resource id
in: path
name: id
required: true
type: string
responses:
"200":
description: OK
schema:
additionalProperties: true
type: object
summary: Unstar a resource
tags:
- User
/vector-stores:
get:
description: List all vector stores for the current tenant, including environment-configured
and user-created stores
produces:
- application/json
responses:
"200":
description: List of vector stores (env + DB)
schema:
additionalProperties: true
type: object
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: List vector stores
tags:
- VectorStore
post:
consumes:
- application/json
description: Create a new vector store configuration for the current tenant
parameters:
- description: Vector store configuration
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.CreateStoreRequest'
produces:
- application/json
responses:
"201":
description: Created vector store
schema:
additionalProperties: true
type: object
"400":
description: Invalid request or validation error
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
"409":
description: Duplicate endpoint and index
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
security:
- Bearer: []
- ApiKeyAuth: []
summary: Create vector store
tags:
- VectorStore
/vector-stores/{id}:
delete:
description: Soft-delete a vector store. Env stores cannot be deleted.
parameters:
- description: Vector store ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Deletion success
schema:
additionalProperties: true
type: object
"400":
description: Env store cannot be deleted
schema:
additionalProperties: true
type: object
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
"404":
description: Vector store not found
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: Delete vector store
tags:
- VectorStore
get:
description: Retrieve a single vector store by ID. Supports both DB stores and
env stores (__env_* IDs)
parameters:
- description: Vector store ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Vector store details
schema:
additionalProperties: true
type: object
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
"404":
description: Vector store not found
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: Get vector store
tags:
- VectorStore
put:
consumes:
- application/json
description: Update a vector store (name only). Engine type, connection config,
and index config are immutable. Env stores cannot be modified.
parameters:
- description: Vector store ID
in: path
name: id
required: true
type: string
- description: Updated fields
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateStoreRequest'
produces:
- application/json
responses:
"200":
description: Updated vector store
schema:
additionalProperties: true
type: object
"400":
description: Env store or validation error
schema:
additionalProperties: true
type: object
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
"404":
description: Vector store not found
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: Update vector store
tags:
- VectorStore
/vector-stores/{id}/test:
post:
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.
parameters:
- description: Vector store ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Connection test result (success, version)
schema:
additionalProperties: true
type: object
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
"404":
description: Vector store not found
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: Test vector store connection by ID
tags:
- VectorStore
/vector-stores/test:
post:
consumes:
- application/json
description: Test connectivity using provided credentials without persisting.
Returns detected server version.
parameters:
- description: Engine type and connection config
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.TestStoreRequest'
produces:
- application/json
responses:
"200":
description: Connection test result (success, version)
schema:
additionalProperties: true
type: object
"400":
description: Invalid request
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_errors.AppError'
"401":
description: Unauthorized
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: Test vector store connection with raw credentials
tags:
- VectorStore
/vector-stores/types:
get:
description: Return supported engine types with connection and index field schemas
for UI form generation
produces:
- application/json
responses:
"200":
description: List of engine types with config schemas
schema:
additionalProperties: true
type: object
summary: List vector store types
tags:
- VectorStore
/web-search-providers/{id}:
delete:
description: 删除指定 provider 配置
parameters:
- description: Provider ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 'success: true'
schema:
additionalProperties: true
type: object
"404":
description: Provider 不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 删除网络搜索 Provider
tags:
- 网络搜索
get:
description: 根据 ID 获取指定 provider 配置
parameters:
- description: Provider ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: Provider 详情
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity'
"404":
description: Provider 不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取网络搜索 Provider 详情
tags:
- 网络搜索
put:
consumes:
- application/json
description: 更新指定 provider 的名称/描述/参数/是否默认
parameters:
- description: Provider ID
in: path
name: id
required: true
type: string
- description: 更新字段
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.UpdateProviderRequest'
produces:
- application/json
responses:
"200":
description: 更新后的 Provider
schema:
$ref: '#/definitions/github_com_Tencent_WeKnora_internal_types.WebSearchProviderEntity'
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"404":
description: Provider 不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 更新网络搜索 Provider
tags:
- 网络搜索
/web-search-providers/{id}/test:
post:
description: 使用数据库中已保存的凭证测试连通性
parameters:
- description: Provider ID
in: path
name: id
required: true
type: string
produces:
- application/json
responses:
"200":
description: 测试结果
schema:
additionalProperties: true
type: object
"404":
description: Provider 不存在
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 测试已保存的 Provider
tags:
- 网络搜索
/web-search-providers/test:
post:
consumes:
- application/json
description: 使用前端表单中尚未保存的凭证测试连通性,用于"测试连接"按钮
parameters:
- description: '{provider, parameters}'
in: body
name: request
required: true
schema:
$ref: '#/definitions/internal_handler.TestProviderRequest'
produces:
- application/json
responses:
"200":
description: 测试结果
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 使用原始凭证测试 Provider(不落库)
tags:
- 网络搜索
/web-search-providers/types:
get:
description: 返回 UI 表单需要的 provider 类型及参数定义
produces:
- application/json
responses:
"200":
description: provider 类型列表
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取网络搜索 Provider 类型元数据
tags:
- 网络搜索
/web-search/providers:
get:
description: 返回所有已注册的网络搜索 provider(含元数据)
produces:
- application/json
responses:
"200":
description: provider 列表
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取可用网络搜索 Provider 列表
tags:
- 网络搜索
/wechat/qrcode:
post:
description: 申请一个用于扫码登录绑定的微信二维码(无请求体)
produces:
- application/json
responses:
"200":
description: 二维码信息(qrcode_url + qrcode 标识)
schema:
additionalProperties: true
type: object
"500":
description: 二维码生成失败
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 获取微信扫码登录二维码
tags:
- IM 渠道
/wechat/qrcode/status:
post:
consumes:
- application/json
description: 查询指定二维码是否已被扫描/确认/过期;confirmed 时返回凭证
parameters:
- description: '{qrcode: string}'
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 扫码状态
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
"500":
description: 服务器错误
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 轮询微信二维码状态
tags:
- IM 渠道
/weknoracloud/credentials:
post:
consumes:
- application/json
description: 保存 APPID/APPSECRET 到当前租户配置(不自动创建模型)
parameters:
- description: '{app_id, app_secret}'
in: body
name: request
required: true
schema:
additionalProperties: true
type: object
produces:
- application/json
responses:
"200":
description: 'success: true'
schema:
additionalProperties: true
type: object
"400":
description: 请求参数错误
schema:
additionalProperties: true
type: object
security:
- Bearer: []
- ApiKeyAuth: []
summary: 保存 WeKnoraCloud 凭证
tags:
- WeKnoraCloud
securityDefinitions:
ApiKeyAuth:
description: 租户身份认证:输入 sk- 开头的 API Key
in: header
name: X-API-Key
type: apiKey
Bearer:
description: 用户登录认证:输入 Bearer {token} 格式的 JWT 令牌
in: header
name: Authorization
type: apiKey
swagger: "2.0"