Skip to content

Commit

Permalink
feat(artifact): add kb related rpc & message (#345)
Browse files Browse the repository at this point in the history
Because

we need to provide the knowledge base api

This commit

define the knowledge base rpc and message

---------

Co-authored-by: droplet-bot <[email protected]>
  • Loading branch information
Yougigun and droplet-bot authored May 27, 2024
1 parent 87ef9c3 commit 85ef118
Show file tree
Hide file tree
Showing 3 changed files with 301 additions and 1 deletion.
81 changes: 81 additions & 0 deletions artifact/artifact/v1alpha/artifact.proto
Original file line number Diff line number Diff line change
Expand Up @@ -135,3 +135,84 @@ message CreateRepositoryTagResponse {
// The created tag.
RepositoryTag tag = 1;
}

// KnowledgeBase represents a knowledge base.
message KnowledgeBase {
// The knowledge base identifier.
string id = 1;
// The knowledge base name.
string name = 2;
// The knowledge base description.
string description = 3;
// The knowledge base tags.
repeated string tags = 4;
}

// CreateKnowledgeBaseRequest represents a request to create a knowledge base.
message CreateKnowledgeBaseRequest {
// The knowledge base name.
string name = 1;
// The knowledge base description.
string description = 2;
// The knowledge base tags.
repeated string tags = 3;
}

// CreateKnowledgeBaseResponse represents a response for creating a knowledge base.
message CreateKnowledgeBaseResponse {
// The created knowledge base.
KnowledgeBase body = 1;
// The error message.
string error_msg = 2;
// The status code.
int32 status_code = 3;
}

// GetKnowledgeBasesRequest represents a request to get all knowledge bases.
message GetKnowledgeBasesRequest {}

// GetKnowledgeBasesResponse represents a response for getting all knowledge bases.
message GetKnowledgeBasesResponse {
// The knowledge bases.
repeated KnowledgeBase knowledgebases = 1;
// The error message.
string error_msg = 2;
// The status code.
int32 status_code = 3;
}

// UpdateKnowledgeBaseRequest represents a request to update a knowledge base.
message UpdateKnowledgeBaseRequest {
// The knowledge base identifier.
string id = 1;
// The knowledge base name.
string name = 2;
// The knowledge base description.
string description = 3;
// The knowledge base tags.
repeated string tags = 4;
}

// UpdateKnowledgeBaseResponse represents a response for updating a knowledge base.
message UpdateKnowledgeBaseResponse {
// The updated knowledge base.
KnowledgeBase body = 1;
// The error message.
string error_msg = 2;
// The status code.
int32 status_code = 3;
}

// DeleteKnowledgeBaseRequest represents a request to delete a knowledge base.
message DeleteKnowledgeBaseRequest {
// The knowledge base identifier.
string id = 1;
}

// DeleteKnowledgeBaseResponse represents a response for deleting a knowledge base.
message DeleteKnowledgeBaseResponse {
// The error message.
string error_msg = 1;
// The status code.
int32 status_code = 2;
}
34 changes: 34 additions & 0 deletions artifact/artifact/v1alpha/artifact_public_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,38 @@ service ArtifactPublicService {
};
option (google.api.method_visibility).restriction = "INTERNAL";
}

// Create a knowledge base
rpc CreateKnowledgeBase(CreateKnowledgeBaseRequest) returns (CreateKnowledgeBaseResponse) {
option (google.api.http) = {
post: "/v1alpha/artifact/kb"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"};
}

// Get all knowledge bases info
rpc GetKnowledgeBases(GetKnowledgeBasesRequest) returns (GetKnowledgeBasesResponse) {
option (google.api.http) = {
get: "/v1alpha/artifact/kb"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"};
}

// Update a knowledge base info
rpc UpdateKnowledgeBase(UpdateKnowledgeBaseRequest) returns (UpdateKnowledgeBaseResponse) {
option (google.api.http) = {
put: "/v1alpha/artifact/kb"
body: "*"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"};
}

// Delete a knowledge base
rpc DeleteKnowledgeBase(DeleteKnowledgeBaseRequest) returns (DeleteKnowledgeBaseResponse) {
option (google.api.http) = {
delete: "/v1alpha/artifact/kb/{id}"
};
option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = {tags: "KnowledgeBase"};
}
}
187 changes: 186 additions & 1 deletion openapiv2/artifact/service.swagger.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,85 @@ consumes:
- application/json
produces:
- application/json
paths: {}
paths:
/v1alpha/artifact/kb:
get:
summary: Get all knowledge bases info
operationId: ArtifactPublicService_GetKnowledgeBases
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1alphaGetKnowledgeBasesResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
tags:
- KnowledgeBase
post:
summary: Create a knowledge base
operationId: ArtifactPublicService_CreateKnowledgeBase
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1alphaCreateKnowledgeBaseResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: CreateKnowledgeBaseRequest represents a request to create a knowledge base.
in: body
required: true
schema:
$ref: '#/definitions/v1alphaCreateKnowledgeBaseRequest'
tags:
- KnowledgeBase
put:
summary: Update a knowledge base info
operationId: ArtifactPublicService_UpdateKnowledgeBase
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1alphaUpdateKnowledgeBaseResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: body
description: UpdateKnowledgeBaseRequest represents a request to update a knowledge base.
in: body
required: true
schema:
$ref: '#/definitions/v1alphaUpdateKnowledgeBaseRequest'
tags:
- KnowledgeBase
/v1alpha/artifact/kb/{id}:
delete:
summary: Delete a knowledge base
operationId: ArtifactPublicService_DeleteKnowledgeBase
responses:
"200":
description: A successful response.
schema:
$ref: '#/definitions/v1alphaDeleteKnowledgeBaseResponse'
default:
description: An unexpected error response.
schema:
$ref: '#/definitions/rpcStatus'
parameters:
- name: id
description: The knowledge base identifier.
in: path
required: true
type: string
tags:
- KnowledgeBase
definitions:
protobufAny:
type: object
Expand All @@ -27,13 +105,88 @@ definitions:
items:
type: object
$ref: '#/definitions/protobufAny'
v1alphaCreateKnowledgeBaseRequest:
type: object
properties:
name:
type: string
description: The knowledge base name.
description:
type: string
description: The knowledge base description.
tags:
type: array
items:
type: string
description: The knowledge base tags.
description: CreateKnowledgeBaseRequest represents a request to create a knowledge base.
v1alphaCreateKnowledgeBaseResponse:
type: object
properties:
body:
$ref: '#/definitions/v1alphaKnowledgeBase'
description: The created knowledge base.
error_msg:
type: string
description: The error message.
status_code:
type: integer
format: int32
description: The status code.
description: CreateKnowledgeBaseResponse represents a response for creating a knowledge base.
v1alphaCreateRepositoryTagResponse:
type: object
properties:
tag:
$ref: '#/definitions/v1alphaRepositoryTag'
description: The created tag.
description: CreateRepositoryTagResponse contains the created tag.
v1alphaDeleteKnowledgeBaseResponse:
type: object
properties:
error_msg:
type: string
description: The error message.
status_code:
type: integer
format: int32
description: The status code.
description: DeleteKnowledgeBaseResponse represents a response for deleting a knowledge base.
v1alphaGetKnowledgeBasesResponse:
type: object
properties:
knowledgebases:
type: array
items:
type: object
$ref: '#/definitions/v1alphaKnowledgeBase'
description: The knowledge bases.
error_msg:
type: string
description: The error message.
status_code:
type: integer
format: int32
description: The status code.
description: GetKnowledgeBasesResponse represents a response for getting all knowledge bases.
v1alphaKnowledgeBase:
type: object
properties:
id:
type: string
description: The knowledge base identifier.
name:
type: string
description: The knowledge base name.
description:
type: string
description: The knowledge base description.
tags:
type: array
items:
type: string
description: The knowledge base tags.
description: KnowledgeBase represents a knowledge base.
v1alphaListRepositoryTagsResponse:
type: object
properties:
Expand Down Expand Up @@ -78,3 +231,35 @@ definitions:
description: |-
RepositoryTag contains information about the version of some content in a
repository.
v1alphaUpdateKnowledgeBaseRequest:
type: object
properties:
id:
type: string
description: The knowledge base identifier.
name:
type: string
description: The knowledge base name.
description:
type: string
description: The knowledge base description.
tags:
type: array
items:
type: string
description: The knowledge base tags.
description: UpdateKnowledgeBaseRequest represents a request to update a knowledge base.
v1alphaUpdateKnowledgeBaseResponse:
type: object
properties:
body:
$ref: '#/definitions/v1alphaKnowledgeBase'
description: The updated knowledge base.
error_msg:
type: string
description: The error message.
status_code:
type: integer
format: int32
description: The status code.
description: UpdateKnowledgeBaseResponse represents a response for updating a knowledge base.

0 comments on commit 85ef118

Please sign in to comment.