Skip to content

Commit

Permalink
feat: sync Claude options in frontend and backend (casibase#752)
Browse files Browse the repository at this point in the history
  • Loading branch information
TravisRoad authored Mar 5, 2024
1 parent 7f0b840 commit 3cdf809
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 24 deletions.
23 changes: 15 additions & 8 deletions model/claude.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,27 @@ func NewClaudeModelProvider(subType string, secretKey string) (*ClaudeModelProvi

func (p *ClaudeModelProvider) GetPricing() string {
return `URL:
https://www.anthropic.com/pricing
| Model family | Best for | Context window | Prompt Pricing | Completion Pricing |
|----------------|---------------------------------------------------------------------------------------|----------------|----------------------|-----------------------|
| Claude Instant | Low latency, high throughput use cases | 100,000 tokens | $0.80/million tokens | $2.40/million tokens |
| Claude 2.0 | Tasks that require complex reasoning | 100,000 tokens | $8.00/million tokens | $24.00/million tokens |
| Claude 2.1 | Same performance as Claude 2, plus significant reduction in model hallucination rates | 200,000 tokens | $8.00/million tokens | $24.00/million tokens |
https://docs.anthropic.com/claude/docs/models-overview#model-comparison
| Model family | Context window | Input Pricing | Output Pricing |
|----------------|----------------|-----------------------|-----------------------|
| Claude Instant | 100,000 tokens | $0.80/million tokens | $2.40/million tokens |
| Claude 2.0 | 100,000 tokens | $8.00/million tokens | $24.00/million tokens |
| Claude 2.1 | 200,000 tokens | $8.00/million tokens | $24.00/million tokens |
| Claude Haiku | 200,000 tokens | $0.25/million tokens | $1.25/million tokens |
| Claude Sonnet | 200,000 tokens | $3.00/million tokens | $15.00/million tokens |
| Claude Opus | 200,000 tokens | $15.00/million tokens | $75.00/million tokens |
`
}

func (p *ClaudeModelProvider) calculatePrice(modelResult *ModelResult) error {
var inputPricePerThousandTokens, outputPricePerThousandTokens float64
priceTable := map[string][]float64{
"claude-2": {0.008, 0.024},
"claude-instant-1.2": {0.0008, 0.0024},
"claude-2.0": {0.008, 0.024},
"claude-2.1": {0.008, 0.024},
"claude-3-sonnet-20240229": {0.003, 0.015},
"claude-3-opus-20240229": {0.015, 0.075},
}

if priceItem, ok := priceTable[p.subType]; ok {
Expand Down
23 changes: 7 additions & 16 deletions web/src/Setting.js
Original file line number Diff line number Diff line change
Expand Up @@ -757,22 +757,13 @@ export function getProviderSubTypeOptions(category, type) {
return [];
}
} else if (type === "Claude") {
return (
[
{id: "claude-2", name: "claude-2"},
{id: "claude-v1", name: "claude-v1"},
{id: "claude-v1-100k", name: "claude-v1-100k"},
{id: "claude-instant-v1", name: "claude-instant-v1"},
{id: "claude-instant-v1-100k", name: "claude-instant-v1-100k"},
{id: "claude-v1.3", name: "claude-v1.3"},
{id: "claude-v1.3-100k", name: "claude-v1.3-100k"},
{id: "claude-v1.2", name: "claude-v1.2"},
{id: "claude-v1.0", name: "claude-v1.0"},
{id: "claude-instant-v1.1", name: "claude-instant-v1.1"},
{id: "claude-instant-v1.1-100k", name: "claude-instant-v1.1-100k"},
{id: "claude-instant-v1.0", name: "claude-instant-v1.0"},
]
);
return [
{id: "claude-2.0", name: "claude-2.0"},
{id: "claude-2.1", name: "claude-2.1"},
{id: "claude-instant-1.2", name: "claude-instant-1.2"},
{id: "claude-3-sonnet-20240229", name: "claude-3-sonnet-20240229"},
{id: "claude-3-opus-20240229", name: "claude-3-opus-20240229"},
];
} else if (type === "OpenRouter") {
return (
[
Expand Down

0 comments on commit 3cdf809

Please sign in to comment.