Skip to content

Commit

Permalink
feat: optimize model service apis
Browse files Browse the repository at this point in the history
Signed-off-by: bjwswang <[email protected]>
  • Loading branch information
bjwswang committed Dec 27, 2023
1 parent 9fafe44 commit a88b9ca
Show file tree
Hide file tree
Showing 7 changed files with 222 additions and 3 deletions.
164 changes: 164 additions & 0 deletions apiserver/graph/generated/generated.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions apiserver/graph/generated/models_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions apiserver/graph/impl/modelservice.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 22 additions & 0 deletions apiserver/graph/schema/modelservice.gql
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,28 @@ mutation deleteModelServices($input: DeleteCommonInput) {
}
}

query getModelService($name: String!, $namespace: String!, $apiType: String!) {
ModelService {
getModelService(name: $name, namespace: $namespace, apiType: $apiType) {
id
name
namespace
labels
annotations
creator
displayName
description
providerType
types
apiType
creationTimestamp
updateTimestamp
status
message
}
}
}

query listModelServices($input: ListModelService) {
ModelService {
listModelServices(input: $input) {
Expand Down
1 change: 1 addition & 0 deletions apiserver/graph/schema/modelservice.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ extend type Mutation {
}

type ModelServiceQuery {
getModelService(name: String!, namespace: String!): ModelService!
listModelServices(input: ListModelServiceInput): PaginatedResult!
checkModelService(input: CreateModelServiceInput!): ModelService!
}
Expand Down
26 changes: 23 additions & 3 deletions apiserver/pkg/modelservice/modelservice.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ import (
"github.com/kubeagi/arcadia/pkg/llms/zhipuai"
)

// CreateModelService based on input
// CreateModelService creates a 3rd_party model service
// If serviceType is llm,embedding,then a LLM and a Embedder will be created
// - Wrap all elements into *generated.ModelService
func CreateModelService(ctx context.Context, c dynamic.Interface, input generated.CreateModelServiceInput) (*generated.ModelService, error) {
Expand Down Expand Up @@ -98,7 +98,7 @@ func CreateModelService(ctx context.Context, c dynamic.Interface, input generate
return modelSerivce, nil
}

// UpdateModelService based on input
// UpdateModelService updates a 3rd_party model service
func UpdateModelService(ctx context.Context, c dynamic.Interface, input generated.UpdateModelServiceInput) (*generated.ModelService, error) {
name, namespace, displayName := "", "", ""
if input.Name != "" {
Expand Down Expand Up @@ -146,7 +146,7 @@ func UpdateModelService(ctx context.Context, c dynamic.Interface, input generate
return ds, nil
}

// DeleteModelService based on input
// DeleteModelService deletes a 3rd_party model service
func DeleteModelService(ctx context.Context, c dynamic.Interface, input *generated.DeleteCommonInput) (*string, error) {
_, err := embedder.DeleteEmbedders(ctx, c, input)
if err != nil {
Expand All @@ -159,6 +159,26 @@ func DeleteModelService(ctx context.Context, c dynamic.Interface, input *generat
return nil, nil
}

// GetModelService get a 3rd_party model service
func ReadModelService(ctx context.Context, c dynamic.Interface, name string, namespace string) (*generated.ModelService, error) {
var modelService = &generated.ModelService{}

llm, err := llm.ReadLLM(ctx, c, name, namespace)
if err == nil {
modelService = LLM2ModelService(llm)
}
embedder, err := embedder.ReadEmbedder(ctx, c, name, namespace)
if err == nil {
modelService = Embedder2ModelService(embedder)
}

if llm != nil && embedder != nil {
modelService.Types = &common.ModelTypeAll
}

return modelService, nil
}

// ListModelServices based on input
func ListModelServices(ctx context.Context, c dynamic.Interface, input *generated.ListModelServiceInput) (*generated.PaginatedResult, error) {
// use `UnlimitedPageSize` so we can get all llms and embeddings
Expand Down
2 changes: 2 additions & 0 deletions gqlgen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,8 @@ models:
resolver: true
ModelServiceQuery:
fields:
getModelService:
resolver: true
listModelServices:
resolver: true
checkModelService:
Expand Down

0 comments on commit a88b9ca

Please sign in to comment.