MCPcopy
hub / github.com/OpenPipe/OpenPipe / getStats

Function getStats

app/src/server/api/routers/usage.router.ts:128–164  ·  view source on GitHub ↗
(
  baseQuery: SelectQueryBuilder<
    DB & {
      ul: UsageLog;
    },
    "ul",
    unknown
  >,
)

Source from the content-addressed store, hash-verified

126});
127
128export function getStats(
129 baseQuery: SelectQueryBuilder<
130 DB & {
131 ul: UsageLog;
132 },
133 "ul",
134 unknown
135 >,
136) {
137 return baseQuery
138 .select(({ fn }) => [
139 fn.sum(sql<number>`ul."cost"`).as("cost"),
140 fn
141 .sum(sql<number>`case when ul.type = 'TRAINING' then ul.cost else 0 end`)
142 .as("totalTrainingSpend"),
143 fn
144 .sum(sql<number>`case when ul.type != 'TRAINING' then ul.cost else 0 end`)
145 .as("totalInferenceSpend"),
146 fn
147 .sum(
148 sql<number>`case when ul.type != 'TRAINING' AND ul.type != 'CACHE_HIT' then ul."inputTokens" else 0 end`,
149 )
150 .as("totalInputTokens"),
151 fn
152 .sum(
153 sql<number>`case when ul.type != 'TRAINING' AND ul.type != 'CACHE_HIT' then ul."outputTokens" else 0 end`,
154 )
155 .as("totalOutputTokens"),
156 fn
157 .sum(
158 sql<number>`case when ul.type = 'TRAINING' then ul."inputTokens" + ul."outputTokens" else 0 end`,
159 )
160 .as("totalTrainingTokens"),
161 fn.count("ul.id").as("numQueries"),
162 ])
163 .executeTakeFirst();
164}

Callers 2

createInvoiceFunction · 0.90
usage.router.tsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected