Skip to content

Commit 4111304

Browse files
authored
Merge pull request #801 from sicoyle/feat-expose-convo-api-new-fields
feat(convo): add new fields to conversation api
2 parents 4422b48 + f60327a commit 4111304

File tree

4 files changed

+541
-60
lines changed

4 files changed

+541
-60
lines changed

client/conversation.go

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ import (
1818
"errors"
1919
"reflect"
2020

21-
"google.golang.org/protobuf/types/known/structpb"
22-
2321
"google.golang.org/protobuf/types/known/anypb"
22+
"google.golang.org/protobuf/types/known/durationpb"
23+
"google.golang.org/protobuf/types/known/structpb"
2424

2525
runtimev1pb "github.com/dapr/dapr/pkg/proto/runtime/v1"
2626
)
@@ -437,15 +437,17 @@ type ConversationMessageOfToolAlpha2 struct {
437437
}
438438

439439
type ConversationRequestAlpha2 struct {
440-
Name string // LLM component name
441-
ContextID *string
442-
Inputs []*ConversationInputAlpha2
443-
Parameters map[string]*anypb.Any
444-
Metadata map[string]string
445-
ScrubPII *bool // Scrub PII from the output
446-
Temperature *float64
447-
Tools []*ConversationToolsAlpha2
448-
ToolChoice *ToolChoiceAlpha2
440+
Name string // LLM component name
441+
ContextID *string
442+
Inputs []*ConversationInputAlpha2
443+
Parameters map[string]*anypb.Any
444+
Metadata map[string]string
445+
ScrubPII *bool
446+
Temperature *float64
447+
Tools []*ConversationToolsAlpha2
448+
ToolChoice *ToolChoiceAlpha2
449+
ResponseFormat *structpb.Struct
450+
PromptCacheRetention *durationpb.Duration
449451
}
450452

451453
type ConversationResponseAlpha2 struct {
@@ -455,6 +457,14 @@ type ConversationResponseAlpha2 struct {
455457

456458
type ConversationResultAlpha2 struct {
457459
Choices []*ConversationResultChoicesAlpha2
460+
Model *string
461+
Usage *ConversationResultAlpha2CompletionUsage
462+
}
463+
464+
type ConversationResultAlpha2CompletionUsage struct {
465+
CompletionTokens uint64
466+
PromptTokens uint64
467+
TotalTokens uint64
458468
}
459469

460470
type ConversationResultChoicesAlpha2 struct {
@@ -532,15 +542,17 @@ func (c *GRPCClient) ConverseAlpha2(ctx context.Context, request ConversationReq
532542
}
533543

534544
req := runtimev1pb.ConversationRequestAlpha2{
535-
Name: request.Name,
536-
ContextId: request.ContextID,
537-
Inputs: inputs,
538-
Parameters: request.Parameters,
539-
Metadata: request.Metadata,
540-
ScrubPii: request.ScrubPII,
541-
Temperature: request.Temperature,
542-
Tools: tools,
543-
ToolChoice: request.ToolChoice.toPtr(),
545+
Name: request.Name,
546+
ContextId: request.ContextID,
547+
Inputs: inputs,
548+
Parameters: request.Parameters,
549+
Metadata: request.Metadata,
550+
ScrubPii: request.ScrubPII,
551+
Temperature: request.Temperature,
552+
Tools: tools,
553+
ToolChoice: request.ToolChoice.toPtr(),
554+
ResponseFormat: request.ResponseFormat,
555+
PromptCacheRetention: request.PromptCacheRetention,
544556
}
545557

546558
resp, err := c.protoClient.ConverseAlpha2(ctx, &req)
@@ -572,8 +584,23 @@ func (c *GRPCClient) ConverseAlpha2(ctx context.Context, request ConversationReq
572584
},
573585
}
574586
}
587+
var usage *ConversationResultAlpha2CompletionUsage
588+
if u := o.GetUsage(); u != nil {
589+
usage = &ConversationResultAlpha2CompletionUsage{
590+
CompletionTokens: u.GetCompletionTokens(),
591+
PromptTokens: u.GetPromptTokens(),
592+
TotalTokens: u.GetTotalTokens(),
593+
}
594+
}
595+
var model *string
596+
if o.GetModel() != "" {
597+
m := o.GetModel()
598+
model = &m
599+
}
575600
outputs[i] = &ConversationResultAlpha2{
576601
Choices: choices,
602+
Model: model,
603+
Usage: usage,
577604
}
578605
}
579606

0 commit comments

Comments
 (0)