Preserve usage provider identity

This commit is contained in:
fawney19
2026-05-20 20:56:36 +08:00
parent c972bbd397
commit 57910f906d
21 changed files with 340 additions and 104 deletions
@@ -46,7 +46,7 @@
</TableRow>
<TableRow
v-for="provider in data"
:key="provider.provider"
:key="provider.providerKey ?? provider.providerId ?? provider.provider"
>
<TableCell class="font-medium py-2 px-2">
{{ provider.provider }}
@@ -129,6 +129,9 @@ describe('useUsageData', () => {
])
getUsageByProviderMock.mockResolvedValueOnce([
{
provider_id: 'provider-openai',
provider_key: 'provider-openai',
provider_identity_source: 'provider_id',
provider: 'OpenAI',
request_count: 3,
total_tokens: 300,
@@ -159,6 +162,11 @@ describe('useUsageData', () => {
})
expect(modelStats.value).toHaveLength(1)
expect(providerStats.value).toHaveLength(1)
expect(providerStats.value[0]).toMatchObject({
providerId: 'provider-openai',
providerKey: 'provider-openai',
providerIdentitySource: 'provider_id',
})
expect(apiFormatStats.value).toHaveLength(1)
expect(availableModels.value).toEqual(['gpt-5'])
expect(availableProviders.value).toEqual(['OpenAI'])
@@ -173,6 +173,9 @@ export function useUsageData(options: UseUsageDataOptions) {
const visibleProviderData = providerData.filter(item => isUsageProviderVisible(item.provider))
providerStats.value = visibleProviderData.map(item => ({
providerId: item.provider_id,
providerKey: item.provider_key,
providerIdentitySource: item.provider_identity_source,
provider: item.provider,
requests: item.request_count,
totalTokens: item.total_tokens || 0,
+3
View File
@@ -41,6 +41,9 @@ export interface EnhancedModelStatsItem extends ModelStatsItem {
// 提供商统计
export interface ProviderStatsItem {
providerId?: string | null
providerKey?: string
providerIdentitySource?: 'provider_id' | 'legacy_name'
provider: string
requests: number
totalTokens: number