From 1117112225166992699efec5055b58122af2008d Mon Sep 17 00:00:00 2001 From: CalciumIon <1808837298@qq.com> Date: Thu, 27 Jun 2024 00:19:58 +0800 Subject: [PATCH] feat: first response time support aws --- relay/channel/aws/relay-aws.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/relay/channel/aws/relay-aws.go b/relay/channel/aws/relay-aws.go index 1438f10..125f6f2 100644 --- a/relay/channel/aws/relay-aws.go +++ b/relay/channel/aws/relay-aws.go @@ -14,6 +14,7 @@ import ( "one-api/relay/channel/claude" relaycommon "one-api/relay/common" "strings" + "time" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/credentials" @@ -156,6 +157,7 @@ func awsStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode i var usage relaymodel.Usage var id string var model string + isFirst := true createdTime := common.GetTimestamp() c.Stream(func(w io.Writer) bool { event, ok := <-stream.Events() @@ -166,6 +168,10 @@ func awsStreamHandler(c *gin.Context, info *relaycommon.RelayInfo, requestMode i switch v := event.(type) { case *types.ResponseStreamMemberChunk: + if isFirst { + isFirst = false + info.FirstResponseTime = time.Now() + } claudeResp := new(claude.ClaudeResponse) err := json.NewDecoder(bytes.NewReader(v.Value.Bytes)).Decode(claudeResp) if err != nil {