mirror of
https://github.com/AstrBotDevs/AstrBot
synced 2026-07-19 18:47:41 +08:00
fix: align knowledge base CRUD API contract with kb_name, canonical payload fields, and matching OpenAPI types (#9000)
Warning: Potential breaking changes in /kb related openapi. * fix(kb): align CRUD API contract end-to-end Unify knowledge base create/update/list with kb_name, canonical_payload, optional list pagination with total, and matching OpenAPI plus dashboard types. * fix: restore _model_dict references, add KnowledgeBaseCreateRequest, fix OpenAPI allOf validation - Replace 3 remaining _model_dict() calls with payload.model_dump(exclude_none=True) - Add KnowledgeBaseCreateRequest schema with required kb_name + embedding_provider_id - Remove additionalProperties: false from OpenAPI allOf sub-schema to avoid validation failures - Use Pydantic Field(alias="name") + populate_by_name=True for legacy name migration - Delegate _canonical_kb_payload to KnowledgeBaseRequest to eliminate duplicated logic - Add getattr default None for update_kb to prevent AttributeError - Add validation error tests: missing kb_name, missing embedding_provider_id * fix: address knowledge base contract follow-ups * fix: preserve knowledge base create error shape
This commit is contained in:
@@ -32,6 +32,8 @@ import {
|
||||
type DynamicConfig,
|
||||
type EnabledPatch,
|
||||
type GhproxyTestRequest,
|
||||
type KnowledgeBaseCreateRequest,
|
||||
type KnowledgeBaseRequest,
|
||||
type LoginRequest,
|
||||
type ListConversationsData,
|
||||
type McpServerConfig,
|
||||
@@ -1366,16 +1368,16 @@ export const knowledgeApi = {
|
||||
openApiV1.getKnowledgeBase({ path: { kb_id: kbId } }),
|
||||
);
|
||||
},
|
||||
create(config: OpenConfig) {
|
||||
create(config: KnowledgeBaseCreateRequest) {
|
||||
return typed<OpenConfig>(
|
||||
openApiV1.createKnowledgeBase({ body: config as any }),
|
||||
openApiV1.createKnowledgeBase({ body: config }),
|
||||
);
|
||||
},
|
||||
update(kbId: string, config: OpenConfig) {
|
||||
update(kbId: string, config: KnowledgeBaseRequest) {
|
||||
return typed<OpenConfig>(
|
||||
openApiV1.updateKnowledgeBase({
|
||||
path: { kb_id: kbId },
|
||||
body: config as any,
|
||||
body: config,
|
||||
}),
|
||||
);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user