(span: Span, response: typeof Generated.GenerateContentResponse.Type)
| 786 | } |
| 787 | |
| 788 | const annotateResponse = (span: Span, response: typeof Generated.GenerateContentResponse.Type): void => { |
| 789 | const finishReasons: Array<string> = [] |
| 790 | if (Predicate.isNotNullable(response.candidates)) { |
| 791 | for (const candidate of response.candidates) { |
| 792 | if (Predicate.isNotNullable(candidate.finishReason)) { |
| 793 | finishReasons.push(candidate.finishReason) |
| 794 | } |
| 795 | } |
| 796 | } |
| 797 | addGenAIAnnotations(span, { |
| 798 | response: { |
| 799 | model: response.modelVersion, |
| 800 | finishReasons: finishReasons.length > 0 ? finishReasons : undefined |
| 801 | }, |
| 802 | usage: { |
| 803 | inputTokens: response.usageMetadata?.promptTokenCount, |
| 804 | outputTokens: response.usageMetadata?.candidatesTokenCount |
| 805 | } |
| 806 | }) |
| 807 | } |
| 808 | |
| 809 | const annotateStreamResponse = (span: Span, part: Response.StreamPartEncoded): void => { |
| 810 | if (part.type === "response-metadata") { |
no outgoing calls
no test coverage detected