(log *zap.Logger, prod, private bool, r *EmbeddingResponse)
| 1043 | } |
| 1044 | |
| 1045 | func logEmbeddingResponse(log *zap.Logger, prod, private bool, r *EmbeddingResponse) { |
| 1046 | if prod { |
| 1047 | log.Info("openai embeddings response", |
| 1048 | zap.Time("createdAt", time.Now()), |
| 1049 | zap.Object("response", zapcore.ObjectMarshalerFunc( |
| 1050 | func(enc zapcore.ObjectEncoder) error { |
| 1051 | enc.AddString("object", r.Object) |
| 1052 | enc.AddString("model", r.Model) |
| 1053 | enc.AddArray("data", zapcore.ArrayMarshalerFunc( |
| 1054 | func(enc zapcore.ArrayEncoder) error { |
| 1055 | for _, d := range r.Data { |
| 1056 | enc.AppendObject(zapcore.ObjectMarshalerFunc( |
| 1057 | func(enc zapcore.ObjectEncoder) error { |
| 1058 | enc.AddInt("index", d.Index) |
| 1059 | enc.AddString("object", d.Object) |
| 1060 | if !private { |
| 1061 | enc.AddArray("embedding", zapcore.ArrayMarshalerFunc( |
| 1062 | func(enc zapcore.ArrayEncoder) error { |
| 1063 | for _, e := range d.Embedding { |
| 1064 | enc.AppendFloat32(e) |
| 1065 | } |
| 1066 | return nil |
| 1067 | })) |
| 1068 | } |
| 1069 | |
| 1070 | return nil |
| 1071 | }, |
| 1072 | )) |
| 1073 | } |
| 1074 | return nil |
| 1075 | }, |
| 1076 | )) |
| 1077 | |
| 1078 | enc.AddObject("usage", zapcore.ObjectMarshalerFunc( |
| 1079 | func(enc zapcore.ObjectEncoder) error { |
| 1080 | enc.AddInt("prompt_tokens", r.Usage.PromptTokens) |
| 1081 | enc.AddInt("completion_tokens", r.Usage.CompletionTokens) |
| 1082 | enc.AddInt("total_tokens", r.Usage.TotalTokens) |
| 1083 | return nil |
| 1084 | }, |
| 1085 | )) |
| 1086 | return nil |
| 1087 | }, |
| 1088 | )), |
| 1089 | ) |
| 1090 | } |
| 1091 | } |
| 1092 | |
| 1093 | func logBase64EmbeddingResponse(log *zap.Logger, prod, private bool, r *EmbeddingResponseBase64) { |
| 1094 | if prod { |
no test coverage detected