| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package controller
- import (
- "net/http/httptest"
- "testing"
- "github.com/QuantumNous/new-api/common"
- "github.com/QuantumNous/new-api/dto"
- "github.com/QuantumNous/new-api/pkg/billingexpr"
- relaycommon "github.com/QuantumNous/new-api/relay/common"
- "github.com/QuantumNous/new-api/types"
- "github.com/gin-gonic/gin"
- "github.com/stretchr/testify/require"
- )
- func TestSettleTestQuotaUsesTieredBilling(t *testing.T) {
- info := &relaycommon.RelayInfo{
- TieredBillingSnapshot: &billingexpr.BillingSnapshot{
- BillingMode: "tiered_expr",
- ExprString: `param("stream") == true ? tier("stream", p * 3) : tier("base", p * 2)`,
- ExprHash: billingexpr.ExprHashString(`param("stream") == true ? tier("stream", p * 3) : tier("base", p * 2)`),
- GroupRatio: 1,
- EstimatedTier: "stream",
- QuotaPerUnit: common.QuotaPerUnit,
- ExprVersion: 1,
- },
- BillingRequestInput: &billingexpr.RequestInput{
- Body: []byte(`{"stream":true}`),
- },
- }
- quota, result := settleTestQuota(info, types.PriceData{
- ModelRatio: 1,
- CompletionRatio: 2,
- }, &dto.Usage{
- PromptTokens: 1000,
- })
- require.Equal(t, 1500, quota)
- require.NotNil(t, result)
- require.Equal(t, "stream", result.MatchedTier)
- }
- func TestBuildTestLogOtherInjectsTieredInfo(t *testing.T) {
- gin.SetMode(gin.TestMode)
- ctx, _ := gin.CreateTestContext(httptest.NewRecorder())
- info := &relaycommon.RelayInfo{
- TieredBillingSnapshot: &billingexpr.BillingSnapshot{
- BillingMode: "tiered_expr",
- ExprString: `tier("base", p * 2)`,
- },
- ChannelMeta: &relaycommon.ChannelMeta{},
- }
- priceData := types.PriceData{
- GroupRatioInfo: types.GroupRatioInfo{GroupRatio: 1},
- }
- usage := &dto.Usage{
- PromptTokensDetails: dto.InputTokenDetails{
- CachedTokens: 12,
- },
- }
- other := buildTestLogOther(ctx, info, priceData, usage, &billingexpr.TieredResult{
- MatchedTier: "base",
- })
- require.Equal(t, "tiered_expr", other["billing_mode"])
- require.Equal(t, "base", other["matched_tier"])
- require.NotEmpty(t, other["expr_b64"])
- }
|