From 57a34d79adf2470b72cb2eb4e92ff5f84c479ccd Mon Sep 17 00:00:00 2001 From: Gabe Susman Date: Sun, 22 Oct 2023 00:33:20 -0600 Subject: [PATCH] created additional makefiles to handle repository specific targets --- .gitmodules | 3 + Makefile.project | 0 Makefile.vars | 0 delphi-build-utils | 1 + internal/inference/inference.go | 1 + internal/inference/inference_test.go | 1 + internal/server/server.go | 1 + internal/server/server_test.go | 1 + internal/textgeneration/server.go | 8 +- main.go | 147 +++++++++++++++------------ 10 files changed, 93 insertions(+), 70 deletions(-) create mode 100644 .gitmodules create mode 100644 Makefile.project create mode 100644 Makefile.vars create mode 160000 delphi-build-utils create mode 100644 internal/inference/inference.go create mode 100644 internal/inference/inference_test.go create mode 100644 internal/server/server.go create mode 100644 internal/server/server_test.go diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..952ff4d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "delphi-build-utils"] + path = delphi-build-utils + url = https://github.com/Max-Gabriel-Susman/delphi-build-utils diff --git a/Makefile.project b/Makefile.project new file mode 100644 index 0000000..e69de29 diff --git a/Makefile.vars b/Makefile.vars new file mode 100644 index 0000000..e69de29 diff --git a/delphi-build-utils b/delphi-build-utils new file mode 160000 index 0000000..a325ac4 --- /dev/null +++ b/delphi-build-utils @@ -0,0 +1 @@ +Subproject commit a325ac4e18ecac70d53cb0ad7a108ee7537cc733 diff --git a/internal/inference/inference.go b/internal/inference/inference.go new file mode 100644 index 0000000..334f1a4 --- /dev/null +++ b/internal/inference/inference.go @@ -0,0 +1 @@ +package inference diff --git a/internal/inference/inference_test.go b/internal/inference/inference_test.go new file mode 100644 index 0000000..a344311 --- /dev/null +++ b/internal/inference/inference_test.go @@ -0,0 +1 @@ +package inference_test diff --git a/internal/server/server.go b/internal/server/server.go new file mode 100644 index 0000000..abb4e43 --- /dev/null +++ b/internal/server/server.go @@ -0,0 +1 @@ +package server diff --git a/internal/server/server_test.go b/internal/server/server_test.go new file mode 100644 index 0000000..5868720 --- /dev/null +++ b/internal/server/server_test.go @@ -0,0 +1 @@ +package server_test diff --git a/internal/textgeneration/server.go b/internal/textgeneration/server.go index fd4f421..760d36e 100644 --- a/internal/textgeneration/server.go +++ b/internal/textgeneration/server.go @@ -25,15 +25,15 @@ type Server interface { Decode(context.Context, *pb.HelloRequest) (*pb.HelloReply, error) } -type TextGenerationServer struct { - Server server -} - type server struct { pb.UnimplementedGreeterServer OpenAIClient *openai.Client } +type TextGenerationServer struct { + Server server +} + func NewTextGenerationServer(openaiClient *openai.Client) *TextGenerationServer { return &TextGenerationServer{ Server: server{ diff --git a/main.go b/main.go index 966c07c..9b99e93 100644 --- a/main.go +++ b/main.go @@ -13,14 +13,29 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/reflection" - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/ssm" - "github.com/Max-Gabriel-Susman/delphi-inferential-service/internal/clients/openai" tg "github.com/Max-Gabriel-Susman/delphi-inferential-service/internal/textgeneration" pb "github.com/Max-Gabriel-Susman/delphi-inferential-service/textgeneration" ) +/* + TODOs: + META: + * start a documentation direcory + * start implementing testing coverage + * work more on readme + * abstract what we can to delphi-go-kit (e.g. logging, tracing, etc.) + * determine what logging tracing solutions I want to use long term(probably just something within aws honestly) + * refactor rootlevel protobuf/grpc logic into corresponding + internal directories + * refactor main.go to cmd/delphi-x-service/main.go + * clean up Make targets and keep them up to date + * abstract build logic execution into submodule delphi build-utils + * we may want to drop the db directory, not sure if it really belongs in the + current iteration of this service anymore + MESA: +*/ + const ( exitCodeErr = 1 exitCodeInterrupt = 2 @@ -58,17 +73,17 @@ func run(ctx context.Context, _ []string) error { // return errors.Wrap(err, "could not create aws sdk config") // } - var cfg struct { - OpenAI struct { - APIKey string `env:""` - APIOrg string `` - } - } - if err := env.Parse(&cfg); err != nil { - return errors.Wrap(err, "parsing configuration") - } - // apiKey := os.Getenv("api-key") // we'll want to get from SSM later - // organization := os.Getenv("api-org") + // var cfg struct { + // OpenAI struct { + // APIKey string `env:""` + // APIOrg string `` + // } + // } + // if err := env.Parse(&cfg); err != nil { + // return errors.Wrap(err, "parsing configuration") + // } + apiKey := os.Getenv("api-key") // we'll want to get from SSM later + organization := os.Getenv("api-org") openaiClient := openai.NewClient(apiKey, organization) // Start GRPC Service @@ -96,60 +111,60 @@ func run(ctx context.Context, _ []string) error { return nil } -func Sessions() (*session.Session, error) { - sess, err := session.NewSession() - svc := session.Must(sess, err) - return svc, err -} - -func NewSSMClient() *SSM { - // Create AWS Session - sess, err := Sessions() - if err != nil { - log.Println(err) - return nil - } - ssmsvc := &SSM{ssm.New(sess)} - // Return SSM client - return ssmsvc -} - -type Param struct { - Name string - WithDecryption bool - ssmsvc *SSM -} +// func Sessions() (*session.Session, error) { +// sess, err := session.NewSession() +// svc := session.Must(sess, err) +// return svc, err +// } -//Param creates the struct for querying the param store -func (s *SSM) Param(name string, decryption bool) *Param { - return &Param{ - Name: name, - WithDecryption: decryption, - ssmsvc: s, - } -} +// func NewSSMClient() *SSM { +// // Create AWS Session +// sess, err := Sessions() +// if err != nil { +// log.Println(err) +// return nil +// } +// ssmsvc := &SSM{ssm.New(sess)} +// // Return SSM client +// return ssmsvc +// } -func (p *Param) GetValue() (string, error) { - ssmsvc := p.ssmsvc.client - parameter, err := ssmsvc.GetParameter(&ssm.GetParameterInput{ - Name: &p.Name, - WithDecryption: &p.WithDecryption, - }) - if err != nil { - return "", err - } - value := *parameter.Parameter.Value - return value, nil -} +// type Param struct { +// Name string +// WithDecryption bool +// ssmsvc *SSM +// } -// ssmsvc := NewSSMClient() -// apiKey, err := ssmsvc.Param("myparam", true).GetValue() -// if err != nil { -// log.Println(err) +// //Param creates the struct for querying the param store +// func (s *SSM) Param(name string, decryption bool) *Param { +// return &Param{ +// Name: name, +// WithDecryption: decryption, +// ssmsvc: s, +// } // } -// log.Println(apiKey) -// organization, err := ssmsvc.Param("myparam", true).GetValue() -// if err != nil { -// log.Println(err) + +// func (p *Param) GetValue() (string, error) { +// ssmsvc := p.ssmsvc.client +// parameter, err := ssmsvc.GetParameter(&ssm.GetParameterInput{ +// Name: &p.Name, +// WithDecryption: &p.WithDecryption, +// }) +// if err != nil { +// return "", err +// } +// value := *parameter.Parameter.Value +// return value, nil // } -// log.Println(organization) + +// // ssmsvc := NewSSMClient() +// // apiKey, err := ssmsvc.Param("myparam", true).GetValue() +// // if err != nil { +// // log.Println(err) +// // } +// // log.Println(apiKey) +// // organization, err := ssmsvc.Param("myparam", true).GetValue() +// // if err != nil { +// // log.Println(err) +// // } +// // log.Println(organization)