Skip to content

Commit

Permalink
fix: add displayName in graphql TypedObjectReference
Browse files Browse the repository at this point in the history
Signed-off-by: bjwswang <bjwswang@gmail.com>
  • Loading branch information
bjwswang committed Jan 19, 2024
1 parent 349c5c6 commit e3ba122
Show file tree
Hide file tree
Showing 5 changed files with 121 additions and 22 deletions.
74 changes: 70 additions & 4 deletions apiserver/graph/generated/generated.go

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

9 changes: 5 additions & 4 deletions apiserver/graph/generated/models_gen.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/schema/entrypoint.graphqls
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ type TypedObjectReference {
apiGroup: String
kind: String!
name: String!
displayName: String
namespace: String
}

Expand Down
9 changes: 9 additions & 0 deletions apiserver/pkg/common/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,12 @@ func PagePosition(page, size, total int) (int, int) {
}
return start, end
}

func TypedObjectReferenceToInput(ref generated.TypedObjectReference) generated.TypedObjectReferenceInput {
return generated.TypedObjectReferenceInput{
APIGroup: ref.APIGroup,
Kind: ref.Kind,
Namespace: ref.Namespace,
Name: ref.Name,
}
}
50 changes: 36 additions & 14 deletions apiserver/pkg/knowledgebase/knowledgebase.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package knowledgebase

import (
"context"
"fmt"

metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
Expand All @@ -32,11 +33,13 @@ import (
"github.com/kubeagi/arcadia/pkg/utils"
)

func knowledgebase2modelConverter(obj *unstructured.Unstructured) (generated.PageNode, error) {
return knowledgebase2model(obj)
func knowledgebase2modelConverter(ctx context.Context, c dynamic.Interface) func(*unstructured.Unstructured) (generated.PageNode, error) {
return func(u *unstructured.Unstructured) (generated.PageNode, error) {
return knowledgebase2model(ctx, c, u)
}
}

func knowledgebase2model(obj *unstructured.Unstructured) (*generated.KnowledgeBase, error) {
func knowledgebase2model(ctx context.Context, c dynamic.Interface, obj *unstructured.Unstructured) (*generated.KnowledgeBase, error) {
knowledgebase := &v1alpha1.KnowledgeBase{}
if err := utils.UnstructuredToStructured(obj, knowledgebase); err != nil {
return nil, err
Expand Down Expand Up @@ -85,6 +88,25 @@ func knowledgebase2model(obj *unstructured.Unstructured) (*generated.KnowledgeBa
filegroupdetails = append(filegroupdetails, filegroupdetail)
}

embedder := generated.TypedObjectReference{
APIGroup: &apiversion,
Kind: knowledgebase.Spec.Embedder.Kind,
Name: knowledgebase.Spec.Embedder.Name,
Namespace: knowledgebase.Spec.Embedder.Namespace,
}
// read displayname
embedderUnstrctured, err := common.ResourceGet(ctx, c, common.TypedObjectReferenceToInput(embedder), metav1.GetOptions{})
if err != nil {
displayName := fmt.Sprintf("Unknow: %s", err.Error())

Check failure on line 100 in apiserver/pkg/knowledgebase/knowledgebase.go

View workflow job for this annotation

GitHub Actions / misspellings

Unknow ==> Unknown
embedder.DisplayName = &displayName
} else {
embedderResource := &v1alpha1.Embedder{}
if err := utils.UnstructuredToStructured(embedderUnstrctured, embedderResource); err != nil {
return nil, err
}
embedder.DisplayName = &embedderResource.Spec.DisplayName
}

md := generated.KnowledgeBase{
ID: &id,
Name: obj.GetName(),
Expand All @@ -97,12 +119,7 @@ func knowledgebase2model(obj *unstructured.Unstructured) (*generated.KnowledgeBa
CreationTimestamp: &creationtimestamp,
UpdateTimestamp: &condition.LastTransitionTime.Time,
// Embedder info
Embedder: &generated.TypedObjectReference{
APIGroup: &apiversion,
Kind: knowledgebase.Spec.Embedder.Kind,
Name: knowledgebase.Spec.Embedder.Name,
Namespace: knowledgebase.Spec.Embedder.Namespace,
},
Embedder: &embedder,
// Vector info
VectorStore: &generated.TypedObjectReference{
APIGroup: &apiversion,
Expand Down Expand Up @@ -154,7 +171,7 @@ func CreateKnowledgeBase(ctx context.Context, c dynamic.Interface, name, namespa
if err != nil {
return nil, err
}
kb, err := knowledgebase2model(obj)
kb, err := knowledgebase2model(ctx, c, obj)
if err != nil {
return nil, err
}
Expand All @@ -163,7 +180,12 @@ func CreateKnowledgeBase(ctx context.Context, c dynamic.Interface, name, namespa
details := make([]*generated.Filegroupdetail, len(filegroups))
for index, fg := range filegroups {
fgDetail := &generated.Filegroupdetail{
Source: (*generated.TypedObjectReference)(fg.Source),
Source: &generated.TypedObjectReference{
APIGroup: fg.Source.APIGroup,
Kind: fg.Source.Kind,
Name: fg.Source.Name,
Namespace: fg.Source.Namespace,
},
}
fileDetails := make([]*generated.Filedetail, len(fg.Paths))
for findex, path := range fg.Paths {
Expand Down Expand Up @@ -217,7 +239,7 @@ func UpdateKnowledgeBase(ctx context.Context, c dynamic.Interface, input *genera
return nil, err
}

return knowledgebase2model(updatedObject)
return knowledgebase2model(ctx, c, updatedObject)
}

func DeleteKnowledgeBase(ctx context.Context, c dynamic.Interface, name, namespace, labelSelector, fieldSelector string) (*string, error) {
Expand Down Expand Up @@ -245,7 +267,7 @@ func ReadKnowledgeBase(ctx context.Context, c dynamic.Interface, name, namespace
if err != nil {
return nil, err
}
return knowledgebase2model(u)
return knowledgebase2model(ctx, c, u)
}

func ListKnowledgeBases(ctx context.Context, c dynamic.Interface, input generated.ListKnowledgeBaseInput) (*generated.PaginatedResult, error) {
Expand Down Expand Up @@ -281,5 +303,5 @@ func ListKnowledgeBases(ctx context.Context, c dynamic.Interface, input generate
return nil, err
}

return common.ListReources(us, page, pageSize, knowledgebase2modelConverter, filter...)
return common.ListReources(us, page, pageSize, knowledgebase2modelConverter(ctx, c), filter...)
}

0 comments on commit e3ba122

Please sign in to comment.