From 41c5c444f34a68c54acd46fdb0bb4e52825a9020 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Tue, 20 Aug 2024 09:22:07 +0200 Subject: [PATCH 01/28] Add openrouter support --- .env.example | 2 +- src/app/[...openai]/route.ts | 11 ++ src/app/configurations/page.tsx | 183 ++++++++++++++++++++++++++++++++ src/env.ts | 2 + 4 files changed, 197 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 85c59e3..3256e50 100644 --- a/.env.example +++ b/.env.example @@ -3,5 +3,5 @@ ANTHROPIC_API_KEY=your_anthropic_api_key_here COHERE_API_KEY=your_cohere_api_key_here MISTRAL_API_KEY=your_mistral_api_key_here GROQ_API_KEY=your_groq_api_key_here - +OPENROUTER_API_KEY= DATABASE_URL= diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 13c4e6c..b4dc9cf 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -49,6 +49,17 @@ async function getAIModelClient(provider: string, model: string) { return ollama("llama3.1"); case "google-vertex": throw new Error("Google Vertex AI is not currently supported"); + case "openrouter": { + const openrouterClient = createOpenAI({ + baseURL: "https://openrouter.ai/api/v1", + apiKey: env.OPENROUTER_API_KEY, + headers: { + "HTTP-Referer": "https://www.cursorlens.com", + "X-Title": "CursorLens", + }, + }); + return openrouterClient(model); + } default: throw new Error(`Unsupported provider: ${provider}`); } diff --git a/src/app/configurations/page.tsx b/src/app/configurations/page.tsx index 2cc28f0..9131b38 100644 --- a/src/app/configurations/page.tsx +++ b/src/app/configurations/page.tsx @@ -220,6 +220,189 @@ const providerModels = { "phi3:3.8b", "phi3:14b", ], + openrouter: [ + "01-ai/yi-large", + "01-ai/yi-large-fc", + "01-ai/yi-large-turbo", + "01-ai/yi-34b", + "01-ai/yi-34b-chat", + "01-ai/yi-6b", + "01-ai/yi-vision", + "aetherwiing/mn-starcannon-12b", + "ai21/jamba-instruct", + "allenai/olmo-7b-instruct", + "alpindale/goliath-120b", + "alpindale/magnum-72b", + "anthropic/claude-1", + "anthropic/claude-1.2", + "anthropic/claude-2", + "anthropic/claude-2:beta", + "anthropic/claude-2.0", + "anthropic/claude-2.0:beta", + "anthropic/claude-2.1", + "anthropic/claude-2.1:beta", + "anthropic/claude-3-haiku", + "anthropic/claude-3-haiku:beta", + "anthropic/claude-3-opus", + "anthropic/claude-3-opus:beta", + "anthropic/claude-3-sonnet", + "anthropic/claude-3.5-sonnet", + "anthropic/claude-3.5-sonnet:beta", + "anthropic/claude-3-sonnet:beta", + "anthropic/claude-instant-1", + "anthropic/claude-instant-1:beta", + "anthropic/claude-instant-1.0", + "anthropic/claude-instant-1.1", + "austism/chronos-hermes-13b", + "cohere/command", + "cohere/command-r", + "cohere/command-r-plus", + "cognitivecomputations/dolphin-llama-3-70b", + "cognitivecomputations/dolphin-mixtral-8x22b", + "cognitivecomputations/dolphin-mixtral-8x7b", + "databricks/dbrx-instruct", + "deepseek/deepseek-chat", + "deepseek/deepseek-coder", + "google/gemini-flash-1.5", + "google/gemini-pro", + "google/gemini-pro-1.5", + "google/gemini-pro-1.5-exp", + "google/gemini-pro-vision", + "google/gemma-2-27b-it", + "google/gemma-2-9b-it", + "google/gemma-2-9b-it:free", + "google/gemma-7b-it", + "google/gemma-7b-it:free", + "google/gemma-7b-it:nitro", + "google/palm-2-chat-bison", + "google/palm-2-chat-bison-32k", + "google/palm-2-codechat-bison", + "google/palm-2-codechat-bison-32k", + "gryphe/mythomist-7b", + "gryphe/mythomist-7b:free", + "gryphe/mythomax-l2-13b", + "huggingfaceh4/zephyr-7b-beta:free", + "jondurbin/airoboros-l2-70b", + "lizpreciatior/lzlv-70b-fp16-hf", + "lynn/soliloquy-l3", + "mancer/weaver", + "meta-llama/codellama-34b-instruct", + "meta-llama/codellama-70b-instruct", + "meta-llama/llama-3-70b", + "meta-llama/llama-3-70b-instruct", + "meta-llama/llama-3-70b-instruct:nitro", + "meta-llama/llama-3-8b", + "meta-llama/llama-3-8b-instruct", + "meta-llama/llama-3-8b-instruct:extended", + "meta-llama/llama-3-8b-instruct:free", + "meta-llama/llama-3-8b-instruct:nitro", + "meta-llama/llama-3.1-405b", + "meta-llama/llama-3.1-405b-instruct", + "meta-llama/llama-3.1-70b-instruct", + "meta-llama/llama-3.1-8b-instruct", + "meta-llama/llama-3.1-8b-instruct:free", + "meta-llama/llama-guard-2-8b", + "microsoft/phi-3-medium-128k-instruct", + "microsoft/phi-3-medium-128k-instruct:free", + "microsoft/phi-3-medium-4k-instruct", + "microsoft/phi-3-mini-128k-instruct", + "microsoft/phi-3-mini-128k-instruct:free", + "microsoft/wizardlm-2-7b", + "microsoft/wizardlm-2-8x22b", + "mistralai/codestral-mamba", + "mistralai/mistral-7b-instruct", + "mistralai/mistral-7b-instruct:free", + "mistralai/mistral-7b-instruct:nitro", + "mistralai/mistral-7b-instruct-v0.1", + "mistralai/mistral-7b-instruct-v0.2", + "mistralai/mistral-7b-instruct-v0.3", + "mistralai/mistral-large", + "mistralai/mistral-medium", + "mistralai/mistral-nemo", + "mistralai/mistral-small", + "mistralai/mistral-tiny", + "mistralai/mixtral-8x22b", + "mistralai/mixtral-8x22b-instruct", + "mistralai/mixtral-8x7b", + "mistralai/mixtral-8x7b-instruct", + "mistralai/mixtral-8x7b-instruct:nitro", + "neversleep/llama-3-lumimaid-70b", + "neversleep/llama-3-lumimaid-8b", + "neversleep/llama-3-lumimaid-8b:extended", + "neversleep/noromaid-20b", + "nousresearch/hermes-2-pro-llama-3-8b", + "nousresearch/hermes-2-theta-llama-3-8b", + "nousresearch/hermes-3-llama-3.1-405b", + "nousresearch/hermes-3-llama-3.1-405b:extended", + "nousresearch/nous-capybara-7b", + "nousresearch/nous-capybara-7b:free", + "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", + "nousresearch/nous-hermes-2-mixtral-8x7b-sft", + "nousresearch/nous-hermes-2-mistral-7b-dpo", + "nousresearch/nous-hermes-llama2-13b", + "nousresearch/nous-hermes-yi-34b", + "nothingiisreal/mn-celeste-12b", + "open-orca/mistral-7b-openorca", + "openchat/openchat-7b", + "openchat/openchat-7b:free", + "openchat/openchat-8b", + "openai/gpt-3.5-turbo-0613", + "openai/gpt-3.5-turbo-16k", + "openai/gpt-3.5-turbo-instruct", + "openai/gpt-4-32k", + "openai/gpt-4-32k-0314", + "openai/gpt-4-turbo", + "openai/gpt-4-turbo-preview", + "openai/gpt-4-vision-preview", + "openai/gpt-4o", + "openai/gpt-4o:extended", + "openai/gpt-4o-2024-05-13", + "openai/gpt-4o-2024-08-06", + "openai/gpt-4o-latest", + "openai/gpt-4o-mini", + "openai/gpt-4o-mini-2024-07-18", + "openrouter/auto", + "openrouter/flavor-of-the-week", + "perplexity/llama-3-sonar-large-32k-chat", + "perplexity/llama-3-sonar-large-32k-online", + "perplexity/llama-3-sonar-small-32k-chat", + "perplexity/llama-3-sonar-small-32k-online", + "perplexity/llama-3.1-sonar-huge-128k-online", + "perplexity/llama-3.1-sonar-large-128k-chat", + "perplexity/llama-3.1-sonar-large-128k-online", + "perplexity/llama-3.1-sonar-small-128k-chat", + "perplexity/llama-3.1-sonar-small-128k-online", + "phind/phind-codellama-34b", + "pygmalionai/mythalion-13b", + "qwen/qwen-110b-chat", + "qwen/qwen-14b-chat", + "qwen/qwen-2-72b-instruct", + "qwen/qwen-2-7b-instruct", + "qwen/qwen-2-7b-instruct:free", + "qwen/qwen-32b-chat", + "qwen/qwen-4b-chat", + "qwen/qwen-72b-chat", + "qwen/qwen-7b-chat", + "recursal/eagle-7b", + "recursal/rwkv-5-3b-ai-town", + "rwkv/rwkv-5-world-3b", + "sao10k/fimbulvetr-11b-v2", + "sao10k/l3-euryale-70b", + "sao10k/l3-lunaris-8b", + "sao10k/l3-stheno-8b", + "snowflake/snowflake-arctic-instruct", + "sophosympatheia/midnight-rose-70b", + "teknium/openhermes-2-mistral-7b", + "teknium/openhermes-2.5-mistral-7b", + "togethercomputer/stripedhyena-hessian-7b", + "togethercomputer/stripedhyena-nous-7b", + "undi95/remm-slerp-l2-13b", + "undi95/remm-slerp-l2-13b:extended", + "undi95/toppy-m-7b", + "undi95/toppy-m-7b:free", + "undi95/toppy-m-7b:nitro", + "xwin-lm/xwin-lm-70b", + ], other: ["Other"], }; diff --git a/src/env.ts b/src/env.ts index aea06e3..b78cd44 100644 --- a/src/env.ts +++ b/src/env.ts @@ -16,6 +16,7 @@ export const env = createEnv({ COHERE_API_KEY: z.string().optional(), MISTRAL_API_KEY: z.string().optional(), GROQ_API_KEY: z.string().optional(), + OPENROUTER_API_KEY: z.string().optional(), }, /** @@ -39,6 +40,7 @@ export const env = createEnv({ COHERE_API_KEY: process.env.COHERE_API_KEY, MISTRAL_API_KEY: process.env.MISTRAL_API_KEY, GROQ_API_KEY: process.env.GROQ_API_KEY, + OPENROUTER_API_KEY: process.env.OPENROUTER_API_KEY, // NEXT_PUBLIC_CLIENTVAR: process.env.NEXT_PUBLIC_CLIENTVAR, }, /** From 9255c8be1de3da7de9f83e5ae8ed322af340c38c Mon Sep 17 00:00:00 2001 From: Stephen Rayner Date: Sun, 18 Aug 2024 17:58:59 +0100 Subject: [PATCH 02/28] feat: cost configuration and calculations for stats page --- src/app/actions.ts | 260 ++++++++++++++++++++++++++++++++++------- src/app/stats/page.tsx | 48 ++++---- 2 files changed, 248 insertions(+), 60 deletions(-) diff --git a/src/app/actions.ts b/src/app/actions.ts index 2f17d91..df405c5 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -1,7 +1,7 @@ "use server"; import prisma from "@/lib/prisma"; -import { Log, AIConfiguration } from "@prisma/client"; +import type { Log, AIConfiguration, Prisma } from "@prisma/client"; // Helper function to serialize dates function serializeDates(obj: T): T { @@ -26,40 +26,34 @@ export async function getLogs({ endDate = "", }: { provider?: string; startDate?: string; endDate?: string } = {}) { try { - let query: any = { + const query: Prisma.LogFindManyArgs = { orderBy: { timestamp: "desc", }, }; + const whereConditions: Prisma.LogWhereInput = {}; + if (provider !== "all") { - query.where = { - ...query.where, - metadata: { - path: ["provider"], - equals: provider, - }, + whereConditions.metadata = { + path: ["provider"], + equals: provider, }; } - if (startDate) { - query.where = { - ...query.where, - timestamp: { - ...query.where?.timestamp, - gte: new Date(startDate), - }, - }; + if (startDate || endDate) { + whereConditions.timestamp = {}; + if (startDate) { + whereConditions.timestamp.gte = new Date(startDate); + } + if (endDate) { + whereConditions.timestamp.lte = new Date(endDate); + } } - if (endDate) { - query.where = { - ...query.where, - timestamp: { - ...query.where?.timestamp, - lte: new Date(endDate), - }, - }; + // Only add the where clause if we have conditions + if (Object.keys(whereConditions).length > 0) { + query.where = whereConditions; } const logs = await prisma.log.findMany(query); @@ -75,18 +69,24 @@ export async function getLogs({ } } -export async function getStats(timeFilter: string = "all"): Promise<{ +export async function getStats(timeFilter = "all"): Promise<{ totalLogs: number; totalTokens: number; + totalPromptTokens: number; + totalCompletionTokens: number; perModelStats: { [key: string]: { logs: number; tokens: number; + promptTokens: number; + completionTokens: number; }; }; tokenUsageOverTime: { date: string; tokens: number; + promptTokens: number; + completionTokens: number; }[]; }> { let startDate = new Date(0); // Default to all time @@ -118,25 +118,45 @@ export async function getStats(timeFilter: string = "all"): Promise<{ [key: string]: { logs: number; tokens: number; + promptTokens: number; + completionTokens: number; }; } = {}; let totalTokens = 0; - const tokenUsageOverTime: { date: string; tokens: number }[] = []; + let totalPromptTokens = 0; + let totalCompletionTokens = 0; + const tokenUsageOverTime: { + date: string; + tokens: number; + promptTokens: number; + completionTokens: number; + }[] = []; - logs.forEach((log) => { - const metadata = log.metadata as any; - const model = metadata.model || "unknown"; + for (const log of logs) { + const metadata = log.metadata as Record; + const model = (metadata.model as string) || "unknown"; if (!perModelStats[model]) { - perModelStats[model] = { logs: 0, tokens: 0 }; + perModelStats[model] = { + logs: 0, + tokens: 0, + promptTokens: 0, + completionTokens: 0, + }; } perModelStats[model].logs += 1; try { const responseObj = JSON.parse(log.response); const tokens = responseObj.usage?.totalTokens || 0; + const promptTokens = responseObj.usage?.promptTokens || 0; + const completionTokens = responseObj.usage?.completionTokens || 0; perModelStats[model].tokens += tokens; + perModelStats[model].promptTokens += promptTokens; + perModelStats[model].completionTokens += completionTokens; totalTokens += tokens; + totalPromptTokens += promptTokens; + totalCompletionTokens += completionTokens; const date = log.timestamp.toISOString().split("T")[0]; const existingEntry = tokenUsageOverTime.find( @@ -144,17 +164,26 @@ export async function getStats(timeFilter: string = "all"): Promise<{ ); if (existingEntry) { existingEntry.tokens += tokens; + existingEntry.promptTokens += promptTokens; + existingEntry.completionTokens += completionTokens; } else { - tokenUsageOverTime.push({ date, tokens }); + tokenUsageOverTime.push({ + date, + tokens, + promptTokens, + completionTokens, + }); } } catch (error) { console.error("Error parsing log response:", error); } - }); + } return { totalLogs: logs.length, totalTokens, + totalPromptTokens, + totalCompletionTokens, perModelStats, tokenUsageOverTime, }; @@ -207,14 +236,165 @@ export async function deleteConfiguration(id: string): Promise { }); } -export async function getConfigurationCosts(): Promise< - { provider: string; model: string; cost: number }[] -> { - // This is a placeholder function. In a real-world scenario, you would - // fetch this data from an API or database containing up-to-date pricing information. +type ConfigurationCost = { + provider: string; + model: string; + inputTokenCost: number; + outputTokenCost: number; +}; + +export async function getConfigurationCosts(): Promise { + // TODO: (Stephen) When the prices change we need to factor in the valid from until date ranges return [ - { provider: "openai", model: "gpt-3.5-turbo", cost: 0.002 }, - { provider: "openai", model: "gpt-4", cost: 0.03 }, - { provider: "anthropic", model: "claude-2", cost: 0.01 }, + { + provider: "openai", + model: "gpt-4o", + inputTokenCost: 0.000005, + outputTokenCost: 0.000015, + }, + { + provider: "openai", + model: "gpt-4o-2024-08-06", + inputTokenCost: 0.0000025, + outputTokenCost: 0.00001, + }, + { + provider: "openai", + model: "gpt-4o-mini", + inputTokenCost: 0.00000015, + outputTokenCost: 0.0000006, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-0125", + inputTokenCost: 0.0000005, + outputTokenCost: 0.0000015, + }, + { + provider: "openai", + model: "chatgpt-4o-latest", + inputTokenCost: 0.000005, + outputTokenCost: 0.000015, + }, + { + provider: "openai", + model: "gpt-4-turbo", + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + }, + { + provider: "openai", + model: "gpt-4-turbo-2024-04-09", + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + }, + { + provider: "openai", + model: "gpt-4", + inputTokenCost: 0.00003, + outputTokenCost: 0.00006, + }, + { + provider: "openai", + model: "gpt-4-32k", + inputTokenCost: 0.00006, + outputTokenCost: 0.00012, + }, + { + provider: "openai", + model: "gpt-4-0125-preview", + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + }, + { + provider: "openai", + model: "gpt-4-1106-preview", + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + }, + { + provider: "openai", + model: "gpt-4-vision-preview", + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-instruct", + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-1106", + inputTokenCost: 0.000001, + outputTokenCost: 0.000002, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-0613", + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-16k-0613", + inputTokenCost: 0.000003, + outputTokenCost: 0.000004, + }, + { + provider: "openai", + model: "gpt-3.5-turbo-0301", + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + }, + { + provider: "openai", + model: "davinci-002", + inputTokenCost: 0.000002, + outputTokenCost: 0.000002, + }, + { + provider: "openai", + model: "babbage-002", + inputTokenCost: 0.0000004, + outputTokenCost: 0.0000004, + }, + { + provider: "anthropic", + model: "claude-3-5-sonnet", + inputTokenCost: 0.000003, + outputTokenCost: 0.000015, + }, + { + provider: "anthropic", + model: "claude-3-opus", + inputTokenCost: 0.000015, + outputTokenCost: 0.000075, + }, + { + provider: "anthropic", + model: "claude-3-haiku", + inputTokenCost: 0.00000025, + outputTokenCost: 0.00000125, + }, + { + provider: "anthropic", + model: "claude-2-1", + inputTokenCost: 0.000008, + outputTokenCost: 0.000024, + }, + { + provider: "anthropic", + model: "claude-2-0", + inputTokenCost: 0.000008, + outputTokenCost: 0.000024, + }, + { + provider: "anthropic", + model: "claude-instant", + inputTokenCost: 0.0000008, + outputTokenCost: 0.0000024, + }, ]; } diff --git a/src/app/stats/page.tsx b/src/app/stats/page.tsx index 3a8eac0..0108eeb 100644 --- a/src/app/stats/page.tsx +++ b/src/app/stats/page.tsx @@ -3,7 +3,7 @@ import { useState, useEffect } from "react"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; import { getStats, getConfigurations, getConfigurationCosts } from "../actions"; -import { AIConfiguration } from "@prisma/client"; +import type { AIConfiguration } from "@prisma/client"; import { BarChart, Bar, @@ -40,6 +40,8 @@ interface Stats { [key: string]: { logs: number; tokens: number; + promptTokens: number; + completionTokens: number; cost: number; }; }; @@ -80,24 +82,30 @@ export default function StatsPage() { ]); const perModelStats: Stats["perModelStats"] = {}; - configData.forEach((config) => { + for (const config of configData) { perModelStats[config.model] = { logs: 0, tokens: 0, + promptTokens: 0, + completionTokens: 0, cost: 0, }; - }); + } + + for (const [model, modelStats] of Object.entries( + statsData.perModelStats, + )) { + const costData = costsData.find((c) => c.model === model); + const inputTokenCost = costData?.inputTokenCost || 0; + const outputTokenCost = costData?.outputTokenCost || 0; - Object.entries(statsData.perModelStats).forEach( - ([model, modelStats]) => { - perModelStats[model] = { - ...modelStats, - cost: - modelStats.tokens * - (costsData.find((c) => c.model === model)?.cost || 0), - }; - }, - ); + perModelStats[model] = { + ...modelStats, + cost: + modelStats.promptTokens * inputTokenCost + + modelStats.completionTokens * outputTokenCost, + }; + } setStats({ totalLogs: statsData.totalLogs, @@ -121,8 +129,8 @@ export default function StatsPage() {
- {[...Array(3)].map((_, i) => ( - + {["card1", "card2", "card3"].map((key) => ( + @@ -132,8 +140,8 @@ export default function StatsPage() { ))}
- {[...Array(3)].map((_, i) => ( - + {["card1", "card2", "card3"].map((key) => ( + @@ -331,10 +339,10 @@ export default function StatsPage() { `${name} ${(percent * 100).toFixed(0)}%` } > - {pieChartData.map((entry, index) => ( + {pieChartData.map((entry) => ( ))} From 185c9d50830613150c2a99b64db5bfc37ed037a2 Mon Sep 17 00:00:00 2001 From: Stephen Rayner Date: Tue, 20 Aug 2024 08:36:36 +0100 Subject: [PATCH 03/28] chore: refactor model config into a single object --- src/app/actions.ts | 172 ++--------- src/app/configurations/page.tsx | 532 ++++++++------------------------ src/lib/model-config.ts | 307 ++++++++++++++++++ 3 files changed, 453 insertions(+), 558 deletions(-) create mode 100644 src/lib/model-config.ts diff --git a/src/app/actions.ts b/src/app/actions.ts index df405c5..36ab73d 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -1,5 +1,6 @@ "use server"; +import { getModelConfigurations } from "@/lib/model-config"; import prisma from "@/lib/prisma"; import type { Log, AIConfiguration, Prisma } from "@prisma/client"; @@ -244,157 +245,22 @@ type ConfigurationCost = { }; export async function getConfigurationCosts(): Promise { - // TODO: (Stephen) When the prices change we need to factor in the valid from until date ranges - return [ - { - provider: "openai", - model: "gpt-4o", - inputTokenCost: 0.000005, - outputTokenCost: 0.000015, - }, - { - provider: "openai", - model: "gpt-4o-2024-08-06", - inputTokenCost: 0.0000025, - outputTokenCost: 0.00001, - }, - { - provider: "openai", - model: "gpt-4o-mini", - inputTokenCost: 0.00000015, - outputTokenCost: 0.0000006, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-0125", - inputTokenCost: 0.0000005, - outputTokenCost: 0.0000015, - }, - { - provider: "openai", - model: "chatgpt-4o-latest", - inputTokenCost: 0.000005, - outputTokenCost: 0.000015, - }, - { - provider: "openai", - model: "gpt-4-turbo", - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, - }, - { - provider: "openai", - model: "gpt-4-turbo-2024-04-09", - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, - }, - { - provider: "openai", - model: "gpt-4", - inputTokenCost: 0.00003, - outputTokenCost: 0.00006, - }, - { - provider: "openai", - model: "gpt-4-32k", - inputTokenCost: 0.00006, - outputTokenCost: 0.00012, - }, - { - provider: "openai", - model: "gpt-4-0125-preview", - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, - }, - { - provider: "openai", - model: "gpt-4-1106-preview", - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, - }, - { - provider: "openai", - model: "gpt-4-vision-preview", - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-instruct", - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-1106", - inputTokenCost: 0.000001, - outputTokenCost: 0.000002, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-0613", - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-16k-0613", - inputTokenCost: 0.000003, - outputTokenCost: 0.000004, - }, - { - provider: "openai", - model: "gpt-3.5-turbo-0301", - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, - }, - { - provider: "openai", - model: "davinci-002", - inputTokenCost: 0.000002, - outputTokenCost: 0.000002, - }, - { - provider: "openai", - model: "babbage-002", - inputTokenCost: 0.0000004, - outputTokenCost: 0.0000004, - }, - { - provider: "anthropic", - model: "claude-3-5-sonnet", - inputTokenCost: 0.000003, - outputTokenCost: 0.000015, - }, - { - provider: "anthropic", - model: "claude-3-opus", - inputTokenCost: 0.000015, - outputTokenCost: 0.000075, - }, - { - provider: "anthropic", - model: "claude-3-haiku", - inputTokenCost: 0.00000025, - outputTokenCost: 0.00000125, - }, - { - provider: "anthropic", - model: "claude-2-1", - inputTokenCost: 0.000008, - outputTokenCost: 0.000024, - }, - { - provider: "anthropic", - model: "claude-2-0", - inputTokenCost: 0.000008, - outputTokenCost: 0.000024, - }, - { - provider: "anthropic", - model: "claude-instant", - inputTokenCost: 0.0000008, - outputTokenCost: 0.0000024, - }, - ]; + const modelConfigurations = getModelConfigurations(); + return Object.entries(modelConfigurations).flatMap(([provider, models]) => + Object.entries(models) + .filter( + (entry): entry is [string, NonNullable<(typeof entry)[1]>] => + entry[1] !== null && + "inputTokenCost" in entry[1] && + "outputTokenCost" in entry[1], + ) + .map(([model, config]) => ({ + provider, + model, + inputTokenCost: config.inputTokenCost, + outputTokenCost: config.outputTokenCost, + })), + ); } + +export { getModelConfigurations }; diff --git a/src/app/configurations/page.tsx b/src/app/configurations/page.tsx index 9131b38..12440a9 100644 --- a/src/app/configurations/page.tsx +++ b/src/app/configurations/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState, useEffect, useMemo } from "react"; +import { useState, useEffect, useMemo, useCallback } from "react"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; @@ -34,6 +34,10 @@ import { updateDefaultConfiguration, createConfiguration, } from "../actions"; +import { + getModelConfigurations, + type ModelConfigurations, +} from "@/lib/model-config"; interface AIConfiguration { id: string; @@ -51,361 +55,6 @@ interface AIConfiguration { apiKey: string | null; } -const configTemplates = [ - { - name: "OpenAI GPT-4", - provider: "openai", - model: "gpt-4-turbo", - temperature: 0.7, - maxTokens: 8192, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "OpenAI GPT-4 Optimized", - provider: "openai", - model: "gpt-4o", - temperature: 0.7, - maxTokens: 8192, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "OpenAI GPT-4 Mini", - provider: "openai", - model: "gpt-4o-mini", - temperature: 0.7, - maxTokens: 4096, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Anthropic Claude 3.5 Sonnet", - provider: "anthropic", - model: "claude-3-5-sonnet-20240620", - temperature: 0.7, - maxTokens: 200000, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Mistral Large", - provider: "mistral", - model: "mistral-large-latest", - temperature: 0.7, - maxTokens: 32768, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Groq LLaMA 3.1", - provider: "groq", - model: "llama-3.1-70b-versatile", - temperature: 0.7, - maxTokens: 32768, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, -]; - -const providerModels = { - openai: ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo"], - anthropic: [ - "claude-3-5-sonnet-20240620", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - ], - cohere: ["command-r", "command-r-plus"], - mistral: [ - "mistral-large-latest", - "mistral-medium-latest", - "mistral-small-latest", - "open-mistral-nemo", - "open-mixtral-8x22b", - "open-mixtral-8x7b", - "open-mistral-7b", - ], - groq: [ - "llama-3.1-405b-reasoning", - "llama-3.1-70b-versatile", - "llama-3.1-8b-instant", - "mixtral-8x7b-32768", - "gemma2-9b-it", - ], - ollama: [ - "llama3.1", - "codegemma", - "codegemma:2b", - "codegemma:7b", - "codellama", - "codellama:7b", - "codellama:13b", - "codellama:34b", - "codellama:70b", - "codellama:code", - "codellama:python", - "command-r", - "command-r:35b", - "command-r-plus", - "command-r-plus:104b", - "deepseek-coder-v2", - "deepseek-coder-v2:16b", - "deepseek-coder-v2:236b", - "falcon2", - "falcon2:11b", - "gemma", - "gemma:2b", - "gemma:7b", - "gemma2", - "gemma2:2b", - "gemma2:9b", - "gemma2:27b", - "llama2", - "llama2:7b", - "llama2:13b", - "llama2:70b", - "llama3", - "llama3:8b", - "llama3:70b", - "llama3-chatqa", - "llama3-chatqa:8b", - "llama3-chatqa:70b", - "llama3-gradient", - "llama3-gradient:8b", - "llama3-gradient:70b", - "llama3.1", - "llama3.1:8b", - "llama3.1:70b", - "llama3.1:405b", - "llava", - "llava:7b", - "llava:13b", - "llava:34b", - "llava-llama3", - "llava-llama3:8b", - "llava-phi3", - "llava-phi3:3.8b", - "mistral", - "mistral:7b", - "mistral-large", - "mistral-large:123b", - "mistral-nemo", - "mistral-nemo:12b", - "mixtral", - "mixtral:8x7b", - "mixtral:8x22b", - "moondream", - "moondream:1.8b", - "openhermes", - "openhermes:v2.5", - "qwen", - "qwen:7b", - "qwen:14b", - "qwen:32b", - "qwen:72b", - "qwen:110b", - "qwen2", - "qwen2:0.5b", - "qwen2:1.5b", - "qwen2:7b", - "qwen2:72b", - "phi3", - "phi3:3.8b", - "phi3:14b", - ], - openrouter: [ - "01-ai/yi-large", - "01-ai/yi-large-fc", - "01-ai/yi-large-turbo", - "01-ai/yi-34b", - "01-ai/yi-34b-chat", - "01-ai/yi-6b", - "01-ai/yi-vision", - "aetherwiing/mn-starcannon-12b", - "ai21/jamba-instruct", - "allenai/olmo-7b-instruct", - "alpindale/goliath-120b", - "alpindale/magnum-72b", - "anthropic/claude-1", - "anthropic/claude-1.2", - "anthropic/claude-2", - "anthropic/claude-2:beta", - "anthropic/claude-2.0", - "anthropic/claude-2.0:beta", - "anthropic/claude-2.1", - "anthropic/claude-2.1:beta", - "anthropic/claude-3-haiku", - "anthropic/claude-3-haiku:beta", - "anthropic/claude-3-opus", - "anthropic/claude-3-opus:beta", - "anthropic/claude-3-sonnet", - "anthropic/claude-3.5-sonnet", - "anthropic/claude-3.5-sonnet:beta", - "anthropic/claude-3-sonnet:beta", - "anthropic/claude-instant-1", - "anthropic/claude-instant-1:beta", - "anthropic/claude-instant-1.0", - "anthropic/claude-instant-1.1", - "austism/chronos-hermes-13b", - "cohere/command", - "cohere/command-r", - "cohere/command-r-plus", - "cognitivecomputations/dolphin-llama-3-70b", - "cognitivecomputations/dolphin-mixtral-8x22b", - "cognitivecomputations/dolphin-mixtral-8x7b", - "databricks/dbrx-instruct", - "deepseek/deepseek-chat", - "deepseek/deepseek-coder", - "google/gemini-flash-1.5", - "google/gemini-pro", - "google/gemini-pro-1.5", - "google/gemini-pro-1.5-exp", - "google/gemini-pro-vision", - "google/gemma-2-27b-it", - "google/gemma-2-9b-it", - "google/gemma-2-9b-it:free", - "google/gemma-7b-it", - "google/gemma-7b-it:free", - "google/gemma-7b-it:nitro", - "google/palm-2-chat-bison", - "google/palm-2-chat-bison-32k", - "google/palm-2-codechat-bison", - "google/palm-2-codechat-bison-32k", - "gryphe/mythomist-7b", - "gryphe/mythomist-7b:free", - "gryphe/mythomax-l2-13b", - "huggingfaceh4/zephyr-7b-beta:free", - "jondurbin/airoboros-l2-70b", - "lizpreciatior/lzlv-70b-fp16-hf", - "lynn/soliloquy-l3", - "mancer/weaver", - "meta-llama/codellama-34b-instruct", - "meta-llama/codellama-70b-instruct", - "meta-llama/llama-3-70b", - "meta-llama/llama-3-70b-instruct", - "meta-llama/llama-3-70b-instruct:nitro", - "meta-llama/llama-3-8b", - "meta-llama/llama-3-8b-instruct", - "meta-llama/llama-3-8b-instruct:extended", - "meta-llama/llama-3-8b-instruct:free", - "meta-llama/llama-3-8b-instruct:nitro", - "meta-llama/llama-3.1-405b", - "meta-llama/llama-3.1-405b-instruct", - "meta-llama/llama-3.1-70b-instruct", - "meta-llama/llama-3.1-8b-instruct", - "meta-llama/llama-3.1-8b-instruct:free", - "meta-llama/llama-guard-2-8b", - "microsoft/phi-3-medium-128k-instruct", - "microsoft/phi-3-medium-128k-instruct:free", - "microsoft/phi-3-medium-4k-instruct", - "microsoft/phi-3-mini-128k-instruct", - "microsoft/phi-3-mini-128k-instruct:free", - "microsoft/wizardlm-2-7b", - "microsoft/wizardlm-2-8x22b", - "mistralai/codestral-mamba", - "mistralai/mistral-7b-instruct", - "mistralai/mistral-7b-instruct:free", - "mistralai/mistral-7b-instruct:nitro", - "mistralai/mistral-7b-instruct-v0.1", - "mistralai/mistral-7b-instruct-v0.2", - "mistralai/mistral-7b-instruct-v0.3", - "mistralai/mistral-large", - "mistralai/mistral-medium", - "mistralai/mistral-nemo", - "mistralai/mistral-small", - "mistralai/mistral-tiny", - "mistralai/mixtral-8x22b", - "mistralai/mixtral-8x22b-instruct", - "mistralai/mixtral-8x7b", - "mistralai/mixtral-8x7b-instruct", - "mistralai/mixtral-8x7b-instruct:nitro", - "neversleep/llama-3-lumimaid-70b", - "neversleep/llama-3-lumimaid-8b", - "neversleep/llama-3-lumimaid-8b:extended", - "neversleep/noromaid-20b", - "nousresearch/hermes-2-pro-llama-3-8b", - "nousresearch/hermes-2-theta-llama-3-8b", - "nousresearch/hermes-3-llama-3.1-405b", - "nousresearch/hermes-3-llama-3.1-405b:extended", - "nousresearch/nous-capybara-7b", - "nousresearch/nous-capybara-7b:free", - "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", - "nousresearch/nous-hermes-2-mixtral-8x7b-sft", - "nousresearch/nous-hermes-2-mistral-7b-dpo", - "nousresearch/nous-hermes-llama2-13b", - "nousresearch/nous-hermes-yi-34b", - "nothingiisreal/mn-celeste-12b", - "open-orca/mistral-7b-openorca", - "openchat/openchat-7b", - "openchat/openchat-7b:free", - "openchat/openchat-8b", - "openai/gpt-3.5-turbo-0613", - "openai/gpt-3.5-turbo-16k", - "openai/gpt-3.5-turbo-instruct", - "openai/gpt-4-32k", - "openai/gpt-4-32k-0314", - "openai/gpt-4-turbo", - "openai/gpt-4-turbo-preview", - "openai/gpt-4-vision-preview", - "openai/gpt-4o", - "openai/gpt-4o:extended", - "openai/gpt-4o-2024-05-13", - "openai/gpt-4o-2024-08-06", - "openai/gpt-4o-latest", - "openai/gpt-4o-mini", - "openai/gpt-4o-mini-2024-07-18", - "openrouter/auto", - "openrouter/flavor-of-the-week", - "perplexity/llama-3-sonar-large-32k-chat", - "perplexity/llama-3-sonar-large-32k-online", - "perplexity/llama-3-sonar-small-32k-chat", - "perplexity/llama-3-sonar-small-32k-online", - "perplexity/llama-3.1-sonar-huge-128k-online", - "perplexity/llama-3.1-sonar-large-128k-chat", - "perplexity/llama-3.1-sonar-large-128k-online", - "perplexity/llama-3.1-sonar-small-128k-chat", - "perplexity/llama-3.1-sonar-small-128k-online", - "phind/phind-codellama-34b", - "pygmalionai/mythalion-13b", - "qwen/qwen-110b-chat", - "qwen/qwen-14b-chat", - "qwen/qwen-2-72b-instruct", - "qwen/qwen-2-7b-instruct", - "qwen/qwen-2-7b-instruct:free", - "qwen/qwen-32b-chat", - "qwen/qwen-4b-chat", - "qwen/qwen-72b-chat", - "qwen/qwen-7b-chat", - "recursal/eagle-7b", - "recursal/rwkv-5-3b-ai-town", - "rwkv/rwkv-5-world-3b", - "sao10k/fimbulvetr-11b-v2", - "sao10k/l3-euryale-70b", - "sao10k/l3-lunaris-8b", - "sao10k/l3-stheno-8b", - "snowflake/snowflake-arctic-instruct", - "sophosympatheia/midnight-rose-70b", - "teknium/openhermes-2-mistral-7b", - "teknium/openhermes-2.5-mistral-7b", - "togethercomputer/stripedhyena-hessian-7b", - "togethercomputer/stripedhyena-nous-7b", - "undi95/remm-slerp-l2-13b", - "undi95/remm-slerp-l2-13b:extended", - "undi95/toppy-m-7b", - "undi95/toppy-m-7b:free", - "undi95/toppy-m-7b:nitro", - "xwin-lm/xwin-lm-70b", - ], - other: ["Other"], -}; - export default function ConfigurationsPage() { const [configurations, setConfigurations] = useState([]); const [newConfig, setNewConfig] = useState>({}); @@ -415,6 +64,10 @@ export default function ConfigurationsPage() { const [selectedModel, setSelectedModel] = useState(""); const [customProvider, setCustomProvider] = useState(""); const [customModel, setCustomModel] = useState(""); + const modelConfigurations: ModelConfigurations = useMemo( + () => getModelConfigurations(), + [], + ); const sortedConfigurations = useMemo(() => { return [...configurations].sort((a, b) => { @@ -429,7 +82,7 @@ export default function ConfigurationsPage() { fetchConfigurations(); }, []); - const fetchConfigurations = async () => { + const fetchConfigurations = useCallback(async () => { try { const configData = await getConfigurations(); setConfigurations(configData as AIConfiguration[]); @@ -437,9 +90,9 @@ export default function ConfigurationsPage() { console.error("Error fetching configurations:", error); setError("Error loading configurations"); } - }; + }, []); - const handleCreateConfig = async () => { + const handleCreateConfig = useCallback(async () => { try { await createConfiguration(newConfig); setIsDialogOpen(false); @@ -449,53 +102,120 @@ export default function ConfigurationsPage() { console.error("Error creating configuration:", error); setError("Error creating configuration"); } - }; + }, [newConfig, fetchConfigurations]); - const handleToggleDefault = async (configId: string, isDefault: boolean) => { - try { - await updateDefaultConfiguration(configId); - fetchConfigurations(); - } catch (error) { - console.error("Error updating default configuration:", error); - setError("Error updating default configuration"); - } - }; + const handleToggleDefault = useCallback( + async (configId: string, isDefault: boolean) => { + try { + await updateDefaultConfiguration(configId); + fetchConfigurations(); + } catch (error) { + console.error("Error updating default configuration:", error); + setError("Error updating default configuration"); + } + }, + [fetchConfigurations], + ); - const handleTemplateSelect = (template: (typeof configTemplates)[0]) => { - const readableName = `${template.provider.charAt(0).toUpperCase() + template.provider.slice(1)} ${template.model}`; - setNewConfig({ ...template, name: readableName }); - setSelectedProvider(template.provider); - setSelectedModel(template.model); - }; + // TODO: Implement proper handling when turning off a default configuration + // - Prevent turning off the last default configuration + // - Show a toast message explaining why the action is not allowed + // - Implement logic to ensure at least one configuration is always set as default - const handleProviderChange = (value: string) => { - setSelectedProvider(value); - setSelectedModel(""); - setNewConfig({ - ...newConfig, - provider: value === "other" ? "" : value, - model: "", - }); - setCustomProvider(""); - }; + const handleTemplateSelect = useCallback( + (provider: string, model: string): void => { + const providerConfigs = modelConfigurations[provider]; - const handleModelChange = (value: string) => { - setSelectedModel(value); - setNewConfig({ ...newConfig, model: value === "Other" ? "" : value }); - setCustomModel(""); - }; + if (!providerConfigs) { + console.error(`No configurations found for provider: ${provider}`); + return; + } - const handleCustomProviderChange = ( - e: React.ChangeEvent, - ) => { - setCustomProvider(e.target.value); - setNewConfig({ ...newConfig, provider: e.target.value }); - }; + const config = providerConfigs[model]; - const handleCustomModelChange = (e: React.ChangeEvent) => { - setCustomModel(e.target.value); - setNewConfig({ ...newConfig, model: e.target.value }); - }; + if (!config || !("isTemplate" in config) || !config.isTemplate) { + console.error( + `No valid template configuration found for model: ${model}`, + ); + return; + } + + const readableName = `${provider.charAt(0).toUpperCase() + provider.slice(1)} ${model}`; + + setNewConfig({ + ...config, + name: readableName, + provider, + model, + }); + setSelectedProvider(provider); + setSelectedModel(model); + }, + [modelConfigurations], + ); + + const templateButtons = useMemo( + () => + Object.entries(modelConfigurations).flatMap(([provider, models]) => + Object.entries(models) + .filter( + ([_, config]) => + config && "isTemplate" in config && config.isTemplate, + ) + .map(([model, config]) => ( + + )), + ), + [modelConfigurations, handleTemplateSelect], + ); + + const handleProviderChange = useCallback( + (value: string) => { + setSelectedProvider(value); + setSelectedModel(""); + setNewConfig({ + ...newConfig, + provider: value === "other" ? "" : value, + model: "", + }); + setCustomProvider(""); + }, + [newConfig], + ); + + const handleModelChange = useCallback( + (value: string) => { + setSelectedModel(value); + setNewConfig({ ...newConfig, model: value === "other" ? "" : value }); + setCustomModel(""); + }, + [newConfig], + ); + + const handleCustomProviderChange = useCallback( + (e: React.ChangeEvent) => { + setCustomProvider(e.target.value); + setNewConfig({ ...newConfig, provider: e.target.value }); + }, + [newConfig], + ); + + const handleCustomModelChange = useCallback( + (e: React.ChangeEvent) => { + setCustomModel(e.target.value); + setNewConfig({ ...newConfig, model: e.target.value }); + }, + [newConfig], + ); return (
@@ -515,6 +235,7 @@ export default function ConfigurationsPage() { Temperature Max Tokens Default + {/* TODO: Add an "Actions" column for edit functionality */} @@ -533,6 +254,7 @@ export default function ConfigurationsPage() { } /> + {/* TODO: Add an edit button or icon in this cell */} ))} @@ -593,7 +315,7 @@ export default function ConfigurationsPage() { - {Object.keys(providerModels).map((provider) => ( + {Object.keys(modelConfigurations).map((provider) => ( {provider} @@ -626,16 +348,16 @@ export default function ConfigurationsPage() { {selectedProvider && - providerModels[ - selectedProvider as keyof typeof providerModels - ].map((model) => ( + Object.keys( + modelConfigurations[selectedProvider] || {}, + ).map((model) => ( {model} ))} - {selectedModel === "Other" && ( + {selectedModel === "other" && ( ({ + openai: { + "gpt-4o": { + name: "OpenAI GPT-4 Optimized", + temperature: 0.7, + maxTokens: 8192, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.000005, + outputTokenCost: 0.000015, + isTemplate: true, + }, + "gpt-4o-mini": { + name: "OpenAI GPT-4 Mini", + temperature: 0.7, + maxTokens: 4096, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.00000015, + outputTokenCost: 0.0000006, + isTemplate: true, + }, + "gpt-4-turbo": { + name: "OpenAI GPT-4", + temperature: 0.7, + maxTokens: 8192, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + isTemplate: true, + }, + "gpt-4o-2024-08-06": { + name: "GPT-4 Optimized (2024-08-06)", + inputTokenCost: 0.0000025, + outputTokenCost: 0.00001, + isTemplate: false, + }, + "gpt-3.5-turbo-0125": { + inputTokenCost: 0.0000005, + outputTokenCost: 0.0000015, + isTemplate: false, + }, + "chatgpt-4o-latest": { + inputTokenCost: 0.000005, + outputTokenCost: 0.000015, + isTemplate: false, + }, + "gpt-4-turbo-2024-04-09": { + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + isTemplate: false, + }, + "gpt-4": { + inputTokenCost: 0.00003, + outputTokenCost: 0.00006, + isTemplate: false, + }, + "gpt-4-32k": { + inputTokenCost: 0.00006, + outputTokenCost: 0.00012, + isTemplate: false, + }, + "gpt-4-0125-preview": { + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + isTemplate: false, + }, + "gpt-4-1106-preview": { + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + isTemplate: false, + }, + "gpt-4-vision-preview": { + inputTokenCost: 0.00001, + outputTokenCost: 0.00003, + isTemplate: false, + }, + "gpt-3.5-turbo-instruct": { + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + isTemplate: false, + }, + "gpt-3.5-turbo-1106": { + inputTokenCost: 0.000001, + outputTokenCost: 0.000002, + isTemplate: false, + }, + "gpt-3.5-turbo-0613": { + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + isTemplate: false, + }, + "gpt-3.5-turbo-16k-0613": { + inputTokenCost: 0.000003, + outputTokenCost: 0.000004, + isTemplate: false, + }, + "gpt-3.5-turbo-0301": { + inputTokenCost: 0.0000015, + outputTokenCost: 0.000002, + isTemplate: false, + }, + "davinci-002": { + inputTokenCost: 0.000002, + outputTokenCost: 0.000002, + isTemplate: false, + }, + "babbage-002": { + inputTokenCost: 0.0000004, + outputTokenCost: 0.0000004, + isTemplate: false, + }, + }, + anthropic: { + "claude-3-5-sonnet-20240620": { + name: "Anthropic Claude 3.5 Sonnet", + temperature: 0.7, + maxTokens: 200000, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.000003, + outputTokenCost: 0.000015, + isTemplate: true, + }, + "claude-3-opus-20240229": null, + "claude-3-sonnet-20240229": null, + "claude-3-haiku-20240307": null, + "claude-3-5-sonnet": { + inputTokenCost: 0.000003, + outputTokenCost: 0.000015, + isTemplate: false, + }, + "claude-3-opus": { + inputTokenCost: 0.000015, + outputTokenCost: 0.000075, + isTemplate: false, + }, + "claude-3-haiku": { + inputTokenCost: 0.00000025, + outputTokenCost: 0.00000125, + isTemplate: false, + }, + "claude-2-1": { + inputTokenCost: 0.000008, + outputTokenCost: 0.000024, + isTemplate: false, + }, + "claude-2-0": { + inputTokenCost: 0.000008, + outputTokenCost: 0.000024, + isTemplate: false, + }, + "claude-instant": { + inputTokenCost: 0.0000008, + outputTokenCost: 0.0000024, + isTemplate: false, + }, + }, + cohere: { + "command-r": null, + "command-r-plus": null, + }, + mistral: { + "mistral-large-latest": { + name: "Mistral Large", + temperature: 0.7, + maxTokens: 32768, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: true, + }, + "mistral-medium-latest": null, + "mistral-small-latest": null, + "open-mistral-nemo": null, + "open-mixtral-8x22b": null, + "open-mixtral-8x7b": null, + "open-mistral-7b": null, + }, + groq: { + "llama-3.1-70b-versatile": { + name: "Groq LLaMA 3.1", + temperature: 0.7, + maxTokens: 32768, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: true, + }, + "llama-3.1-405b-reasoning": null, + "llama-3.1-8b-instant": null, + "mixtral-8x7b-32768": null, + "gemma2-9b-it": null, + }, + ollama: { + codegemma: null, + "codegemma:2b": null, + "codegemma:7b": null, + codellama: null, + "codellama:7b": null, + "codellama:13b": null, + "codellama:34b": null, + "codellama:70b": null, + "codellama:code": null, + "codellama:python": null, + "command-r": null, + "command-r:35b": null, + "command-r-plus": null, + "command-r-plus:104b": null, + "deepseek-coder-v2": null, + "deepseek-coder-v2:16b": null, + "deepseek-coder-v2:236b": null, + falcon2: null, + "falcon2:11b": null, + gemma: null, + "gemma:2b": null, + "gemma:7b": null, + gemma2: null, + "gemma2:2b": null, + "gemma2:9b": null, + "gemma2:27b": null, + llama2: null, + "llama2:7b": null, + "llama2:13b": null, + "llama2:70b": null, + llama3: null, + "llama3:8b": null, + "llama3:70b": null, + "llama3-chatqa": null, + "llama3-chatqa:8b": null, + "llama3-chatqa:70b": null, + "llama3-gradient": null, + "llama3-gradient:8b": null, + "llama3-gradient:70b": null, + "llama3.1": null, + "llama3.1:8b": null, + "llama3.1:70b": null, + "llama3.1:405b": null, + llava: null, + "llava:7b": null, + "llava:13b": null, + "llava:34b": null, + "llava-llama3": null, + "llava-llama3:8b": null, + "llava-phi3": null, + "llava-phi3:3.8b": null, + mistral: null, + "mistral:7b": null, + "mistral-large": null, + "mistral-large:123b": null, + "mistral-nemo": null, + "mistral-nemo:12b": null, + mixtral: null, + "mixtral:8x7b": null, + "mixtral:8x22b": null, + moondream: null, + "moondream:1.8b": null, + openhermes: null, + "openhermes:v2.5": null, + qwen: null, + "qwen:7b": null, + "qwen:14b": null, + "qwen:32b": null, + "qwen:72b": null, + "qwen:110b": null, + qwen2: null, + "qwen2:0.5b": null, + "qwen2:1.5b": null, + "qwen2:7b": null, + "qwen2:72b": null, + phi3: null, + "phi3:3.8b": null, + "phi3:14b": null, + }, + other: { + other: null, + }, +}); From 932d2d252644c6033ef027ac45347c5e3deb1b9a Mon Sep 17 00:00:00 2001 From: Stephen Rayner Date: Tue, 20 Aug 2024 09:01:21 +0100 Subject: [PATCH 04/28] chore: fix persist config --- src/app/actions.ts | 40 ++++++++++++++++++++++++++++----- src/app/configurations/page.tsx | 24 +++++++++++++++++++- 2 files changed, 57 insertions(+), 7 deletions(-) diff --git a/src/app/actions.ts b/src/app/actions.ts index 36ab73d..755a3fc 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -208,15 +208,43 @@ export async function updateDefaultConfiguration( }); } -export async function createConfiguration( - data: Partial, -): Promise { +export async function createConfiguration(config: Partial) { + const { + name, + provider, + model, + temperature, + maxTokens, + topP, + frequencyPenalty, + presencePenalty, + isDefault, + apiKey, + } = config; + + // TODO: Consider using Zod schemas for validation and potentially integrate + // https://github.com/vantezzen/auto-form for form generation and validation + + // Guard clause to ensure required fields are present + if (!name || !provider || !model) { + throw new Error("Name, provider, and model are required fields"); + } + const newConfig = await prisma.aIConfiguration.create({ data: { - ...data, - isDefault: false, // Ensure new configurations are not default by default - } as AIConfiguration, + name, + provider, + model, + temperature: temperature, + maxTokens: maxTokens, + topP: topP, + frequencyPenalty: frequencyPenalty, + presencePenalty: presencePenalty, + isDefault: isDefault, + apiKey: apiKey, + }, }); + return serializeDates(newConfig); } diff --git a/src/app/configurations/page.tsx b/src/app/configurations/page.tsx index 12440a9..2527f2d 100644 --- a/src/app/configurations/page.tsx +++ b/src/app/configurations/page.tsx @@ -93,6 +93,11 @@ export default function ConfigurationsPage() { }, []); const handleCreateConfig = useCallback(async () => { + if (!newConfig.name || !newConfig.provider || !newConfig.model) { + setError("Name, provider, and model are required fields"); + return; + } + try { await createConfiguration(newConfig); setIsDialogOpen(false); @@ -100,7 +105,21 @@ export default function ConfigurationsPage() { fetchConfigurations(); } catch (error) { console.error("Error creating configuration:", error); - setError("Error creating configuration"); + // TODO: Implement better error handling and user feedback + // - Handle specific errors (e.g., unique constraint violations) + // - Display error messages in the UI (e.g., using a toast notification) + // - Highlight fields with errors + // - Prevent dialog from closing on error + if ( + error instanceof Error && + error.message.includes("Unique constraint failed") + ) { + setError( + "A configuration with this name already exists. Please choose a different name.", + ); + } else { + setError("Error creating configuration. Please try again."); + } } }, [newConfig, fetchConfigurations]); @@ -368,6 +387,9 @@ export default function ConfigurationsPage() { )}
+ {error && ( +
{error}
+ )}
From 3b8de2a6de96857b482a21d59f28d2f74f44e554 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Wed, 21 Aug 2024 07:59:29 +0200 Subject: [PATCH 05/28] Add maxToken 8192 for Anthropic --- src/app/[...openai]/route.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index b4dc9cf..b427adf 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -123,6 +123,7 @@ export async function POST( const result = await streamText({ model: aiModel, messages, + maxTokens: provider === "anthropic" ? 8192 : undefined, async onFinish({ text, toolCalls, toolResults, usage, finishReason }) { logEntry.response = JSON.stringify({ text, From a7123461e0988b5336730bcb2180e9a56d4c63e4 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 09:56:46 +0200 Subject: [PATCH 06/28] Update AI sdk --- package.json | 2 +- pnpm-lock.yaml | 126 +++++++++++++++++++++++++++++-------------------- 2 files changed, 77 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 8e0b734..1b8fd1c 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@radix-ui/react-switch": "^1.1.0", "@t3-oss/env-nextjs": "^0.11.0", "@types/react-syntax-highlighter": "^15.5.13", - "ai": "^3.3.7", + "ai": "^3.3.14", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cfb507..351f478 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -63,8 +63,8 @@ importers: specifier: ^15.5.13 version: 15.5.13 ai: - specifier: ^3.3.7 - version: 3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.3.14 + version: 3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -225,6 +225,15 @@ packages: zod: optional: true + '@ai-sdk/provider-utils@1.0.15': + resolution: {integrity: sha512-icZqf2kpV8XdSViei4pX9ylYcVn+pk9AnVquJJGjGQGnwZ/5OgShqnFcLYrMjQfQcSVkz0PxdQVsIhZHzlT9Og==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + '@ai-sdk/provider-utils@1.0.7': resolution: {integrity: sha512-xIDpinTnuInH16wBgKAVdN6pmrpjlJF+5f+f/8ahYMQlYzpe4Vj1qw8OL+rUGdCePcRSrFmjk8G/wdX5+J8dIw==} engines: {node: '>=18'} @@ -246,8 +255,12 @@ packages: resolution: {integrity: sha512-nCQZRUTi/+y+kf1ep9rujpbQEtsIwySzlQAudiFeVhzzDi9rYvWp5tOSVu8/ArT+i1xSc2tw40akxb1TX73ofQ==} engines: {node: '>=18'} - '@ai-sdk/react@0.0.43': - resolution: {integrity: sha512-maWuV9529tIVVST9iXgnxBWUoM5Z8DW0lyrMYnsaLJAZ4kostt+PbqJjhy6eAQPzmXGcu4+OdgT1v1ZNCZR4+Q==} + '@ai-sdk/provider@0.0.21': + resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} + engines: {node: '>=18'} + + '@ai-sdk/react@0.0.48': + resolution: {integrity: sha512-KfW33Gj5/qDA6RWfJ42al3QsgIA2UO+x0gX1M6Kk6LY4bTFgy7+F4GLmo4eflM/9o2M7fUZrNddoOuJ15vbgZg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -258,8 +271,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.34': - resolution: {integrity: sha512-puVv9rrskWXrtaikDbpoMkGeTboa4ZY6wTmC66Xw9rhZ0zK5yN15lLJBf/LeBIV6J1V9F9bBxjRX7UQXjE3sZg==} + '@ai-sdk/solid@0.0.38': + resolution: {integrity: sha512-7pMW6leig8Y05UIL8jy/1dEDTjtfA2WG9qkVMWjnKSKiucT/Z5uOO3zWNHYq8EVwdJJnv+RR8gUASXcZLTh7og==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -267,8 +280,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.36': - resolution: {integrity: sha512-5pSaKt+UZK9+9AsbIYLs4REtAc/0HOLX4DK3nRtMcDqDLoWDoSJDKK/EjDMYVhYB1gqQmT0AeiSLo2WH0nf00w==} + '@ai-sdk/svelte@0.0.40': + resolution: {integrity: sha512-S62aB2aT7gjrVY2uDhxwZFBg9hl4wNwu+kd31zsowByC/yyZp9MRIMXkDCkj0qQLFXvfUzaUuzk8v9gvuPOFCQ==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -276,8 +289,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.31': - resolution: {integrity: sha512-PA1mI+WC69Bc8JCTDOXwhLv9OAfocex/d+MRtQjfuWE6jTBjkBMa6davw+JjN7Vcp6zP0JLQG6gd7n6MnkFepQ==} + '@ai-sdk/ui-utils@0.0.35': + resolution: {integrity: sha512-JZWp5gbH9K0/qmmqv0JFrH97JNMB9dU1xtrR2a8uzRE0wYtNmd3KsM9x3KW/f9OGjxUHzAkrboMvxKv/3uz24w==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -285,8 +298,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.35': - resolution: {integrity: sha512-7cPShsxiyxzoSB5orjCqwnFWvjpM/YX2W+a2K6lyV2Z2JAgHc+4PHhVnrKwc0c9Q7vwfpvW+3MoKM6U2xZaS+w==} + '@ai-sdk/vue@0.0.40': + resolution: {integrity: sha512-01LuQT+Cx2e19fYB4nlMlQhmpJ826S1HfGcB4BY30+/XOJebdHRPPOZ3WV9BytBD7kha/tnngBruiYzegGR+Ug==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -1506,8 +1519,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@3.3.7: - resolution: {integrity: sha512-xMfQdOL2s0aiGozdUO0ahOAfcwkGBUye3q4wC64PPNpmE3Qeing1Tv4JSsHk0zymhCMHBDiI1Tky8BNGdu+V6A==} + ai@3.3.14: + resolution: {integrity: sha512-GF3CVS1rnOtgN68OQGlT/2quhg/D3sMFwak48OGXeqv4VRcDgGJx3UqSwT7ipFa9BncRqo7TIqDHHji3Doamaw==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2326,8 +2339,8 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - google-auth-library@9.13.0: - resolution: {integrity: sha512-p9Y03Uzp/Igcs36zAaB0XTSwZ8Y0/tpYiz5KIde5By+H9DCVUSYtDWZu6aFXsWTqENMb8BD/pDT3hR8NVrPkfA==} + google-auth-library@9.14.0: + resolution: {integrity: sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==} engines: {node: '>=14'} gopd@1.0.1: @@ -4006,6 +4019,15 @@ snapshots: optionalDependencies: zod: 3.23.8 + '@ai-sdk/provider-utils@1.0.15(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.21 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + '@ai-sdk/provider-utils@1.0.7(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.15 @@ -4027,46 +4049,50 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.43(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/provider@0.0.21': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + json-schema: 0.4.0 + + '@ai-sdk/react@0.0.48(react@18.3.1)(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.34(zod@3.23.8)': + '@ai-sdk/solid@0.0.38(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.36(svelte@4.2.18)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.40(svelte@4.2.18)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) sswr: 2.1.0(svelte@4.2.18) optionalDependencies: svelte: 4.2.18 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.31(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.35(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.22.5(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) swrv: 1.0.4(vue@3.4.38(typescript@5.5.4)) optionalDependencies: vue: 3.4.38(typescript@5.5.4) @@ -4602,7 +4628,7 @@ snapshots: '@google-cloud/vertexai@1.4.1(encoding@0.1.13)': dependencies: - google-auth-library: 9.13.0(encoding@0.1.13) + google-auth-library: 9.14.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -5597,15 +5623,15 @@ snapshots: indent-string: 4.0.0 optional: true - ai@3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): + ai@3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/react': 0.0.43(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.34(zod@3.23.8) - '@ai-sdk/svelte': 0.0.36(svelte@4.2.18)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) - '@ai-sdk/vue': 0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/react': 0.0.48(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.38(zod@3.23.8) + '@ai-sdk/svelte': 0.0.40(svelte@4.2.18)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/vue': 0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6263,8 +6289,8 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-react: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -6282,13 +6308,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -6299,18 +6325,18 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -6320,7 +6346,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -6671,7 +6697,7 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - google-auth-library@9.13.0(encoding@0.1.13): + google-auth-library@9.14.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 From f1d9db49a4e90b2258d941e40d6b4e1bf86c3d83 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 09:57:05 +0200 Subject: [PATCH 07/28] Update LogDetails to have collpsable sections for easy debugging --- src/components/LogDetails.tsx | 107 +++++++++++++++++++++++++--------- 1 file changed, 81 insertions(+), 26 deletions(-) diff --git a/src/components/LogDetails.tsx b/src/components/LogDetails.tsx index 62cb4c3..beb8af7 100644 --- a/src/components/LogDetails.tsx +++ b/src/components/LogDetails.tsx @@ -36,6 +36,11 @@ export default function LogDetails({ logId }: LogDetailsProps) { null, ); const searchParams = useSearchParams(); + const [expandedSections, setExpandedSections] = useState({ + response: true, + body: true, + headers: true, + }); useEffect(() => { const fetchLog = async () => { @@ -67,6 +72,13 @@ export default function LogDetails({ logId }: LogDetailsProps) { loadTheme(); }, [logId, searchParams]); + const toggleSection = (section: "response" | "body" | "headers") => { + setExpandedSections((prev) => ({ + ...prev, + [section]: !prev[section], + })); + }; + if (error) { return ( @@ -249,26 +261,14 @@ export default function LogDetails({ logId }: LogDetailsProps) { )} )} - {parsedContent && parsedContent.text && ( -
-

AI Response

- {renderAIResponse(parsedContent)} -
- )} - {parsedContent && parsedContent.messages && ( -
-

- Messages (Most recent on top) -

- {renderMessages(parsedContent.messages)} -
- )} + {(isExpanded || !isExpandable) && ( )} + + {parsedContent && parsedContent.text && ( +
+

AI Response

+ {renderAIResponse(parsedContent)} +
+ )} + + {parsedContent && parsedContent.messages && ( +
+

+ Messages (Most recent on top) +

+ {renderMessages(parsedContent.messages)} +
+ )} ); }; @@ -293,30 +309,69 @@ export default function LogDetails({ logId }: LogDetailsProps) {

{log.timestamp}

- + Response + - - - + {expandedSections.response && ( + + + + )} - + Body + - - - + {expandedSections.body && ( + + + + )} - + Headers + - - - + {expandedSections.headers && ( + + + + )} From dcea389f007441a1da45c65ccdc55e5b407248da Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 09:57:29 +0200 Subject: [PATCH 08/28] Add anthropicCached provider for configuring cached client for Anthropic --- src/app/[...openai]/route.ts | 31 +++++++++++++++++++++++++++++-- src/lib/model-config.ts | 13 +++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index b427adf..40f9afd 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -27,6 +27,13 @@ async function getAIModelClient(provider: string, model: string) { }); return anthropicClient(model); } + case "anthropiccached": { + console.log("anthropiccached"); + const anthropicClient = createAnthropic({ + apiKey: env.ANTHROPIC_API_KEY, + }); + return anthropicClient(model, { cacheControl: true }); + } case "cohere": { const cohereClient = createCohere({ apiKey: env.COHERE_API_KEY, @@ -100,11 +107,31 @@ export async function POST( const aiModel = await getAIModelClient(provider, model); + let modifiedMessages = messages; + + if (provider.toLowerCase() === "anthropiccached") { + modifiedMessages = messages.map((message: any) => { + if (message.name === "potential_context") { + return { + ...message, + experimental_providerMetadata: { + anthropic: { cacheControl: { type: "ephemeral" } }, + }, + }; + } + return message; + }); + } + const logEntry = { method: "POST", url: `/api/${endpoint}`, headers: JSON.stringify(Object.fromEntries(request.headers)), - body: JSON.stringify(body), + body: JSON.stringify({ + ...body, + messages: modifiedMessages, + model: model, + }), response: "", timestamp: new Date(), metadata: { @@ -122,7 +149,7 @@ export async function POST( if (stream) { const result = await streamText({ model: aiModel, - messages, + messages: modifiedMessages, maxTokens: provider === "anthropic" ? 8192 : undefined, async onFinish({ text, toolCalls, toolResults, usage, finishReason }) { logEntry.response = JSON.stringify({ diff --git a/src/lib/model-config.ts b/src/lib/model-config.ts index 05de65e..c4708dd 100644 --- a/src/lib/model-config.ts +++ b/src/lib/model-config.ts @@ -135,6 +135,19 @@ export const getModelConfigurations = (): ModelConfigurations => ({ isTemplate: false, }, }, + anthropicCached: { + "claude-3-5-sonnet-20240620": { + name: "Anthropic Claude 3.5 Sonnet (Cached)", + temperature: 0.7, + maxTokens: 200000, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.000003, + outputTokenCost: 0.000015, + isTemplate: true, + }, + }, anthropic: { "claude-3-5-sonnet-20240620": { name: "Anthropic Claude 3.5 Sonnet", From 58140b5dbd4f7ede6121a0a348be59d1f62f9504 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 09:57:56 +0200 Subject: [PATCH 09/28] Update stats page to separate same model name but from different providers --- src/app/actions.ts | 44 ++++++++--- src/app/stats/page.tsx | 175 ++++++++++++++++++++++++++++++++--------- 2 files changed, 172 insertions(+), 47 deletions(-) diff --git a/src/app/actions.ts b/src/app/actions.ts index 755a3fc..1bc61e1 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -75,12 +75,15 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens: number; totalPromptTokens: number; totalCompletionTokens: number; - perModelStats: { + perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; + cost: number; + provider: string; + model: string; }; }; tokenUsageOverTime: { @@ -115,15 +118,20 @@ export async function getStats(timeFilter = "all"): Promise<{ }, }); - const perModelStats: { + const perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; + cost: number; + provider: string; + model: string; }; } = {}; + const configCosts = await getConfigurationCosts(); + let totalTokens = 0; let totalPromptTokens = 0; let totalCompletionTokens = 0; @@ -137,24 +145,42 @@ export async function getStats(timeFilter = "all"): Promise<{ for (const log of logs) { const metadata = log.metadata as Record; const model = (metadata.model as string) || "unknown"; - if (!perModelStats[model]) { - perModelStats[model] = { + const provider = (metadata.provider as string) || "unknown"; + const key = `${provider}:${model}`; + + if (!perModelProviderStats[key]) { + perModelProviderStats[key] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, + cost: 0, + provider, + model, }; } - perModelStats[model].logs += 1; + perModelProviderStats[key].logs += 1; try { const responseObj = JSON.parse(log.response); const tokens = responseObj.usage?.totalTokens || 0; const promptTokens = responseObj.usage?.promptTokens || 0; const completionTokens = responseObj.usage?.completionTokens || 0; - perModelStats[model].tokens += tokens; - perModelStats[model].promptTokens += promptTokens; - perModelStats[model].completionTokens += completionTokens; + perModelProviderStats[key].tokens += tokens; + perModelProviderStats[key].promptTokens += promptTokens; + perModelProviderStats[key].completionTokens += completionTokens; + + // Calculate cost + const costConfig = configCosts.find( + (c) => c.provider === provider && c.model === model, + ); + if (costConfig) { + const cost = + promptTokens * costConfig.inputTokenCost + + completionTokens * costConfig.outputTokenCost; + perModelProviderStats[key].cost += cost; + } + totalTokens += tokens; totalPromptTokens += promptTokens; totalCompletionTokens += completionTokens; @@ -185,7 +211,7 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens, totalPromptTokens, totalCompletionTokens, - perModelStats, + perModelProviderStats, tokenUsageOverTime, }; } diff --git a/src/app/stats/page.tsx b/src/app/stats/page.tsx index 0108eeb..e726395 100644 --- a/src/app/stats/page.tsx +++ b/src/app/stats/page.tsx @@ -32,19 +32,30 @@ import { SelectValue, } from "@/components/ui/select"; import { Skeleton } from "@/components/ui/skeleton"; +import { Checkbox } from "@/components/ui/checkbox"; interface Stats { totalLogs: number; totalTokens: number; - perModelStats: { + totalPromptTokens: number; + totalCompletionTokens: number; + perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; cost: number; + provider: string; + model: string; }; }; + tokenUsageOverTime: { + date: string; + tokens: number; + promptTokens: number; + completionTokens: number; + }[]; } const chartConfig = { @@ -53,12 +64,20 @@ const chartConfig = { color: "hsl(var(--chart-1))", }, tokens: { - label: "Tokens", + label: "Total Tokens", color: "hsl(var(--chart-2))", }, + promptTokens: { + label: "Input Tokens", + color: "hsl(var(--chart-3))", + }, + completionTokens: { + label: "Output Tokens", + color: "hsl(var(--chart-4))", + }, cost: { label: "Cost ($)", - color: "hsl(var(--chart-3))", + color: "hsl(var(--chart-5))", }, }; @@ -71,6 +90,11 @@ export default function StatsPage() { const [tokenUsageOverTime, setTokenUsageOverTime] = useState< { date: string; tokens: number }[] >([]); + const [selectedMetrics, setSelectedMetrics] = useState([ + "logs", + "tokens", + "cost", + ]); useEffect(() => { const fetchData = async () => { @@ -81,25 +105,30 @@ export default function StatsPage() { getConfigurationCosts(), ]); - const perModelStats: Stats["perModelStats"] = {}; + const perModelProviderStats: Stats["perModelProviderStats"] = {}; for (const config of configData) { - perModelStats[config.model] = { + perModelProviderStats[`${config.provider}:${config.model}`] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, cost: 0, + provider: config.provider, + model: config.model, }; } - for (const [model, modelStats] of Object.entries( - statsData.perModelStats, + for (const [key, modelStats] of Object.entries( + statsData.perModelProviderStats, )) { - const costData = costsData.find((c) => c.model === model); + const [provider, model] = key.split(":"); + const costData = costsData.find( + (c) => c.provider === provider && c.model === model, + ); const inputTokenCost = costData?.inputTokenCost || 0; const outputTokenCost = costData?.outputTokenCost || 0; - perModelStats[model] = { + perModelProviderStats[key] = { ...modelStats, cost: modelStats.promptTokens * inputTokenCost + @@ -110,7 +139,10 @@ export default function StatsPage() { setStats({ totalLogs: statsData.totalLogs, totalTokens: statsData.totalTokens, - perModelStats, + totalPromptTokens: statsData.totalPromptTokens, + totalCompletionTokens: statsData.totalCompletionTokens, + perModelProviderStats, + tokenUsageOverTime: statsData.tokenUsageOverTime, }); setTokenUsageOverTime(statsData.tokenUsageOverTime); setConfigurations(configData); @@ -124,6 +156,14 @@ export default function StatsPage() { fetchData(); }, [timeFilter]); + const handleMetricToggle = (metric: string) => { + setSelectedMetrics((prev) => + prev.includes(metric) + ? prev.filter((m) => m !== metric) + : [...prev, metric], + ); + }; + if (loading) { return (
@@ -171,18 +211,21 @@ export default function StatsPage() { if (!stats) return null; - const chartData = Object.entries(stats.perModelStats).map( - ([model, data]) => ({ - model, + const chartData = Object.entries(stats.perModelProviderStats).map( + ([key, data]) => ({ + provider: data.provider, + model: data.model, logs: data.logs, tokens: data.tokens, + promptTokens: data.promptTokens, + completionTokens: data.completionTokens, cost: data.cost, }), ); - const pieChartData = Object.entries(stats.perModelStats).map( - ([model, data]) => ({ - name: model, + const pieChartData = Object.entries(stats.perModelProviderStats).map( + ([key, data]) => ({ + name: key, value: data.logs, }), ); @@ -238,7 +281,7 @@ export default function StatsPage() {

$ - {Object.values(stats.perModelStats) + {Object.values(stats.perModelProviderStats) .reduce((sum, data) => sum + data.cost, 0) .toFixed(2)}

@@ -246,9 +289,27 @@ export default function StatsPage() {
+
+ {Object.entries(chartConfig).map(([key, config]) => ( +
+ handleMetricToggle(key)} + /> + +
+ ))} +
+ - Per Model Statistics + Per Model and Provider Statistics @@ -268,26 +329,64 @@ export default function StatsPage() { orientation="right" stroke="currentColor" /> - } /> - } /> - - - { + if (active && payload && payload.length) { + return ( +
+

{`${payload[0].payload.provider}: ${payload[0].payload.model}`}

+ {payload.map((entry) => ( +

+ {`${entry.name}: ${entry.value}`} +

+ ))} +
+ ); + } + return null; + }} /> + } /> + {selectedMetrics.includes("logs") && ( + + )} + {selectedMetrics.includes("tokens") && ( + + )} + {selectedMetrics.includes("promptTokens") && ( + + )} + {selectedMetrics.includes("completionTokens") && ( + + )} + {selectedMetrics.includes("cost") && ( + + )}
@@ -321,7 +420,7 @@ export default function StatsPage() { - Model Usage Distribution + Model and Provider Usage Distribution From 3dbd02c83cbf22583cf30dfadf8a9e4415881002 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 10:32:40 +0200 Subject: [PATCH 10/28] Log all properties in onFinish hook --- src/app/[...openai]/route.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 40f9afd..fec6e75 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -151,13 +151,21 @@ export async function POST( model: aiModel, messages: modifiedMessages, maxTokens: provider === "anthropic" ? 8192 : undefined, - async onFinish({ text, toolCalls, toolResults, usage, finishReason }) { + async onFinish({ + text, + toolCalls, + toolResults, + usage, + finishReason, + ...otherProps + }) { logEntry.response = JSON.stringify({ text, toolCalls, toolResults, usage, finishReason, + ...otherProps, }); await insertLog(logEntry); }, From 5deeb184f0ca6d17943562602c8c711466da4d77 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 10:54:07 +0200 Subject: [PATCH 11/28] Upgrade anthropic's version --- package.json | 4 ++-- pnpm-lock.yaml | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index 1b8fd1c..21900a1 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,9 @@ "seed": "tsx prisma/seed.ts" }, "dependencies": { + "ai": "^3.3.14", + "@ai-sdk/anthropic": "^0.0.46", "@ai-sdk/amazon-bedrock": "^0.0.17", - "@ai-sdk/anthropic": "^0.0.41", "@ai-sdk/cohere": "^0.0.17", "@ai-sdk/google-vertex": "^0.0.28", "@ai-sdk/mistral": "^0.0.34", @@ -31,7 +32,6 @@ "@radix-ui/react-switch": "^1.1.0", "@t3-oss/env-nextjs": "^0.11.0", "@types/react-syntax-highlighter": "^15.5.13", - "ai": "^3.3.14", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 351f478..6468500 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) '@ai-sdk/anthropic': - specifier: ^0.0.41 - version: 0.0.41(zod@3.23.8) + specifier: ^0.0.46 + version: 0.0.46(zod@3.23.8) '@ai-sdk/cohere': specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) @@ -177,8 +177,8 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/anthropic@0.0.41': - resolution: {integrity: sha512-ZGH0Xah9II4jEzDm/z+9G6qf0jC2vWRBURBDTWdQlVUI4COOMd8fmTrqwZrQuAl/y72vYakG5k2AKpJSnY6MeA==} + '@ai-sdk/anthropic@0.0.46': + resolution: {integrity: sha512-44tU2iXrMQmEv+UNZ7Yj9Vl8BM+emRPpDxC2ae94TEEZxyJiCzum6rZ1alc8n5Yq1t22S5JxhlGwpOT5+wV4zQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -3968,10 +3968,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@ai-sdk/anthropic@0.0.41(zod@3.23.8)': + '@ai-sdk/anthropic@0.0.46(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) zod: 3.23.8 '@ai-sdk/cohere@0.0.17(zod@3.23.8)': From de2273918ee3f2c9c3d40c58969bc0aa1e2b9a30 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 10:54:30 +0200 Subject: [PATCH 12/28] Add testAnthropicCached to GET routes --- src/app/[...openai]/route.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index fec6e75..5fb01b2 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -28,7 +28,6 @@ async function getAIModelClient(provider: string, model: string) { return anthropicClient(model); } case "anthropiccached": { - console.log("anthropiccached"); const anthropicClient = createAnthropic({ apiKey: env.ANTHROPIC_API_KEY, }); @@ -269,6 +268,8 @@ export async function GET( return testOpenAI(); } else if (endpoint === "test/anthropic") { return testAnthropic(); + } else if (endpoint === "test/anthropiccached") { + return testAnthropicCached(); } else if (endpoint === "test/cohere") { return testCohere(); } else if (endpoint === "test/mistral") { @@ -294,6 +295,25 @@ async function testOpenAI() { } } +async function testAnthropicCached() { + try { + const model = anthropic("claude-3-5-sonnet-20240620", { + cacheControl: true, + }); + + const result = await generateText({ + model, + messages: [ + { role: "user", content: 'Say "Hello from Anthropic and Vercel"' }, + ], + }); + return NextResponse.json({ provider: "Anthropic Cached", result }); + } catch (error) { + console.error("Error testing Anthropic:", error); + return NextResponse.json({ error: String(error) }, { status: 500 }); + } +} + async function testAnthropic() { try { const anthropicClient = createAnthropic({ From 0cfb3a3fa3c02e369f9ca9ea7d71e0ddf23a1d59 Mon Sep 17 00:00:00 2001 From: hamed Date: Thu, 22 Aug 2024 10:58:11 +0200 Subject: [PATCH 13/28] Revert "Add caching support for Anthropic Sonnet 3.5" --- package.json | 4 +- pnpm-lock.yaml | 140 +++++++++++---------------- src/app/[...openai]/route.ts | 61 +----------- src/app/actions.ts | 44 ++------- src/app/stats/page.tsx | 175 ++++++++-------------------------- src/components/LogDetails.tsx | 107 +++++---------------- src/lib/model-config.ts | 13 --- 7 files changed, 135 insertions(+), 409 deletions(-) diff --git a/package.json b/package.json index 21900a1..8e0b734 100644 --- a/package.json +++ b/package.json @@ -13,9 +13,8 @@ "seed": "tsx prisma/seed.ts" }, "dependencies": { - "ai": "^3.3.14", - "@ai-sdk/anthropic": "^0.0.46", "@ai-sdk/amazon-bedrock": "^0.0.17", + "@ai-sdk/anthropic": "^0.0.41", "@ai-sdk/cohere": "^0.0.17", "@ai-sdk/google-vertex": "^0.0.28", "@ai-sdk/mistral": "^0.0.34", @@ -32,6 +31,7 @@ "@radix-ui/react-switch": "^1.1.0", "@t3-oss/env-nextjs": "^0.11.0", "@types/react-syntax-highlighter": "^15.5.13", + "ai": "^3.3.7", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6468500..5cfb507 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) '@ai-sdk/anthropic': - specifier: ^0.0.46 - version: 0.0.46(zod@3.23.8) + specifier: ^0.0.41 + version: 0.0.41(zod@3.23.8) '@ai-sdk/cohere': specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) @@ -63,8 +63,8 @@ importers: specifier: ^15.5.13 version: 15.5.13 ai: - specifier: ^3.3.14 - version: 3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.3.7 + version: 3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -177,8 +177,8 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/anthropic@0.0.46': - resolution: {integrity: sha512-44tU2iXrMQmEv+UNZ7Yj9Vl8BM+emRPpDxC2ae94TEEZxyJiCzum6rZ1alc8n5Yq1t22S5JxhlGwpOT5+wV4zQ==} + '@ai-sdk/anthropic@0.0.41': + resolution: {integrity: sha512-ZGH0Xah9II4jEzDm/z+9G6qf0jC2vWRBURBDTWdQlVUI4COOMd8fmTrqwZrQuAl/y72vYakG5k2AKpJSnY6MeA==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -225,15 +225,6 @@ packages: zod: optional: true - '@ai-sdk/provider-utils@1.0.15': - resolution: {integrity: sha512-icZqf2kpV8XdSViei4pX9ylYcVn+pk9AnVquJJGjGQGnwZ/5OgShqnFcLYrMjQfQcSVkz0PxdQVsIhZHzlT9Og==} - engines: {node: '>=18'} - peerDependencies: - zod: ^3.0.0 - peerDependenciesMeta: - zod: - optional: true - '@ai-sdk/provider-utils@1.0.7': resolution: {integrity: sha512-xIDpinTnuInH16wBgKAVdN6pmrpjlJF+5f+f/8ahYMQlYzpe4Vj1qw8OL+rUGdCePcRSrFmjk8G/wdX5+J8dIw==} engines: {node: '>=18'} @@ -255,12 +246,8 @@ packages: resolution: {integrity: sha512-nCQZRUTi/+y+kf1ep9rujpbQEtsIwySzlQAudiFeVhzzDi9rYvWp5tOSVu8/ArT+i1xSc2tw40akxb1TX73ofQ==} engines: {node: '>=18'} - '@ai-sdk/provider@0.0.21': - resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} - engines: {node: '>=18'} - - '@ai-sdk/react@0.0.48': - resolution: {integrity: sha512-KfW33Gj5/qDA6RWfJ42al3QsgIA2UO+x0gX1M6Kk6LY4bTFgy7+F4GLmo4eflM/9o2M7fUZrNddoOuJ15vbgZg==} + '@ai-sdk/react@0.0.43': + resolution: {integrity: sha512-maWuV9529tIVVST9iXgnxBWUoM5Z8DW0lyrMYnsaLJAZ4kostt+PbqJjhy6eAQPzmXGcu4+OdgT1v1ZNCZR4+Q==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -271,8 +258,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.38': - resolution: {integrity: sha512-7pMW6leig8Y05UIL8jy/1dEDTjtfA2WG9qkVMWjnKSKiucT/Z5uOO3zWNHYq8EVwdJJnv+RR8gUASXcZLTh7og==} + '@ai-sdk/solid@0.0.34': + resolution: {integrity: sha512-puVv9rrskWXrtaikDbpoMkGeTboa4ZY6wTmC66Xw9rhZ0zK5yN15lLJBf/LeBIV6J1V9F9bBxjRX7UQXjE3sZg==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -280,8 +267,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.40': - resolution: {integrity: sha512-S62aB2aT7gjrVY2uDhxwZFBg9hl4wNwu+kd31zsowByC/yyZp9MRIMXkDCkj0qQLFXvfUzaUuzk8v9gvuPOFCQ==} + '@ai-sdk/svelte@0.0.36': + resolution: {integrity: sha512-5pSaKt+UZK9+9AsbIYLs4REtAc/0HOLX4DK3nRtMcDqDLoWDoSJDKK/EjDMYVhYB1gqQmT0AeiSLo2WH0nf00w==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -289,8 +276,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.35': - resolution: {integrity: sha512-JZWp5gbH9K0/qmmqv0JFrH97JNMB9dU1xtrR2a8uzRE0wYtNmd3KsM9x3KW/f9OGjxUHzAkrboMvxKv/3uz24w==} + '@ai-sdk/ui-utils@0.0.31': + resolution: {integrity: sha512-PA1mI+WC69Bc8JCTDOXwhLv9OAfocex/d+MRtQjfuWE6jTBjkBMa6davw+JjN7Vcp6zP0JLQG6gd7n6MnkFepQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -298,8 +285,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.40': - resolution: {integrity: sha512-01LuQT+Cx2e19fYB4nlMlQhmpJ826S1HfGcB4BY30+/XOJebdHRPPOZ3WV9BytBD7kha/tnngBruiYzegGR+Ug==} + '@ai-sdk/vue@0.0.35': + resolution: {integrity: sha512-7cPShsxiyxzoSB5orjCqwnFWvjpM/YX2W+a2K6lyV2Z2JAgHc+4PHhVnrKwc0c9Q7vwfpvW+3MoKM6U2xZaS+w==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -1519,8 +1506,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@3.3.14: - resolution: {integrity: sha512-GF3CVS1rnOtgN68OQGlT/2quhg/D3sMFwak48OGXeqv4VRcDgGJx3UqSwT7ipFa9BncRqo7TIqDHHji3Doamaw==} + ai@3.3.7: + resolution: {integrity: sha512-xMfQdOL2s0aiGozdUO0ahOAfcwkGBUye3q4wC64PPNpmE3Qeing1Tv4JSsHk0zymhCMHBDiI1Tky8BNGdu+V6A==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2339,8 +2326,8 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - google-auth-library@9.14.0: - resolution: {integrity: sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==} + google-auth-library@9.13.0: + resolution: {integrity: sha512-p9Y03Uzp/Igcs36zAaB0XTSwZ8Y0/tpYiz5KIde5By+H9DCVUSYtDWZu6aFXsWTqENMb8BD/pDT3hR8NVrPkfA==} engines: {node: '>=14'} gopd@1.0.1: @@ -3968,10 +3955,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@ai-sdk/anthropic@0.0.46(zod@3.23.8)': + '@ai-sdk/anthropic@0.0.41(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/provider': 0.0.19 + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) zod: 3.23.8 '@ai-sdk/cohere@0.0.17(zod@3.23.8)': @@ -4019,15 +4006,6 @@ snapshots: optionalDependencies: zod: 3.23.8 - '@ai-sdk/provider-utils@1.0.15(zod@3.23.8)': - dependencies: - '@ai-sdk/provider': 0.0.21 - eventsource-parser: 1.1.2 - nanoid: 3.3.6 - secure-json-parse: 2.7.0 - optionalDependencies: - zod: 3.23.8 - '@ai-sdk/provider-utils@1.0.7(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.15 @@ -4049,50 +4027,46 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/provider@0.0.21': + '@ai-sdk/react@0.0.43(react@18.3.1)(zod@3.23.8)': dependencies: - json-schema: 0.4.0 - - '@ai-sdk/react@0.0.48(react@18.3.1)(zod@3.23.8)': - dependencies: - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.38(zod@3.23.8)': + '@ai-sdk/solid@0.0.34(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.40(svelte@4.2.18)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.36(svelte@4.2.18)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) sswr: 2.1.0(svelte@4.2.18) optionalDependencies: svelte: 4.2.18 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.35(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.31(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/provider': 0.0.19 + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.22.5(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) swrv: 1.0.4(vue@3.4.38(typescript@5.5.4)) optionalDependencies: vue: 3.4.38(typescript@5.5.4) @@ -4628,7 +4602,7 @@ snapshots: '@google-cloud/vertexai@1.4.1(encoding@0.1.13)': dependencies: - google-auth-library: 9.14.0(encoding@0.1.13) + google-auth-library: 9.13.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -5623,15 +5597,15 @@ snapshots: indent-string: 4.0.0 optional: true - ai@3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): + ai@3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): dependencies: - '@ai-sdk/provider': 0.0.21 - '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) - '@ai-sdk/react': 0.0.48(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.38(zod@3.23.8) - '@ai-sdk/svelte': 0.0.40(svelte@4.2.18)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) - '@ai-sdk/vue': 0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider': 0.0.19 + '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/react': 0.0.43(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.34(zod@3.23.8) + '@ai-sdk/svelte': 0.0.36(svelte@4.2.18)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/vue': 0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6289,8 +6263,8 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-react: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -6308,13 +6282,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): dependencies: debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -6325,18 +6299,18 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -6346,7 +6320,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -6697,7 +6671,7 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - google-auth-library@9.14.0(encoding@0.1.13): + google-auth-library@9.13.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 5fb01b2..b427adf 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -27,12 +27,6 @@ async function getAIModelClient(provider: string, model: string) { }); return anthropicClient(model); } - case "anthropiccached": { - const anthropicClient = createAnthropic({ - apiKey: env.ANTHROPIC_API_KEY, - }); - return anthropicClient(model, { cacheControl: true }); - } case "cohere": { const cohereClient = createCohere({ apiKey: env.COHERE_API_KEY, @@ -106,31 +100,11 @@ export async function POST( const aiModel = await getAIModelClient(provider, model); - let modifiedMessages = messages; - - if (provider.toLowerCase() === "anthropiccached") { - modifiedMessages = messages.map((message: any) => { - if (message.name === "potential_context") { - return { - ...message, - experimental_providerMetadata: { - anthropic: { cacheControl: { type: "ephemeral" } }, - }, - }; - } - return message; - }); - } - const logEntry = { method: "POST", url: `/api/${endpoint}`, headers: JSON.stringify(Object.fromEntries(request.headers)), - body: JSON.stringify({ - ...body, - messages: modifiedMessages, - model: model, - }), + body: JSON.stringify(body), response: "", timestamp: new Date(), metadata: { @@ -148,23 +122,15 @@ export async function POST( if (stream) { const result = await streamText({ model: aiModel, - messages: modifiedMessages, + messages, maxTokens: provider === "anthropic" ? 8192 : undefined, - async onFinish({ - text, - toolCalls, - toolResults, - usage, - finishReason, - ...otherProps - }) { + async onFinish({ text, toolCalls, toolResults, usage, finishReason }) { logEntry.response = JSON.stringify({ text, toolCalls, toolResults, usage, finishReason, - ...otherProps, }); await insertLog(logEntry); }, @@ -268,8 +234,6 @@ export async function GET( return testOpenAI(); } else if (endpoint === "test/anthropic") { return testAnthropic(); - } else if (endpoint === "test/anthropiccached") { - return testAnthropicCached(); } else if (endpoint === "test/cohere") { return testCohere(); } else if (endpoint === "test/mistral") { @@ -295,25 +259,6 @@ async function testOpenAI() { } } -async function testAnthropicCached() { - try { - const model = anthropic("claude-3-5-sonnet-20240620", { - cacheControl: true, - }); - - const result = await generateText({ - model, - messages: [ - { role: "user", content: 'Say "Hello from Anthropic and Vercel"' }, - ], - }); - return NextResponse.json({ provider: "Anthropic Cached", result }); - } catch (error) { - console.error("Error testing Anthropic:", error); - return NextResponse.json({ error: String(error) }, { status: 500 }); - } -} - async function testAnthropic() { try { const anthropicClient = createAnthropic({ diff --git a/src/app/actions.ts b/src/app/actions.ts index 1bc61e1..755a3fc 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -75,15 +75,12 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens: number; totalPromptTokens: number; totalCompletionTokens: number; - perModelProviderStats: { + perModelStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; - cost: number; - provider: string; - model: string; }; }; tokenUsageOverTime: { @@ -118,20 +115,15 @@ export async function getStats(timeFilter = "all"): Promise<{ }, }); - const perModelProviderStats: { + const perModelStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; - cost: number; - provider: string; - model: string; }; } = {}; - const configCosts = await getConfigurationCosts(); - let totalTokens = 0; let totalPromptTokens = 0; let totalCompletionTokens = 0; @@ -145,42 +137,24 @@ export async function getStats(timeFilter = "all"): Promise<{ for (const log of logs) { const metadata = log.metadata as Record; const model = (metadata.model as string) || "unknown"; - const provider = (metadata.provider as string) || "unknown"; - const key = `${provider}:${model}`; - - if (!perModelProviderStats[key]) { - perModelProviderStats[key] = { + if (!perModelStats[model]) { + perModelStats[model] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, - cost: 0, - provider, - model, }; } - perModelProviderStats[key].logs += 1; + perModelStats[model].logs += 1; try { const responseObj = JSON.parse(log.response); const tokens = responseObj.usage?.totalTokens || 0; const promptTokens = responseObj.usage?.promptTokens || 0; const completionTokens = responseObj.usage?.completionTokens || 0; - perModelProviderStats[key].tokens += tokens; - perModelProviderStats[key].promptTokens += promptTokens; - perModelProviderStats[key].completionTokens += completionTokens; - - // Calculate cost - const costConfig = configCosts.find( - (c) => c.provider === provider && c.model === model, - ); - if (costConfig) { - const cost = - promptTokens * costConfig.inputTokenCost + - completionTokens * costConfig.outputTokenCost; - perModelProviderStats[key].cost += cost; - } - + perModelStats[model].tokens += tokens; + perModelStats[model].promptTokens += promptTokens; + perModelStats[model].completionTokens += completionTokens; totalTokens += tokens; totalPromptTokens += promptTokens; totalCompletionTokens += completionTokens; @@ -211,7 +185,7 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens, totalPromptTokens, totalCompletionTokens, - perModelProviderStats, + perModelStats, tokenUsageOverTime, }; } diff --git a/src/app/stats/page.tsx b/src/app/stats/page.tsx index e726395..0108eeb 100644 --- a/src/app/stats/page.tsx +++ b/src/app/stats/page.tsx @@ -32,30 +32,19 @@ import { SelectValue, } from "@/components/ui/select"; import { Skeleton } from "@/components/ui/skeleton"; -import { Checkbox } from "@/components/ui/checkbox"; interface Stats { totalLogs: number; totalTokens: number; - totalPromptTokens: number; - totalCompletionTokens: number; - perModelProviderStats: { + perModelStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; cost: number; - provider: string; - model: string; }; }; - tokenUsageOverTime: { - date: string; - tokens: number; - promptTokens: number; - completionTokens: number; - }[]; } const chartConfig = { @@ -64,20 +53,12 @@ const chartConfig = { color: "hsl(var(--chart-1))", }, tokens: { - label: "Total Tokens", + label: "Tokens", color: "hsl(var(--chart-2))", }, - promptTokens: { - label: "Input Tokens", - color: "hsl(var(--chart-3))", - }, - completionTokens: { - label: "Output Tokens", - color: "hsl(var(--chart-4))", - }, cost: { label: "Cost ($)", - color: "hsl(var(--chart-5))", + color: "hsl(var(--chart-3))", }, }; @@ -90,11 +71,6 @@ export default function StatsPage() { const [tokenUsageOverTime, setTokenUsageOverTime] = useState< { date: string; tokens: number }[] >([]); - const [selectedMetrics, setSelectedMetrics] = useState([ - "logs", - "tokens", - "cost", - ]); useEffect(() => { const fetchData = async () => { @@ -105,30 +81,25 @@ export default function StatsPage() { getConfigurationCosts(), ]); - const perModelProviderStats: Stats["perModelProviderStats"] = {}; + const perModelStats: Stats["perModelStats"] = {}; for (const config of configData) { - perModelProviderStats[`${config.provider}:${config.model}`] = { + perModelStats[config.model] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, cost: 0, - provider: config.provider, - model: config.model, }; } - for (const [key, modelStats] of Object.entries( - statsData.perModelProviderStats, + for (const [model, modelStats] of Object.entries( + statsData.perModelStats, )) { - const [provider, model] = key.split(":"); - const costData = costsData.find( - (c) => c.provider === provider && c.model === model, - ); + const costData = costsData.find((c) => c.model === model); const inputTokenCost = costData?.inputTokenCost || 0; const outputTokenCost = costData?.outputTokenCost || 0; - perModelProviderStats[key] = { + perModelStats[model] = { ...modelStats, cost: modelStats.promptTokens * inputTokenCost + @@ -139,10 +110,7 @@ export default function StatsPage() { setStats({ totalLogs: statsData.totalLogs, totalTokens: statsData.totalTokens, - totalPromptTokens: statsData.totalPromptTokens, - totalCompletionTokens: statsData.totalCompletionTokens, - perModelProviderStats, - tokenUsageOverTime: statsData.tokenUsageOverTime, + perModelStats, }); setTokenUsageOverTime(statsData.tokenUsageOverTime); setConfigurations(configData); @@ -156,14 +124,6 @@ export default function StatsPage() { fetchData(); }, [timeFilter]); - const handleMetricToggle = (metric: string) => { - setSelectedMetrics((prev) => - prev.includes(metric) - ? prev.filter((m) => m !== metric) - : [...prev, metric], - ); - }; - if (loading) { return (
@@ -211,21 +171,18 @@ export default function StatsPage() { if (!stats) return null; - const chartData = Object.entries(stats.perModelProviderStats).map( - ([key, data]) => ({ - provider: data.provider, - model: data.model, + const chartData = Object.entries(stats.perModelStats).map( + ([model, data]) => ({ + model, logs: data.logs, tokens: data.tokens, - promptTokens: data.promptTokens, - completionTokens: data.completionTokens, cost: data.cost, }), ); - const pieChartData = Object.entries(stats.perModelProviderStats).map( - ([key, data]) => ({ - name: key, + const pieChartData = Object.entries(stats.perModelStats).map( + ([model, data]) => ({ + name: model, value: data.logs, }), ); @@ -281,7 +238,7 @@ export default function StatsPage() {

$ - {Object.values(stats.perModelProviderStats) + {Object.values(stats.perModelStats) .reduce((sum, data) => sum + data.cost, 0) .toFixed(2)}

@@ -289,27 +246,9 @@ export default function StatsPage() {
-
- {Object.entries(chartConfig).map(([key, config]) => ( -
- handleMetricToggle(key)} - /> - -
- ))} -
- - Per Model and Provider Statistics + Per Model Statistics @@ -329,64 +268,26 @@ export default function StatsPage() { orientation="right" stroke="currentColor" /> - { - if (active && payload && payload.length) { - return ( -
-

{`${payload[0].payload.provider}: ${payload[0].payload.model}`}

- {payload.map((entry) => ( -

- {`${entry.name}: ${entry.value}`} -

- ))} -
- ); - } - return null; - }} - /> + } /> } /> - {selectedMetrics.includes("logs") && ( - - )} - {selectedMetrics.includes("tokens") && ( - - )} - {selectedMetrics.includes("promptTokens") && ( - - )} - {selectedMetrics.includes("completionTokens") && ( - - )} - {selectedMetrics.includes("cost") && ( - - )} + + +
@@ -420,7 +321,7 @@ export default function StatsPage() { - Model and Provider Usage Distribution + Model Usage Distribution diff --git a/src/components/LogDetails.tsx b/src/components/LogDetails.tsx index beb8af7..62cb4c3 100644 --- a/src/components/LogDetails.tsx +++ b/src/components/LogDetails.tsx @@ -36,11 +36,6 @@ export default function LogDetails({ logId }: LogDetailsProps) { null, ); const searchParams = useSearchParams(); - const [expandedSections, setExpandedSections] = useState({ - response: true, - body: true, - headers: true, - }); useEffect(() => { const fetchLog = async () => { @@ -72,13 +67,6 @@ export default function LogDetails({ logId }: LogDetailsProps) { loadTheme(); }, [logId, searchParams]); - const toggleSection = (section: "response" | "body" | "headers") => { - setExpandedSections((prev) => ({ - ...prev, - [section]: !prev[section], - })); - }; - if (error) { return ( @@ -261,30 +249,12 @@ export default function LogDetails({ logId }: LogDetailsProps) { )} )} - - {(isExpanded || !isExpandable) && ( - - {jsonString} - - )} - {parsedContent && parsedContent.text && (

AI Response

{renderAIResponse(parsedContent)}
)} - {parsedContent && parsedContent.messages && (

@@ -293,6 +263,20 @@ export default function LogDetails({ logId }: LogDetailsProps) { {renderMessages(parsedContent.messages)}

)} + {(isExpanded || !isExpandable) && ( + + {jsonString} + + )} ); }; @@ -309,69 +293,30 @@ export default function LogDetails({ logId }: LogDetailsProps) {

{log.timestamp}

- + Response - - {expandedSections.response && ( - - - - )} + + + - + Body - - {expandedSections.body && ( - - - - )} + + + - + Headers - - {expandedSections.headers && ( - - - - )} + + +
diff --git a/src/lib/model-config.ts b/src/lib/model-config.ts index c4708dd..05de65e 100644 --- a/src/lib/model-config.ts +++ b/src/lib/model-config.ts @@ -135,19 +135,6 @@ export const getModelConfigurations = (): ModelConfigurations => ({ isTemplate: false, }, }, - anthropicCached: { - "claude-3-5-sonnet-20240620": { - name: "Anthropic Claude 3.5 Sonnet (Cached)", - temperature: 0.7, - maxTokens: 200000, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - inputTokenCost: 0.000003, - outputTokenCost: 0.000015, - isTemplate: true, - }, - }, anthropic: { "claude-3-5-sonnet-20240620": { name: "Anthropic Claude 3.5 Sonnet", From 39fe8e2ac6bfdf8499b76b00e04211108c4a1e16 Mon Sep 17 00:00:00 2001 From: hamed Date: Thu, 22 Aug 2024 11:05:08 +0200 Subject: [PATCH 14/28] Revert "Revert "Add caching support for Anthropic Sonnet 3.5"" --- package.json | 4 +- pnpm-lock.yaml | 140 ++++++++++++++++----------- src/app/[...openai]/route.ts | 61 +++++++++++- src/app/actions.ts | 44 +++++++-- src/app/stats/page.tsx | 175 ++++++++++++++++++++++++++-------- src/components/LogDetails.tsx | 107 ++++++++++++++++----- src/lib/model-config.ts | 13 +++ 7 files changed, 409 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 8e0b734..21900a1 100644 --- a/package.json +++ b/package.json @@ -13,8 +13,9 @@ "seed": "tsx prisma/seed.ts" }, "dependencies": { + "ai": "^3.3.14", + "@ai-sdk/anthropic": "^0.0.46", "@ai-sdk/amazon-bedrock": "^0.0.17", - "@ai-sdk/anthropic": "^0.0.41", "@ai-sdk/cohere": "^0.0.17", "@ai-sdk/google-vertex": "^0.0.28", "@ai-sdk/mistral": "^0.0.34", @@ -31,7 +32,6 @@ "@radix-ui/react-switch": "^1.1.0", "@t3-oss/env-nextjs": "^0.11.0", "@types/react-syntax-highlighter": "^15.5.13", - "ai": "^3.3.7", "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "date-fns": "^3.6.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cfb507..6468500 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,8 +12,8 @@ importers: specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) '@ai-sdk/anthropic': - specifier: ^0.0.41 - version: 0.0.41(zod@3.23.8) + specifier: ^0.0.46 + version: 0.0.46(zod@3.23.8) '@ai-sdk/cohere': specifier: ^0.0.17 version: 0.0.17(zod@3.23.8) @@ -63,8 +63,8 @@ importers: specifier: ^15.5.13 version: 15.5.13 ai: - specifier: ^3.3.7 - version: 3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + specifier: ^3.3.14 + version: 3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) class-variance-authority: specifier: ^0.7.0 version: 0.7.0 @@ -177,8 +177,8 @@ packages: peerDependencies: zod: ^3.0.0 - '@ai-sdk/anthropic@0.0.41': - resolution: {integrity: sha512-ZGH0Xah9II4jEzDm/z+9G6qf0jC2vWRBURBDTWdQlVUI4COOMd8fmTrqwZrQuAl/y72vYakG5k2AKpJSnY6MeA==} + '@ai-sdk/anthropic@0.0.46': + resolution: {integrity: sha512-44tU2iXrMQmEv+UNZ7Yj9Vl8BM+emRPpDxC2ae94TEEZxyJiCzum6rZ1alc8n5Yq1t22S5JxhlGwpOT5+wV4zQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -225,6 +225,15 @@ packages: zod: optional: true + '@ai-sdk/provider-utils@1.0.15': + resolution: {integrity: sha512-icZqf2kpV8XdSViei4pX9ylYcVn+pk9AnVquJJGjGQGnwZ/5OgShqnFcLYrMjQfQcSVkz0PxdQVsIhZHzlT9Og==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + '@ai-sdk/provider-utils@1.0.7': resolution: {integrity: sha512-xIDpinTnuInH16wBgKAVdN6pmrpjlJF+5f+f/8ahYMQlYzpe4Vj1qw8OL+rUGdCePcRSrFmjk8G/wdX5+J8dIw==} engines: {node: '>=18'} @@ -246,8 +255,12 @@ packages: resolution: {integrity: sha512-nCQZRUTi/+y+kf1ep9rujpbQEtsIwySzlQAudiFeVhzzDi9rYvWp5tOSVu8/ArT+i1xSc2tw40akxb1TX73ofQ==} engines: {node: '>=18'} - '@ai-sdk/react@0.0.43': - resolution: {integrity: sha512-maWuV9529tIVVST9iXgnxBWUoM5Z8DW0lyrMYnsaLJAZ4kostt+PbqJjhy6eAQPzmXGcu4+OdgT1v1ZNCZR4+Q==} + '@ai-sdk/provider@0.0.21': + resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} + engines: {node: '>=18'} + + '@ai-sdk/react@0.0.48': + resolution: {integrity: sha512-KfW33Gj5/qDA6RWfJ42al3QsgIA2UO+x0gX1M6Kk6LY4bTFgy7+F4GLmo4eflM/9o2M7fUZrNddoOuJ15vbgZg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -258,8 +271,8 @@ packages: zod: optional: true - '@ai-sdk/solid@0.0.34': - resolution: {integrity: sha512-puVv9rrskWXrtaikDbpoMkGeTboa4ZY6wTmC66Xw9rhZ0zK5yN15lLJBf/LeBIV6J1V9F9bBxjRX7UQXjE3sZg==} + '@ai-sdk/solid@0.0.38': + resolution: {integrity: sha512-7pMW6leig8Y05UIL8jy/1dEDTjtfA2WG9qkVMWjnKSKiucT/Z5uOO3zWNHYq8EVwdJJnv+RR8gUASXcZLTh7og==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -267,8 +280,8 @@ packages: solid-js: optional: true - '@ai-sdk/svelte@0.0.36': - resolution: {integrity: sha512-5pSaKt+UZK9+9AsbIYLs4REtAc/0HOLX4DK3nRtMcDqDLoWDoSJDKK/EjDMYVhYB1gqQmT0AeiSLo2WH0nf00w==} + '@ai-sdk/svelte@0.0.40': + resolution: {integrity: sha512-S62aB2aT7gjrVY2uDhxwZFBg9hl4wNwu+kd31zsowByC/yyZp9MRIMXkDCkj0qQLFXvfUzaUuzk8v9gvuPOFCQ==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -276,8 +289,8 @@ packages: svelte: optional: true - '@ai-sdk/ui-utils@0.0.31': - resolution: {integrity: sha512-PA1mI+WC69Bc8JCTDOXwhLv9OAfocex/d+MRtQjfuWE6jTBjkBMa6davw+JjN7Vcp6zP0JLQG6gd7n6MnkFepQ==} + '@ai-sdk/ui-utils@0.0.35': + resolution: {integrity: sha512-JZWp5gbH9K0/qmmqv0JFrH97JNMB9dU1xtrR2a8uzRE0wYtNmd3KsM9x3KW/f9OGjxUHzAkrboMvxKv/3uz24w==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -285,8 +298,8 @@ packages: zod: optional: true - '@ai-sdk/vue@0.0.35': - resolution: {integrity: sha512-7cPShsxiyxzoSB5orjCqwnFWvjpM/YX2W+a2K6lyV2Z2JAgHc+4PHhVnrKwc0c9Q7vwfpvW+3MoKM6U2xZaS+w==} + '@ai-sdk/vue@0.0.40': + resolution: {integrity: sha512-01LuQT+Cx2e19fYB4nlMlQhmpJ826S1HfGcB4BY30+/XOJebdHRPPOZ3WV9BytBD7kha/tnngBruiYzegGR+Ug==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -1506,8 +1519,8 @@ packages: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - ai@3.3.7: - resolution: {integrity: sha512-xMfQdOL2s0aiGozdUO0ahOAfcwkGBUye3q4wC64PPNpmE3Qeing1Tv4JSsHk0zymhCMHBDiI1Tky8BNGdu+V6A==} + ai@3.3.14: + resolution: {integrity: sha512-GF3CVS1rnOtgN68OQGlT/2quhg/D3sMFwak48OGXeqv4VRcDgGJx3UqSwT7ipFa9BncRqo7TIqDHHji3Doamaw==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -2326,8 +2339,8 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - google-auth-library@9.13.0: - resolution: {integrity: sha512-p9Y03Uzp/Igcs36zAaB0XTSwZ8Y0/tpYiz5KIde5By+H9DCVUSYtDWZu6aFXsWTqENMb8BD/pDT3hR8NVrPkfA==} + google-auth-library@9.14.0: + resolution: {integrity: sha512-Y/eq+RWVs55Io/anIsm24sDS8X79Tq948zVLGaa7+KlJYYqaGwp1YI37w48nzrNi12RgnzMrQD4NzdmCowT90g==} engines: {node: '>=14'} gopd@1.0.1: @@ -3955,10 +3968,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@ai-sdk/anthropic@0.0.41(zod@3.23.8)': + '@ai-sdk/anthropic@0.0.46(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) zod: 3.23.8 '@ai-sdk/cohere@0.0.17(zod@3.23.8)': @@ -4006,6 +4019,15 @@ snapshots: optionalDependencies: zod: 3.23.8 + '@ai-sdk/provider-utils@1.0.15(zod@3.23.8)': + dependencies: + '@ai-sdk/provider': 0.0.21 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + optionalDependencies: + zod: 3.23.8 + '@ai-sdk/provider-utils@1.0.7(zod@3.23.8)': dependencies: '@ai-sdk/provider': 0.0.15 @@ -4027,46 +4049,50 @@ snapshots: dependencies: json-schema: 0.4.0 - '@ai-sdk/react@0.0.43(react@18.3.1)(zod@3.23.8)': + '@ai-sdk/provider@0.0.21': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + json-schema: 0.4.0 + + '@ai-sdk/react@0.0.48(react@18.3.1)(zod@3.23.8)': + dependencies: + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) swr: 2.2.5(react@18.3.1) optionalDependencies: react: 18.3.1 zod: 3.23.8 - '@ai-sdk/solid@0.0.34(zod@3.23.8)': + '@ai-sdk/solid@0.0.38(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) transitivePeerDependencies: - zod - '@ai-sdk/svelte@0.0.36(svelte@4.2.18)(zod@3.23.8)': + '@ai-sdk/svelte@0.0.40(svelte@4.2.18)(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) sswr: 2.1.0(svelte@4.2.18) optionalDependencies: svelte: 4.2.18 transitivePeerDependencies: - zod - '@ai-sdk/ui-utils@0.0.31(zod@3.23.8)': + '@ai-sdk/ui-utils@0.0.35(zod@3.23.8)': dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod-to-json-schema: 3.22.5(zod@3.23.8) optionalDependencies: zod: 3.23.8 - '@ai-sdk/vue@0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': + '@ai-sdk/vue@0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)': dependencies: - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) swrv: 1.0.4(vue@3.4.38(typescript@5.5.4)) optionalDependencies: vue: 3.4.38(typescript@5.5.4) @@ -4602,7 +4628,7 @@ snapshots: '@google-cloud/vertexai@1.4.1(encoding@0.1.13)': dependencies: - google-auth-library: 9.13.0(encoding@0.1.13) + google-auth-library: 9.14.0(encoding@0.1.13) transitivePeerDependencies: - encoding - supports-color @@ -5597,15 +5623,15 @@ snapshots: indent-string: 4.0.0 optional: true - ai@3.3.7(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): + ai@3.3.14(openai@4.55.7(encoding@0.1.13)(zod@3.23.8))(react@18.3.1)(sswr@2.1.0(svelte@4.2.18))(svelte@4.2.18)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8): dependencies: - '@ai-sdk/provider': 0.0.19 - '@ai-sdk/provider-utils': 1.0.11(zod@3.23.8) - '@ai-sdk/react': 0.0.43(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.34(zod@3.23.8) - '@ai-sdk/svelte': 0.0.36(svelte@4.2.18)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.31(zod@3.23.8) - '@ai-sdk/vue': 0.0.35(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) + '@ai-sdk/provider': 0.0.21 + '@ai-sdk/provider-utils': 1.0.15(zod@3.23.8) + '@ai-sdk/react': 0.0.48(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.38(zod@3.23.8) + '@ai-sdk/svelte': 0.0.40(svelte@4.2.18)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.35(zod@3.23.8) + '@ai-sdk/vue': 0.0.40(vue@3.4.38(typescript@5.5.4))(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0 @@ -6263,8 +6289,8 @@ snapshots: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) eslint-plugin-react: 7.35.0(eslint@8.57.0) eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) @@ -6282,13 +6308,13 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0): + eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 4.3.6 enhanced-resolve: 5.17.1 eslint: 8.57.0 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) fast-glob: 3.3.2 get-tsconfig: 4.7.6 is-core-module: 2.15.0 @@ -6299,18 +6325,18 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0): + eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: debug: 3.2.7 optionalDependencies: '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0): + eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): dependencies: array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 @@ -6320,7 +6346,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0) + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) hasown: 2.0.2 is-core-module: 2.15.0 is-glob: 4.0.3 @@ -6671,7 +6697,7 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - google-auth-library@9.13.0(encoding@0.1.13): + google-auth-library@9.14.0(encoding@0.1.13): dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index b427adf..5fb01b2 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -27,6 +27,12 @@ async function getAIModelClient(provider: string, model: string) { }); return anthropicClient(model); } + case "anthropiccached": { + const anthropicClient = createAnthropic({ + apiKey: env.ANTHROPIC_API_KEY, + }); + return anthropicClient(model, { cacheControl: true }); + } case "cohere": { const cohereClient = createCohere({ apiKey: env.COHERE_API_KEY, @@ -100,11 +106,31 @@ export async function POST( const aiModel = await getAIModelClient(provider, model); + let modifiedMessages = messages; + + if (provider.toLowerCase() === "anthropiccached") { + modifiedMessages = messages.map((message: any) => { + if (message.name === "potential_context") { + return { + ...message, + experimental_providerMetadata: { + anthropic: { cacheControl: { type: "ephemeral" } }, + }, + }; + } + return message; + }); + } + const logEntry = { method: "POST", url: `/api/${endpoint}`, headers: JSON.stringify(Object.fromEntries(request.headers)), - body: JSON.stringify(body), + body: JSON.stringify({ + ...body, + messages: modifiedMessages, + model: model, + }), response: "", timestamp: new Date(), metadata: { @@ -122,15 +148,23 @@ export async function POST( if (stream) { const result = await streamText({ model: aiModel, - messages, + messages: modifiedMessages, maxTokens: provider === "anthropic" ? 8192 : undefined, - async onFinish({ text, toolCalls, toolResults, usage, finishReason }) { + async onFinish({ + text, + toolCalls, + toolResults, + usage, + finishReason, + ...otherProps + }) { logEntry.response = JSON.stringify({ text, toolCalls, toolResults, usage, finishReason, + ...otherProps, }); await insertLog(logEntry); }, @@ -234,6 +268,8 @@ export async function GET( return testOpenAI(); } else if (endpoint === "test/anthropic") { return testAnthropic(); + } else if (endpoint === "test/anthropiccached") { + return testAnthropicCached(); } else if (endpoint === "test/cohere") { return testCohere(); } else if (endpoint === "test/mistral") { @@ -259,6 +295,25 @@ async function testOpenAI() { } } +async function testAnthropicCached() { + try { + const model = anthropic("claude-3-5-sonnet-20240620", { + cacheControl: true, + }); + + const result = await generateText({ + model, + messages: [ + { role: "user", content: 'Say "Hello from Anthropic and Vercel"' }, + ], + }); + return NextResponse.json({ provider: "Anthropic Cached", result }); + } catch (error) { + console.error("Error testing Anthropic:", error); + return NextResponse.json({ error: String(error) }, { status: 500 }); + } +} + async function testAnthropic() { try { const anthropicClient = createAnthropic({ diff --git a/src/app/actions.ts b/src/app/actions.ts index 755a3fc..1bc61e1 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -75,12 +75,15 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens: number; totalPromptTokens: number; totalCompletionTokens: number; - perModelStats: { + perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; + cost: number; + provider: string; + model: string; }; }; tokenUsageOverTime: { @@ -115,15 +118,20 @@ export async function getStats(timeFilter = "all"): Promise<{ }, }); - const perModelStats: { + const perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; + cost: number; + provider: string; + model: string; }; } = {}; + const configCosts = await getConfigurationCosts(); + let totalTokens = 0; let totalPromptTokens = 0; let totalCompletionTokens = 0; @@ -137,24 +145,42 @@ export async function getStats(timeFilter = "all"): Promise<{ for (const log of logs) { const metadata = log.metadata as Record; const model = (metadata.model as string) || "unknown"; - if (!perModelStats[model]) { - perModelStats[model] = { + const provider = (metadata.provider as string) || "unknown"; + const key = `${provider}:${model}`; + + if (!perModelProviderStats[key]) { + perModelProviderStats[key] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, + cost: 0, + provider, + model, }; } - perModelStats[model].logs += 1; + perModelProviderStats[key].logs += 1; try { const responseObj = JSON.parse(log.response); const tokens = responseObj.usage?.totalTokens || 0; const promptTokens = responseObj.usage?.promptTokens || 0; const completionTokens = responseObj.usage?.completionTokens || 0; - perModelStats[model].tokens += tokens; - perModelStats[model].promptTokens += promptTokens; - perModelStats[model].completionTokens += completionTokens; + perModelProviderStats[key].tokens += tokens; + perModelProviderStats[key].promptTokens += promptTokens; + perModelProviderStats[key].completionTokens += completionTokens; + + // Calculate cost + const costConfig = configCosts.find( + (c) => c.provider === provider && c.model === model, + ); + if (costConfig) { + const cost = + promptTokens * costConfig.inputTokenCost + + completionTokens * costConfig.outputTokenCost; + perModelProviderStats[key].cost += cost; + } + totalTokens += tokens; totalPromptTokens += promptTokens; totalCompletionTokens += completionTokens; @@ -185,7 +211,7 @@ export async function getStats(timeFilter = "all"): Promise<{ totalTokens, totalPromptTokens, totalCompletionTokens, - perModelStats, + perModelProviderStats, tokenUsageOverTime, }; } diff --git a/src/app/stats/page.tsx b/src/app/stats/page.tsx index 0108eeb..e726395 100644 --- a/src/app/stats/page.tsx +++ b/src/app/stats/page.tsx @@ -32,19 +32,30 @@ import { SelectValue, } from "@/components/ui/select"; import { Skeleton } from "@/components/ui/skeleton"; +import { Checkbox } from "@/components/ui/checkbox"; interface Stats { totalLogs: number; totalTokens: number; - perModelStats: { + totalPromptTokens: number; + totalCompletionTokens: number; + perModelProviderStats: { [key: string]: { logs: number; tokens: number; promptTokens: number; completionTokens: number; cost: number; + provider: string; + model: string; }; }; + tokenUsageOverTime: { + date: string; + tokens: number; + promptTokens: number; + completionTokens: number; + }[]; } const chartConfig = { @@ -53,12 +64,20 @@ const chartConfig = { color: "hsl(var(--chart-1))", }, tokens: { - label: "Tokens", + label: "Total Tokens", color: "hsl(var(--chart-2))", }, + promptTokens: { + label: "Input Tokens", + color: "hsl(var(--chart-3))", + }, + completionTokens: { + label: "Output Tokens", + color: "hsl(var(--chart-4))", + }, cost: { label: "Cost ($)", - color: "hsl(var(--chart-3))", + color: "hsl(var(--chart-5))", }, }; @@ -71,6 +90,11 @@ export default function StatsPage() { const [tokenUsageOverTime, setTokenUsageOverTime] = useState< { date: string; tokens: number }[] >([]); + const [selectedMetrics, setSelectedMetrics] = useState([ + "logs", + "tokens", + "cost", + ]); useEffect(() => { const fetchData = async () => { @@ -81,25 +105,30 @@ export default function StatsPage() { getConfigurationCosts(), ]); - const perModelStats: Stats["perModelStats"] = {}; + const perModelProviderStats: Stats["perModelProviderStats"] = {}; for (const config of configData) { - perModelStats[config.model] = { + perModelProviderStats[`${config.provider}:${config.model}`] = { logs: 0, tokens: 0, promptTokens: 0, completionTokens: 0, cost: 0, + provider: config.provider, + model: config.model, }; } - for (const [model, modelStats] of Object.entries( - statsData.perModelStats, + for (const [key, modelStats] of Object.entries( + statsData.perModelProviderStats, )) { - const costData = costsData.find((c) => c.model === model); + const [provider, model] = key.split(":"); + const costData = costsData.find( + (c) => c.provider === provider && c.model === model, + ); const inputTokenCost = costData?.inputTokenCost || 0; const outputTokenCost = costData?.outputTokenCost || 0; - perModelStats[model] = { + perModelProviderStats[key] = { ...modelStats, cost: modelStats.promptTokens * inputTokenCost + @@ -110,7 +139,10 @@ export default function StatsPage() { setStats({ totalLogs: statsData.totalLogs, totalTokens: statsData.totalTokens, - perModelStats, + totalPromptTokens: statsData.totalPromptTokens, + totalCompletionTokens: statsData.totalCompletionTokens, + perModelProviderStats, + tokenUsageOverTime: statsData.tokenUsageOverTime, }); setTokenUsageOverTime(statsData.tokenUsageOverTime); setConfigurations(configData); @@ -124,6 +156,14 @@ export default function StatsPage() { fetchData(); }, [timeFilter]); + const handleMetricToggle = (metric: string) => { + setSelectedMetrics((prev) => + prev.includes(metric) + ? prev.filter((m) => m !== metric) + : [...prev, metric], + ); + }; + if (loading) { return (
@@ -171,18 +211,21 @@ export default function StatsPage() { if (!stats) return null; - const chartData = Object.entries(stats.perModelStats).map( - ([model, data]) => ({ - model, + const chartData = Object.entries(stats.perModelProviderStats).map( + ([key, data]) => ({ + provider: data.provider, + model: data.model, logs: data.logs, tokens: data.tokens, + promptTokens: data.promptTokens, + completionTokens: data.completionTokens, cost: data.cost, }), ); - const pieChartData = Object.entries(stats.perModelStats).map( - ([model, data]) => ({ - name: model, + const pieChartData = Object.entries(stats.perModelProviderStats).map( + ([key, data]) => ({ + name: key, value: data.logs, }), ); @@ -238,7 +281,7 @@ export default function StatsPage() {

$ - {Object.values(stats.perModelStats) + {Object.values(stats.perModelProviderStats) .reduce((sum, data) => sum + data.cost, 0) .toFixed(2)}

@@ -246,9 +289,27 @@ export default function StatsPage() {
+
+ {Object.entries(chartConfig).map(([key, config]) => ( +
+ handleMetricToggle(key)} + /> + +
+ ))} +
+ - Per Model Statistics + Per Model and Provider Statistics @@ -268,26 +329,64 @@ export default function StatsPage() { orientation="right" stroke="currentColor" /> - } /> - } /> - - - { + if (active && payload && payload.length) { + return ( +
+

{`${payload[0].payload.provider}: ${payload[0].payload.model}`}

+ {payload.map((entry) => ( +

+ {`${entry.name}: ${entry.value}`} +

+ ))} +
+ ); + } + return null; + }} /> + } /> + {selectedMetrics.includes("logs") && ( + + )} + {selectedMetrics.includes("tokens") && ( + + )} + {selectedMetrics.includes("promptTokens") && ( + + )} + {selectedMetrics.includes("completionTokens") && ( + + )} + {selectedMetrics.includes("cost") && ( + + )}
@@ -321,7 +420,7 @@ export default function StatsPage() { - Model Usage Distribution + Model and Provider Usage Distribution diff --git a/src/components/LogDetails.tsx b/src/components/LogDetails.tsx index 62cb4c3..beb8af7 100644 --- a/src/components/LogDetails.tsx +++ b/src/components/LogDetails.tsx @@ -36,6 +36,11 @@ export default function LogDetails({ logId }: LogDetailsProps) { null, ); const searchParams = useSearchParams(); + const [expandedSections, setExpandedSections] = useState({ + response: true, + body: true, + headers: true, + }); useEffect(() => { const fetchLog = async () => { @@ -67,6 +72,13 @@ export default function LogDetails({ logId }: LogDetailsProps) { loadTheme(); }, [logId, searchParams]); + const toggleSection = (section: "response" | "body" | "headers") => { + setExpandedSections((prev) => ({ + ...prev, + [section]: !prev[section], + })); + }; + if (error) { return ( @@ -249,26 +261,14 @@ export default function LogDetails({ logId }: LogDetailsProps) { )} )} - {parsedContent && parsedContent.text && ( -
-

AI Response

- {renderAIResponse(parsedContent)} -
- )} - {parsedContent && parsedContent.messages && ( -
-

- Messages (Most recent on top) -

- {renderMessages(parsedContent.messages)} -
- )} + {(isExpanded || !isExpandable) && ( )} + + {parsedContent && parsedContent.text && ( +
+

AI Response

+ {renderAIResponse(parsedContent)} +
+ )} + + {parsedContent && parsedContent.messages && ( +
+

+ Messages (Most recent on top) +

+ {renderMessages(parsedContent.messages)} +
+ )} ); }; @@ -293,30 +309,69 @@ export default function LogDetails({ logId }: LogDetailsProps) {

{log.timestamp}

- + Response + - - - + {expandedSections.response && ( + + + + )} - + Body + - - - + {expandedSections.body && ( + + + + )} - + Headers + - - - + {expandedSections.headers && ( + + + + )}
diff --git a/src/lib/model-config.ts b/src/lib/model-config.ts index 05de65e..c4708dd 100644 --- a/src/lib/model-config.ts +++ b/src/lib/model-config.ts @@ -135,6 +135,19 @@ export const getModelConfigurations = (): ModelConfigurations => ({ isTemplate: false, }, }, + anthropicCached: { + "claude-3-5-sonnet-20240620": { + name: "Anthropic Claude 3.5 Sonnet (Cached)", + temperature: 0.7, + maxTokens: 200000, + topP: 1, + frequencyPenalty: 0, + presencePenalty: 0, + inputTokenCost: 0.000003, + outputTokenCost: 0.000015, + isTemplate: true, + }, + }, anthropic: { "claude-3-5-sonnet-20240620": { name: "Anthropic Claude 3.5 Sonnet", From 3142fce971ed21130b782ed039a14571d603ebbf Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 11:10:35 +0200 Subject: [PATCH 15/28] Update screenshot --- README.md | 2 +- public/cl-stats.jpeg | Bin 0 -> 169355 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/cl-stats.jpeg diff --git a/README.md b/README.md index e91785a..c749e39 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ For full details on each step, please see the [Installation Guide](https://www.c ## Stats page -![Cursor Lens Stats](public/cl-stats.png) +![Cursor Lens Stats](public/cl-stats.jpeg) ## Contributing diff --git a/public/cl-stats.jpeg b/public/cl-stats.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..2364ce8ecd77b7c2955124c1de01df35ede0147d GIT binary patch literal 169355 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�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 z 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Î>#UL@LSkDgHv6VjomayEvPC=ZCO; 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 literal 0 HcmV?d00001 From 1d505b4b58d027dfba85ad9aa171394ed2e60e37 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 11:20:22 +0200 Subject: [PATCH 16/28] Set max token for both anthropic providers --- src/app/[...openai]/route.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 5fb01b2..87ce5a0 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -149,7 +149,11 @@ export async function POST( const result = await streamText({ model: aiModel, messages: modifiedMessages, - maxTokens: provider === "anthropic" ? 8192 : undefined, + maxTokens: ["anthropic", "anthropiccached"].includes( + provider.toLowerCase(), + ) + ? 8192 + : undefined, async onFinish({ text, toolCalls, From 6f081ae0e47fa97e555b0709c2174d56341e66d6 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 11:34:40 +0200 Subject: [PATCH 17/28] Log the input object to streamText in full --- src/app/[...openai]/route.ts | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 87ce5a0..6a2553c 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -122,14 +122,25 @@ export async function POST( }); } + const streamTextOptions = { + model: aiModel, + messages: modifiedMessages, + maxTokens: ["anthropic", "anthropiccached"].includes( + provider.toLowerCase(), + ) + ? 8192 + : undefined, + // Add other parameters from defaultConfig if needed + }; + const logEntry = { method: "POST", url: `/api/${endpoint}`, headers: JSON.stringify(Object.fromEntries(request.headers)), body: JSON.stringify({ ...body, - messages: modifiedMessages, - model: model, + ...streamTextOptions, + model: model, // Use the model from defaultConfig }), response: "", timestamp: new Date(), @@ -147,13 +158,7 @@ export async function POST( if (stream) { const result = await streamText({ - model: aiModel, - messages: modifiedMessages, - maxTokens: ["anthropic", "anthropiccached"].includes( - provider.toLowerCase(), - ) - ? 8192 - : undefined, + ...streamTextOptions, async onFinish({ text, toolCalls, From 82b4b3e60bc683ffc903655619e66ffe0c89edaa Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 11:47:15 +0200 Subject: [PATCH 18/28] Apply Cache control to Cursor Tab messages as well (to the second object) --- src/app/[...openai]/route.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index 6a2553c..bea7084 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -109,6 +109,10 @@ export async function POST( let modifiedMessages = messages; if (provider.toLowerCase() === "anthropiccached") { + const hasPotentialContext = messages.some( + (message: any) => message.name === "potential_context", + ); + modifiedMessages = messages.map((message: any) => { if (message.name === "potential_context") { return { @@ -120,6 +124,15 @@ export async function POST( } return message; }); + + if (!hasPotentialContext && modifiedMessages.length >= 2) { + modifiedMessages[1] = { + ...modifiedMessages[1], + experimental_providerMetadata: { + anthropic: { cacheControl: { type: "ephemeral" } }, + }, + }; + } } const streamTextOptions = { From ce6072d82d9e2025c43c5d12418bf16ca440d560 Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 13:54:30 +0200 Subject: [PATCH 19/28] Update README --- README.md | 56 ++++++++++++++++++++++++++++++ public/ant-cache-create.png | Bin 0 -> 53354 bytes public/ant-cache-read.png | Bin 0 -> 64490 bytes public/anthropicCashedXConfig.png | Bin 0 -> 460695 bytes 4 files changed, 56 insertions(+) create mode 100644 public/ant-cache-create.png create mode 100644 public/ant-cache-read.png create mode 100644 public/anthropicCashedXConfig.png diff --git a/README.md b/README.md index c749e39..5d22146 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,62 @@ For full details on each step, please see the [Installation Guide](https://www.c ![Cursor Lens Stats](public/cl-stats.jpeg) +## Prompt caching with Anthropic (v0.1.2): + +1. Create a new config on `/configuration` page, choose `antropicCached` with Sonnet 3.5. Name it as you like. +2. Mark it as default. +3. Use Cursor with CursorLens as normal. The system and context messages in `CMD+L` and `CMD+i` chats will be cached from now on. + +> Note that TTL for the cache is 5 minutes. + +![Add a new config with Antropic Cached](public/anthropicCashedXConfig.png) +![Example Cache creation response](public/ant-cache-create.png) +![Example Cache read response](public/ant-cache-read.png) + +## [0.1.2-alpha] - 2024-08-22 + +### ⚠️ ALPHA RELEASE + +### Added + +- Add Anthropic Cache support for context messages +- Increase Token limit for Anthropic to 8192 tokens +- Improved statistics page: Now you can select the data points you want to see +- Log details are now collapsible +- Full response is captured in the logs + +[View release on GitHub](https://github.com/HamedMP/CursorLens/tree/v0.1.2-alpha) + +## [0.1.1-alpha] - 2024-08-18 + +### ⚠️ ALPHA RELEASE + +### Added + +- Added support for Mistral AI, Cohere, Groq, and Ollama + +## [0.1.0-alpha] - 2024-08-17 + +This is the initial alpha release of CursorLens. As an alpha version, it may contain bugs and is not yet feature-complete. Use with caution in non-production environments. + +### Added + +- Initial project setup with Next.js +- Basic proxy functionality between Cursor and AI providers (OpenAI, Anthropic) +- Simple dashboard for viewing AI interaction logs +- Token usage tracking for OpenAI and Anthropic models +- Basic cost estimation based on token usage +- Support for PostgreSQL database with Prisma ORM +- Environment variable configuration for API keys and database connection +- Basic error handling and logging + +### Known Issues + +- Limited error handling for edge cases +- Incomplete test coverage +- Basic UI with limited customization options +- Potential performance issues with large volumes of requests + ## Contributing We welcome contributions to Cursor Lens! Please see our [Contributing Guide](CONTRIBUTING.md) for more details on how to get started. diff --git a/public/ant-cache-create.png b/public/ant-cache-create.png new file mode 100644 index 0000000000000000000000000000000000000000..67921fc66c638a3e0e86d368aca267af0c9468c2 GIT binary patch literal 53354 zcmdqIQ*>n87dIN4opfy59ox3;q+{DQIvulP+crD4ZQIGM^Z!ntbH0cBcAsv>t{Qt( ztvze5>G_*0;qtO#@Gw{~KtMq765_&&KtQ0wKtRAZP#}O$nq}>pfPmomz6%M-O9%-O z$UE4Yez!6K0um2TRD)Dk8bQm_`Vq%(4h)tbv;hW837j7^1tLx#P#i?UPr*nA_LZx( zcxz<`spf8~I5OTfap-)IaZlr1?bU=O-yR?OBF_b$V;uq_($LLG>PW`uGCVElmyHF`cDBzXPDNUMVQ$o)*-qJxN> z8osl?F=qDcYD20G=^T`xzlaOFXMF!OI7{^>VSG~xG!c+}x zR!c$t3SYz8j}OM(!q-nhs)dzQd?gm$`~|HXb1HBtbqG4bZwYD#$v{^*|HtGoYEU&{ z2sKzH6@@-Ie>vi{U?&N??s1(4H>E5lY{eLAU5exfw-`+uyNTKcf^N!P?dUE)iM zhk}bBQ$K1LEiAZ%0#cdK8Oca=to%z9-KePu{7YDYeeD}9VazV95a`zzb%R2764_(D zGTJ0EaUv~8JOnPH7gp(^$BVx$I-d#v=>Vp{P+u-nP z$xOuDfNu5y^$eoXNQIZ(gSU2hOk0GS^n37@+rn1hj0u>Dv|Wf`AZ^0%^J-VA{cb3r>H?ez-38^vsWt43CE)7p;tb0F;H}W!xzRt`g&n4Q z>T0ur5A?(e4+n?yJ`v0YT)m0H`ytlp*a-J@EDyf*hFqzvUA$$t><_g01?x(J8HlVK zWU2SL83b_)6oj7v3UZnNINuMN;nk{nVn81z1^6J~i#$Y<|GYlW5?EtEramG&&`A%Y z9ZUvzGCx-{!bR`=EV!;8?-hcVC{j?6JTjJ{UkZ_G80by}0}>wzM!4`!94ZO!h+t3{ zYO4Qlq0zXn!yd-4iqU6cF$6_%u;P#o*zRF>1Xb~J6d|R*IExuAqGN{eH2Ns2HrG_*ofjYu?7 zQKwyiy1Z2>M>!qf-4V_RnY9;d4(PiQ&WMy7G~156zJHQ!N3iXw+CjYLeZ%&bWFTTk zYKOM!RTo4vfcX_9FS{hmF3k>_T|n2%MHF8wR!`{BYsMIyB9tMkExpFSCdDmrM!-w< zkRVP1`U7+%8C7N{4n~|b-#LFhpKRu)oNP*xgUywkb169r`3jZx^1HR7Rb(2onh6CX(-{RC zzubjy3r)MwWX43OHL3M1YZmA#U^UlQNUSZ-^{ulWyv{3DiW=}|8PdR`MRsQnrW>ax zrdplCI9WNZGI27QGI=>{>B`JCd(+=B?==Qn4dz5fmH&*0XKW_eUWSxiqn)d48)%4`@GW|aD&id;7 zlK$-YR`!Mut`2qu(g?|Iw8H3^(w0gOnh84K9}2oz*RH{=K^|D0GnF%w)2M&G)xUM$ zgDCi0s8-NI@I`Q4s3dH$@^Zt^O1n-+lO3@r5=wt&ibb<&!J4 zKeQCe1=$LjBuaV$%a55Kr3oA4kfc@O7dTuFXTNKb72%Y?DB(-;=kn*yOWt<_hAQwD z6A!Xff4CU6k3W^{(n~XB#IbEZ2}g%#ghS3kACDZj&2-u2a;Ri{z`2N;h~g&?==6E_ zz;0FS++TS=Q$I~Ic{8gSyO=$jR{TC0d6=Y|y!cuTb_!nQ(Cfgu-#!^Vu^!JAmz>eW zrbo)h^BE?ul|pTmYRvTgBp)F@uvmDGW7+fOWW;+1>e>aG2$TLh#gsqaO@*S?G5t(v zuut&UVEjT784h+8%ThawQ z!Pb$Yw3aF&e_NjKu(fc1`u9Z`o z3iUhJqm0z2s?%zTl^$&#J14OFHv8!d@(bdNPL$T2$3uaYay2$D^O*6#~ z3j43{?eJ=>5LV^u#_c6mvqj?p<4ui0HYH`Xl~kLOYnsjX$Bp^chdxGcsvYZgp34ta zTtQr%u7l@RB@gA58z%LZ-{CchD~^{l8{53)rm{jbhgN7k?;n!RL0|J=tiM0@S>stdC-cy=)q6IuxkO#C+Yfw>mXryoP3juywK?&ecnn4N zV>j6puAj9Jw9R{ST|Sg?1-tTYW;({&Ro!(Syx%~IB9?wszZ%&Vi5*^t3Lt9X5Ae0V zro284po}EY>)d85W+(A6d#kRWuXvY}=NG*{Hy`TI3)AyHCcTy1o9#=jCWn5&Je4)r zTInrPUzhnWMs8xXFJCX5TRZwne+IffU-EX*zw2Ka9EuGNIcERh<9X%Yhdmx!sdCZ7 z?h^58V~gWsAlM1xxX}ZKV`X7R@mu5q$|(fm4}4`FWgqyEvk5btq!QcWGZ?^Au)zbG z>-~IO(tUDuMDg=p-FkpMvCIcX5&|dafz8Pig>UHTNb}O8WF}gJw2FC2i_ZrBh^BnV z;M;q@#T-^%@18vL1*Qz~GTkDciU4#J>?Z0GrZO@>RDgRZAmGsNKwyA7V89Ct@B#t? z$pQKE3FvSR=%0Jwo4>wvSgMf&0^$df5Ef8&13t@ybVHqA9F(}sBnb)v6BI0l#s!9r zC@!W@uhtil|D?!{hyYhWYEzdN03X=+T4MkTu0V4qO8^GtA1CM`C*JAmNY0k9{A1iS z;ml^k`=)!HtLekk&vF6~blm?gCnt~zTwI_-TT1_)KuB1X z%=C0A6>Cb71!CYY1pmA2a6nKOVjSsK-N+0K406SwPFXL~*5m&Wi1UO0l2hH-lVFH1 z#A&}1gkdf(ALkvFl1K7~0D=Dk3BSR5niFp8`P`f`BOi=qDDPwj&fgrw`L%#il#i1R zIADPc#o+e6C>wKfafykpETk!q%ReW9iTnM1t@r^2J7e>^EYZQh!Vavx+@Bs+C+zkA z^SyXCH-OaxdqYYgFc=sZVOH9OkSm7RKLm1&kaMap)DKr9>YN=N6FjhfjaDo%r4#+b zC$J~UmPKsfLCR`mcR{l5iNYfc99+hg2)~coWS@IuheqdHXK*0^s8Bnhn z5J3$~sG>Y;_4V~SZ7wB_DP;f9^hXf)>um+iaypg9OrK9qOsvqTJ4mUG)p%$(g2W#QhJN{PYwQ z9DIK=Z`m6JEtN!beShDO&S97H&w3L5Nr1(kKcAHh`dn@G{BBhf5CD!^*n#@_@H>@R zr6A>B(+6mU7Q_ksJ8iA?+C^Gx^3mM#^7F4yyokuizSX6rC00D>wtqa0z&}R956u#i z`|_&n<7qc`pkG^C8^el4K{PpgbIHItyFik6T|6eEa1JmRO zPyoNOYPK*pFUDBU;_myM#|I%K<0MN$fB2>kim?@C5 zw6vU7-|X~8r%`7x{f%*kN{m}oF$bMa_>Y4DevV*^WKT^fBvBC%4XZVv*S;XhwA434 zS-T!%eJ{W(pOrQ=%yq`9?NEh)!>~KdbZu>GD+_h`e1AOL+bjOBvjTsqh5^Q~vhz?rgb^nwommR~iTS--YZfz^wu72gfqv;z%f3on9O& z4Mtf;6A^#nL-!yQz(S44`z8C34=h*~%4x^NV)3FQuvx7r=;@ng_?O`RCFX?sm&3ak z{)!q{UOx956GyAC`&5V&<}c1FZ6%`Q9;S%(i7eX(E$rcj{m~y~%1hS1*L)zx^$Ai zNG^1a4qx1ebmw|^D4ABvhnbtgFDNKl8&F#RO%4RWqTt)#{u2rT8&Ds(Q@_;mZ zo|LBPvJR}Pis~W;jnP;taHq{IT{If;o2S`D2(J4{#wOdL)w0@@?ym1asu>6r2y%@_9*`Cb}6p92bw2tE;kthLYCmh(z-Aao9=F$wt%c z=?HoD@5xEFh3CH<<7z5}(a5I#S~M^;<&Re)0MgS6u&iMpDgv$=&BBxcsR?J`&Nioe zbP$gRHk))gM@iA9RF9sc#gg`NZG=*%ZtJ9}N779<@XE@pP}7{ccagE`K^d2 ziS$nfGKU4o*;=55_LZV)4*KW^lSnF|j!Ff}^7DX-H3uB?Yw4{kL!DKT=~vb!g${>_ zinVBt@$7QM4Ts!`AuJ=BVlHnx9LBvNdb?&C>H?b+d3ppv%G5 zSI>4)&WHEm)OVQ)C46Ju+cpye1@i=R?^0JwOG{NjNm-Lr_zkjb2KlQjTBn26;&oo{ zmFnKBTMH4+(k8<4cBJ%#@K!>#~*j#*F5y+KMM7n4e}u$5t?sD@xGz88DG zKNXK0y4>F`coPwr`L6zaAB-SQ)4Z`xMnY7MjlP4vadozLp`)z=T$ELFn2CTTx7)GD zwIpBgE+#0v9^xi8vglGk9H`1HZzD@%OcF`)DK*~q37rk%d9#$VFfI|9zTI=a7z>zK z<+Bx5>8WR;d_iaPT4Bkqu1=t&{G`!PG+l$&)QSB5Psk|)isjzFEjv9euRpt49*I95gs0Y`CUXPg+IwF)@RT#^#Edgj?ituLJS^-zJ!vRFN zBivnT$2dO=IA}W*4yddOv<0D8u&|`~Y`}n{;T3}4ae(f)RN`Q9XNsZ>ek| z8-od5C99*Zs=hmyh~@gna=6;~^3TjgyD~rMQ3w;FrOow}YEgGalCVYBF22^c`1~vd z_-QI4PEP_;e9`+oE=XfbrkbtB4Wp2t;U;l6_vX+ef@9r*f_V!A_>{{@Y?8Zr3O`?D zCPd`BE4FGiKLLaHp#^OqWI_R9+6>{fjWan*CoV$lpWz11rC7GVs$XT&>W?#B_Xz(D z+?wft{>u`@=Ja9ng$&;JL|5bj zx}MVNjX@LEG!)!PEUi?C5oq~z-j~2AMt5TiZUlh<-zTM)nJVWP%qHzG-m?Siaorf) zYZ(R}=*~kEO9Wq@T<6D#87Q9@oO0z{2j(*4mFzEbb(Rz%SKe2H`$V8(ZbgGigTJu~ z|18Do#Jo}#aG(CDNHE-z&OII*D(i{h^VO(*`2{R#7zg;#Zz`Hktd^I$B}Gb$6_y5; z<+6Y3ohcfS@w)SGW#7>nO+b$CwMO8I>m-D3Bwb$zMN8?;z1Ht!H%9S;Kk-Rfr*ZsTi6fg`n@#)RXGjfxWq(w`BxL^WOJ2 zDak&M=r(F)*b6u9e#y@6CjQWMSU!tZREd;+_eC-Mx%vgCS0=0w=)%nBgIp?Mxwq-F z^VxLtWFGwZn5*l};Zu&Uq57LD`9I+o4H)LsblV}L_jMLEbFpip#^8)$9c>n=P4LoC z&3YSRomRWaeS1W3Al?0?fDr^Z{{dwT{t2HA+I&4JVNCVJYSOfGtE$~VEU=5+V*e}E zwhV|D)|>iot8snC-zG0gt8<}0PIXdwR64g7^)N^;c=QFj9{1Pp%V6g3>yNEpVUdP} z_UN)QDJ~4^gUeq!bBoPahwwjNj`BvzROgl1ghOg9$gQIOR8!pyz>e7|*p=hjZKT!2 z1y?7xt%gq>xz3$Pg1Y$QG(tdDZesiby4;*^Wt+@`Z_b@_OfENm>;oMbtU8$0yMa{%2#SS#ls zVu8UOzIDd>E zn2VG@vLQ38ISB!KPR-Brqs*4_Yh0l@15;Uf%HZf=G@P%0A(LE0I1=>}G~!RCHuVYp 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 xq8kBo71xMhXN3Vgd;Q_=H)~Ng4>~Bd@8T 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

u}ZTy*Nowk;#sRn2G3U`$?AWKSx(#8P%E9` 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�J zkcw$@Sc$Y9pzPcC`)?}uJU=ydN1P@ZG(Wqx7+8Ir2Cuz4ypMigEL-}(A>gnod2Dox{J;IhvuCGUw*rI*8s0F4*D$WDyvj!7}Vji)5sUr#{mCbJhqGb;|i5p3#+WrUiyFh3jm5g zeu1LT>4v`7S|rm~8-$(@i*QokpZlN6mKLZ%6=!Gq?-j8jz#*K)qP79jFd@>k2ZbFU z7seVd0>x&T657Gx+0zoJAVkm8AO;wH1{~B40t4GeAu7AjPZ;D9BJRqbyCwIqz0{g} z4o>z^P&c7rCzQhBF@a#upO1~39vvX&y>9ajrla8jbB=DJaNu%(4g?7CtXPQlBOzGFD`r2GdNm&= z#wxk>23mFhMhNZF%~{J8BIy5sj9AwV5FsqaSJ0T-UoAg))-rRy+XmmE>7BTBCSyl~ zjwQxKhkW)0tRK&b9nYn6p0->UilMOz;3#tLjoyl-%CmdZQ2! z)%mEL<55-tp{%U#;grBZT?9d1!rho(GBrAC@OaklzFerVc-AtAbbE&N>j#PI`F_Cs z(k=Gyd91|rK`Y>7F$bnP;sX&TsZ%xThXW;jWg7X}>Y0OlD=1MrF6D z%rrUu{tg#=C32Nj4QQF5iEGqubh|jqbmf zakSRkV&hDhn|z**MYJNA<{)3FywjPrA;0FGk9^Y}sU7PzELsMdDMD`JAfir<#9rRd0W=5e=yNO2)4ZtRP8W0zbf6uJn7; z*a$MKbgequv2@ zI&H&feBP3KCpG2Ix3C9_?%svBM!EtW(z$DE{(^!$sT2R}G+$kP}rk z=i{=*or0fc{Yb;k!r%BlB1H26LMeU20cJV&Mw(8k`j-_hX60{K0s}F_p$qJ(2t&y< zkCH0n�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

-YWZ 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 literal 0 HcmV?d00001 diff --git a/public/anthropicCashedXConfig.png b/public/anthropicCashedXConfig.png new file mode 100644 index 0000000000000000000000000000000000000000..e25e84e035139958e7d5fabb9ead6fad97e545fb GIT binary patch literal 460695 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

~8y6 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⁢m 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 z

  • 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 literal 0 HcmV?d00001 From aa835676aafcb879da534b89b4169113aad476bd Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Thu, 22 Aug 2024 13:57:33 +0200 Subject: [PATCH 20/28] Update README --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5d22146..e12a8d9 100644 --- a/README.md +++ b/README.md @@ -81,11 +81,12 @@ For full details on each step, please see the [Installation Guide](https://www.c - Add Anthropic Cache support for context messages - Increase Token limit for Anthropic to 8192 tokens - Improved statistics page: Now you can select the data points you want to see + +### Improved and fixed + - Log details are now collapsible - Full response is captured in the logs -[View release on GitHub](https://github.com/HamedMP/CursorLens/tree/v0.1.2-alpha) - ## [0.1.1-alpha] - 2024-08-18 ### ⚠️ ALPHA RELEASE @@ -115,6 +116,7 @@ This is the initial alpha release of CursorLens. As an alpha version, it may con - Incomplete test coverage - Basic UI with limited customization options - Potential performance issues with large volumes of requests +- Cost calculation for cached messages in Anthropic are not correct ## Contributing From a88a4a3f43723828e421242cf825cf041a1ce86d Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Sat, 24 Aug 2024 11:37:16 +0200 Subject: [PATCH 21/28] Add new shadcn components --- src/components/ui/badge.tsx | 36 ++++++++++++++++++++++++++++++++++ src/components/ui/progress.tsx | 28 ++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/components/ui/badge.tsx create mode 100644 src/components/ui/progress.tsx diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..e87d62b --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
    + ) +} + +export { Badge, badgeVariants } diff --git a/src/components/ui/progress.tsx b/src/components/ui/progress.tsx new file mode 100644 index 0000000..4fc3b47 --- /dev/null +++ b/src/components/ui/progress.tsx @@ -0,0 +1,28 @@ +"use client" + +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" + +import { cn } from "@/lib/utils" + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => ( + + + +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } From b5d9025bacda6fba5c9f690bf44b83c397b247fc Mon Sep 17 00:00:00 2001 From: Hamed Mohammadpour Date: Sat, 24 Aug 2024 11:41:50 +0200 Subject: [PATCH 22/28] Add CostModel, add costs per api call in saving time and update logs/config/stats to use it --- .../migration.sql | 32 ++++ prisma/schema.prisma | 16 +- scripts/update-log-costs.ts | 72 ++++++++ src/app/[...openai]/route.ts | 56 ++++++- src/app/actions.ts | 99 +++++------ src/app/api/configurations/route.ts | 79 +++++---- src/app/api/logs/route.ts | 44 +++-- src/app/api/stats/route.ts | 25 ++- src/components/LogDetails.tsx | 94 ++++++++--- src/components/LogsList.tsx | 157 ++++++++++++++---- 10 files changed, 496 insertions(+), 178 deletions(-) create mode 100644 prisma/migrations/20240824081904_add_cost_model/migration.sql create mode 100644 scripts/update-log-costs.ts diff --git a/prisma/migrations/20240824081904_add_cost_model/migration.sql b/prisma/migrations/20240824081904_add_cost_model/migration.sql new file mode 100644 index 0000000..8961b27 --- /dev/null +++ b/prisma/migrations/20240824081904_add_cost_model/migration.sql @@ -0,0 +1,32 @@ +/* + Warnings: + + - You are about to drop the column `configurationId` on the `Log` table. All the data in the column will be lost. + - Made the column `metadata` on table `Log` required. This step will fail if there are existing NULL values in that column. + +*/ +-- DropForeignKey +ALTER TABLE "Log" DROP CONSTRAINT "Log_configurationId_fkey"; + +-- AlterTable +ALTER TABLE "Log" DROP COLUMN "configurationId", +ALTER COLUMN "metadata" SET NOT NULL; + +-- CreateTable +CREATE TABLE "ModelCost" ( + "id" TEXT NOT NULL, + "provider" TEXT NOT NULL, + "model" TEXT NOT NULL, + "inputTokenCost" DOUBLE PRECISION NOT NULL, + "outputTokenCost" DOUBLE PRECISION NOT NULL, + "validFrom" TIMESTAMP(3) NOT NULL, + "validTo" TIMESTAMP(3), + + CONSTRAINT "ModelCost_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "ModelCost_provider_model_validFrom_key" ON "ModelCost"("provider", "model", "validFrom"); + +-- CreateIndex +CREATE INDEX "Log_timestamp_idx" ON "Log"("timestamp"); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e0b2642..50e30db 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -15,8 +15,8 @@ model Log { method String url String headers String - body String - response String + body Json + response Json timestamp DateTime @default(now()) metadata Json @@ -37,4 +37,16 @@ model AIConfiguration { apiKey String? createdAt DateTime @default(now()) updatedAt DateTime @updatedAt +} + +model ModelCost { + id String @id @default(cuid()) + provider String + model String + inputTokenCost Float + outputTokenCost Float + validFrom DateTime + validTo DateTime? + + @@unique([provider, model, validFrom]) } \ No newline at end of file diff --git a/scripts/update-log-costs.ts b/scripts/update-log-costs.ts new file mode 100644 index 0000000..490f3f1 --- /dev/null +++ b/scripts/update-log-costs.ts @@ -0,0 +1,72 @@ +import { PrismaClient } from "@prisma/client"; +import { getModelCost } from "../src/lib/cost-calculator"; + +const prisma = new PrismaClient(); + +async function updateLogCosts() { + const logs = await prisma.log.findMany(); + + console.log(`Found ${logs.length} logs to update`); + + for (const log of logs) { + try { + const metadata = log.metadata as any; + const { provider, model } = metadata; + + if (!provider || !model) { + console.warn(`Skipping log ${log.id}: Missing provider or model`); + continue; + } + + const modelCost = await getModelCost(provider, model); + + let updatedMetadata = { ...metadata }; + let response = + typeof log.response === "string" + ? JSON.parse(log.response) + : log.response; + + // Extract token usage from response + const usage = response?.usage || {}; + const inputTokens = usage.promptTokens || metadata.inputTokens || 0; + const outputTokens = usage.completionTokens || metadata.outputTokens || 0; + const totalTokens = usage.totalTokens || inputTokens + outputTokens; + + // Calculate costs + const inputCost = (inputTokens / 1000000) * modelCost.inputTokenCost; + const outputCost = (outputTokens / 1000000) * modelCost.outputTokenCost; + const totalCost = inputCost + outputCost; + + updatedMetadata = { + ...updatedMetadata, + inputTokens, + outputTokens, + totalTokens, + inputCost, + outputCost, + totalCost, + }; + + await prisma.log.update({ + where: { id: log.id }, + data: { metadata: updatedMetadata }, + }); + + console.log( + `Updated log ${log.id}: inputTokens=${inputTokens}, outputTokens=${outputTokens}, totalCost=${totalCost}`, + ); + } catch (error) { + console.error(`Error updating log ${log.id}:`, error); + } + } + + console.log("Finished updating logs"); +} + +updateLogCosts() + .catch((error) => { + console.error("Error in updateLogCosts:", error); + }) + .finally(async () => { + await prisma.$disconnect(); + }); diff --git a/src/app/[...openai]/route.ts b/src/app/[...openai]/route.ts index bea7084..3606385 100644 --- a/src/app/[...openai]/route.ts +++ b/src/app/[...openai]/route.ts @@ -9,6 +9,7 @@ import { insertLog, getDefaultConfiguration } from "@/lib/db"; import { type NextRequest, NextResponse } from "next/server"; import OpenAI from "openai"; import { env } from "@/env"; +import { calculateCost, getModelCost } from "@/lib/cost-calculator"; const openaiClient = new OpenAI({ apiKey: env.OPENAI_API_KEY, @@ -150,12 +151,12 @@ export async function POST( method: "POST", url: `/api/${endpoint}`, headers: JSON.stringify(Object.fromEntries(request.headers)), - body: JSON.stringify({ + body: { ...body, ...streamTextOptions, - model: model, // Use the model from defaultConfig - }), - response: "", + model: model, + }, + response: {}, timestamp: new Date(), metadata: { configId, @@ -166,6 +167,12 @@ export async function POST( topP, frequencyPenalty, presencePenalty, + inputTokens: 0, + outputTokens: 0, + totalTokens: 0, + inputCost: 0, + outputCost: 0, + totalCost: 0, }, }; @@ -180,14 +187,33 @@ export async function POST( finishReason, ...otherProps }) { - logEntry.response = JSON.stringify({ + const inputTokens = usage?.promptTokens ?? 0; + const outputTokens = usage?.completionTokens ?? 0; + const totalTokens = usage?.totalTokens ?? 0; + + const modelCost = await getModelCost(provider, model); + const inputCost = (inputTokens / 1000000) * modelCost.inputTokenCost; + const outputCost = + (outputTokens / 1000000) * modelCost.outputTokenCost; + const totalCost = inputCost + outputCost; + + logEntry.response = { text, toolCalls, toolResults, usage, finishReason, ...otherProps, - }); + }; + logEntry.metadata = { + ...logEntry.metadata, + inputTokens, + outputTokens, + totalTokens, + inputCost, + outputCost, + totalCost, + }; await insertLog(logEntry); }, }); @@ -231,7 +257,25 @@ export async function POST( messages, }); + const inputTokens = result.usage?.prompt_tokens ?? 0; + const outputTokens = result.usage?.completion_tokens ?? 0; + const totalTokens = result.usage?.total_tokens ?? 0; + + const modelCost = await getModelCost(provider, model); + const inputCost = inputTokens * modelCost.inputTokenCost; + const outputCost = outputTokens * modelCost.outputTokenCost; + const totalCost = inputCost + outputCost; + logEntry.response = JSON.stringify(result); + logEntry.metadata = { + ...logEntry.metadata, + inputTokens, + outputTokens, + totalTokens, + inputCost, + outputCost, + totalCost, + }; await insertLog(logEntry); return NextResponse.json(result); diff --git a/src/app/actions.ts b/src/app/actions.ts index 1bc61e1..cde8776 100644 --- a/src/app/actions.ts +++ b/src/app/actions.ts @@ -19,6 +19,10 @@ type LogMetadata = { temperature: number; presencePenalty: number; frequencyPenalty: number; + totalTokens: number; + inputTokens: number; + outputTokens: number; + totalCost: number; }; export async function getLogs({ @@ -130,8 +134,6 @@ export async function getStats(timeFilter = "all"): Promise<{ }; } = {}; - const configCosts = await getConfigurationCosts(); - let totalTokens = 0; let totalPromptTokens = 0; let totalCompletionTokens = 0; @@ -143,9 +145,9 @@ export async function getStats(timeFilter = "all"): Promise<{ }[] = []; for (const log of logs) { - const metadata = log.metadata as Record; - const model = (metadata.model as string) || "unknown"; - const provider = (metadata.provider as string) || "unknown"; + const metadata = log.metadata as LogMetadata; + const model = metadata.model || "unknown"; + const provider = metadata.provider || "unknown"; const key = `${provider}:${model}`; if (!perModelProviderStats[key]) { @@ -161,48 +163,35 @@ export async function getStats(timeFilter = "all"): Promise<{ } perModelProviderStats[key].logs += 1; - try { - const responseObj = JSON.parse(log.response); - const tokens = responseObj.usage?.totalTokens || 0; - const promptTokens = responseObj.usage?.promptTokens || 0; - const completionTokens = responseObj.usage?.completionTokens || 0; - perModelProviderStats[key].tokens += tokens; - perModelProviderStats[key].promptTokens += promptTokens; - perModelProviderStats[key].completionTokens += completionTokens; - - // Calculate cost - const costConfig = configCosts.find( - (c) => c.provider === provider && c.model === model, - ); - if (costConfig) { - const cost = - promptTokens * costConfig.inputTokenCost + - completionTokens * costConfig.outputTokenCost; - perModelProviderStats[key].cost += cost; - } - - totalTokens += tokens; - totalPromptTokens += promptTokens; - totalCompletionTokens += completionTokens; - - const date = log.timestamp.toISOString().split("T")[0]; - const existingEntry = tokenUsageOverTime.find( - (entry) => entry.date === date, - ); - if (existingEntry) { - existingEntry.tokens += tokens; - existingEntry.promptTokens += promptTokens; - existingEntry.completionTokens += completionTokens; - } else { - tokenUsageOverTime.push({ - date, - tokens, - promptTokens, - completionTokens, - }); - } - } catch (error) { - console.error("Error parsing log response:", error); + const tokens = metadata.totalTokens || 0; + const promptTokens = metadata.inputTokens || 0; + const completionTokens = metadata.outputTokens || 0; + const cost = metadata.totalCost || 0; + + perModelProviderStats[key].tokens += tokens; + perModelProviderStats[key].promptTokens += promptTokens; + perModelProviderStats[key].completionTokens += completionTokens; + perModelProviderStats[key].cost += cost; + + totalTokens += tokens; + totalPromptTokens += promptTokens; + totalCompletionTokens += completionTokens; + + const date = log.timestamp.toISOString().split("T")[0]; + const existingEntry = tokenUsageOverTime.find( + (entry) => entry.date === date, + ); + if (existingEntry) { + existingEntry.tokens += tokens; + existingEntry.promptTokens += promptTokens; + existingEntry.completionTokens += completionTokens; + } else { + tokenUsageOverTime.push({ + date, + tokens, + promptTokens, + completionTokens, + }); } } @@ -318,3 +307,19 @@ export async function getConfigurationCosts(): Promise { } export { getModelConfigurations }; + +export async function setDefaultConfiguration(configId: string): Promise { + try { + await prisma.aIConfiguration.updateMany({ + where: { isDefault: true }, + data: { isDefault: false }, + }); + await prisma.aIConfiguration.update({ + where: { id: configId }, + data: { isDefault: true }, + }); + } catch (error) { + console.error("Error setting default configuration:", error); + throw error; + } +} diff --git a/src/app/api/configurations/route.ts b/src/app/api/configurations/route.ts index 3daab13..3592511 100644 --- a/src/app/api/configurations/route.ts +++ b/src/app/api/configurations/route.ts @@ -1,49 +1,70 @@ -import { NextRequest, NextResponse } from 'next/server'; -import { PrismaClient } from '@prisma/client'; - -const prisma = new PrismaClient(); +import { NextRequest, NextResponse } from "next/server"; +import { + getConfigurations, + createConfiguration, + updateConfiguration, + deleteConfiguration, +} from "@/app/actions"; export async function GET() { try { - if (!prisma) { - throw new Error('Prisma client is not initialized'); - } - const configurations = await prisma.aIConfiguration.findMany(); + const configurations = await getConfigurations(); return NextResponse.json(configurations); } catch (error) { - console.error('Error fetching configurations:', error); + console.error("Error fetching configurations:", error); return NextResponse.json( - { error: 'Internal Server Error', details: error.message }, - { status: 500 } + { error: "Error fetching configurations" }, + { status: 500 }, ); } } export async function POST(request: NextRequest) { try { - const data = await request.json(); - const { name, ...configData } = data; + const configData = await request.json(); + const newConfig = await createConfiguration(configData); + return NextResponse.json(newConfig); + } catch (error) { + console.error("Error creating configuration:", error); + return NextResponse.json( + { error: "Error creating configuration" }, + { status: 500 }, + ); + } +} - if (configData.isDefault) { - // If the new configuration is set as default, unset the current default - await prisma.aIConfiguration.updateMany({ - where: { isDefault: true }, - data: { isDefault: false }, - }); - } +export async function PUT(request: NextRequest) { + try { + const { id, ...data } = await request.json(); + const updatedConfig = await updateConfiguration(id, data); + return NextResponse.json(updatedConfig); + } catch (error) { + console.error("Error updating configuration:", error); + return NextResponse.json( + { error: "Error updating configuration" }, + { status: 500 }, + ); + } +} - const updatedConfig = await prisma.aIConfiguration.upsert({ - where: { name }, - update: configData, - create: { name, ...configData }, - }); +export async function DELETE(request: NextRequest) { + const { searchParams } = request.nextUrl; + const id = searchParams.get("id"); + if (!id) { + return NextResponse.json( + { error: "Configuration ID is required" }, + { status: 400 }, + ); + } - return NextResponse.json(updatedConfig); + try { + await deleteConfiguration(id); + return NextResponse.json({ message: "Configuration deleted successfully" }); } catch (error) { - console.error('Error updating configuration:', error); + console.error("Error deleting configuration:", error); return NextResponse.json( - { error: 'Internal Server Error' }, - { status: 500 } + { error: "Error deleting configuration" }, + { status: 500 }, ); } } diff --git a/src/app/api/logs/route.ts b/src/app/api/logs/route.ts index 748612b..5b09ac3 100644 --- a/src/app/api/logs/route.ts +++ b/src/app/api/logs/route.ts @@ -1,36 +1,32 @@ // app/api/logs/route.ts -import { type NextRequest, NextResponse } from "next/server"; -import { getLogs } from "@/lib/db"; -import prisma from "@/lib/prisma"; +import { NextRequest, NextResponse } from "next/server"; +import { getLogs } from "@/app/actions"; +import prisma from "@/lib/prisma"; // Make sure to import prisma client -export async function GET(request: NextRequest): Promise { +export async function GET(request: NextRequest) { const { searchParams } = request.nextUrl; - const filterHomepage = searchParams.get("filterHomepage") === "true"; - const logs = await getLogs(filterHomepage); - return NextResponse.json(logs); -} + const provider = searchParams.get("provider") || "all"; + const startDate = searchParams.get("startDate") || ""; + const endDate = searchParams.get("endDate") || ""; -interface LogData { - method: string; - url: string; - headers: string; - body: string; - response: string; - model: string; + try { + const logs = await getLogs({ provider, startDate, endDate }); + return NextResponse.json(logs); + } catch (error) { + console.error("Error fetching logs:", error); + return NextResponse.json({ error: "Error fetching logs" }, { status: 500 }); + } } -export async function POST(request: NextRequest): Promise { +export async function POST(request: NextRequest) { try { - const { method, url, headers, body, response, model }: LogData = - await request.json(); + const logData = await request.json(); const log = await prisma.log.create({ data: { - method, - url, - headers: JSON.stringify(headers), - body, - response, - metadata: { model }, + ...logData, + metadata: logData.metadata as any, + response: logData.response as any, // Ensure response is stored as Json + timestamp: new Date(), }, }); return NextResponse.json(log); diff --git a/src/app/api/stats/route.ts b/src/app/api/stats/route.ts index d3aac48..e9056b2 100644 --- a/src/app/api/stats/route.ts +++ b/src/app/api/stats/route.ts @@ -1,21 +1,18 @@ -import { NextResponse } from 'next/server'; -import prisma from '@/lib/prisma'; +import { NextRequest, NextResponse } from "next/server"; +import { getStats } from "@/app/actions"; -export async function GET() { - try { - const logs = await prisma.log.findMany(); - const totalLogs = logs.length; - const totalTokens = logs.reduce((sum, log) => { - const response = JSON.parse(log.response); - return sum + (response.usage?.total_tokens || 0); - }, 0); +export async function GET(request: NextRequest) { + const { searchParams } = request.nextUrl; + const timeFilter = searchParams.get("timeFilter") || "all"; - return NextResponse.json({ totalLogs, totalTokens }); + try { + const stats = await getStats(timeFilter); + return NextResponse.json(stats); } catch (error) { - console.error('Error fetching stats:', error); + console.error("Error fetching stats:", error); return NextResponse.json( - { error: 'Error fetching stats' }, - { status: 500 } + { error: "Error fetching stats" }, + { status: 500 }, ); } } diff --git a/src/components/LogDetails.tsx b/src/components/LogDetails.tsx index beb8af7..6ccbc67 100644 --- a/src/components/LogDetails.tsx +++ b/src/components/LogDetails.tsx @@ -14,6 +14,14 @@ import { Copy, ChevronDown, ChevronUp } from "lucide-react"; import ReactMarkdown from "react-markdown"; import { toast } from "sonner"; import { useSearchParams } from "next/navigation"; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from "@/components/ui/table"; interface Log { id: number; @@ -23,6 +31,14 @@ interface Log { headers: string; body: string; response: string | null; + metadata: { + inputTokens: number; + outputTokens: number; + totalTokens: number; + inputCost: number; + outputCost: number; + totalCost: number; + }; } interface LogDetailsProps { @@ -139,7 +155,7 @@ export default function LogDetails({ logId }: LogDetailsProps) { isExpandable?: boolean; }) => { const [isExpanded, setIsExpanded] = useState(!isExpandable); - const parsedContent = parseJSON(content); + const parsedContent = content; const maskedContent = maskSensitiveInfo(parsedContent); const jsonString = JSON.stringify(maskedContent, null, 2) || "No data available"; @@ -297,8 +313,35 @@ export default function LogDetails({ logId }: LogDetailsProps) { ); }; + const renderUsageTable = (log: Log) => { + return ( + + + + Input Tokens + Output Tokens + Total Tokens + Input Cost + Output Cost + Total Cost + + + + + {log.metadata.inputTokens} + {log.metadata.outputTokens} + {log.metadata.totalTokens} + ${log.metadata.inputCost.toFixed(4)} + ${log.metadata.outputCost.toFixed(4)} + ${log.metadata.totalCost.toFixed(4)} + + +
    + ); + }; + return ( - + Request Details @@ -308,14 +351,15 @@ export default function LogDetails({ logId }: LogDetailsProps) {
  • {log.timestamp}

    + {renderUsageTable(log)} + - + toggleSection("response")} + > Response - + +
    +
    + ) : ( + + + Ngrok Public URL + + +

    + Ngrok URL not available. Please run ngrok to generate a public + URL. +

    +

    Run the following command in your terminal:

    + + ngrok http 3000 + +
    +
    + )} + Recent Logs diff --git a/src/lib/model-config.ts b/src/lib/model-config.ts index c4708dd..986ac60 100644 --- a/src/lib/model-config.ts +++ b/src/lib/model-config.ts @@ -5,8 +5,8 @@ type ModelConfig = { topP?: number; frequencyPenalty?: number; presencePenalty?: number; - inputTokenCost: number; - outputTokenCost: number; + inputTokenCost: number; // price per million tokens + outputTokenCost: number; // price per million tokens isTemplate: boolean; }; @@ -27,8 +27,8 @@ export const getModelConfigurations = (): ModelConfigurations => ({ topP: 1, frequencyPenalty: 0, presencePenalty: 0, - inputTokenCost: 0.000005, - outputTokenCost: 0.000015, + inputTokenCost: 5, // updated to price per million tokens + outputTokenCost: 15, // updated to price per million tokens isTemplate: true, }, "gpt-4o-mini": { @@ -38,8 +38,8 @@ export const getModelConfigurations = (): ModelConfigurations => ({ topP: 1, frequencyPenalty: 0, presencePenalty: 0, - inputTokenCost: 0.00000015, - outputTokenCost: 0.0000006, + inputTokenCost: 0.15, // updated to price per million tokens + outputTokenCost: 0.6, // updated to price per million tokens isTemplate: true, }, "gpt-4-turbo": { @@ -49,89 +49,89 @@ export const getModelConfigurations = (): ModelConfigurations => ({ topP: 1, frequencyPenalty: 0, presencePenalty: 0, - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, + inputTokenCost: 10, // updated to price per million tokens + outputTokenCost: 30, // updated to price per million tokens isTemplate: true, }, "gpt-4o-2024-08-06": { name: "GPT-4 Optimized (2024-08-06)", - inputTokenCost: 0.0000025, - outputTokenCost: 0.00001, + inputTokenCost: 2.5, // updated to price per million tokens + outputTokenCost: 10, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-0125": { - inputTokenCost: 0.0000005, - outputTokenCost: 0.0000015, + inputTokenCost: 0.5, // updated to price per million tokens + outputTokenCost: 1.5, // updated to price per million tokens isTemplate: false, }, "chatgpt-4o-latest": { - inputTokenCost: 0.000005, - outputTokenCost: 0.000015, + inputTokenCost: 5, // updated to price per million tokens + outputTokenCost: 15, // updated to price per million tokens isTemplate: false, }, "gpt-4-turbo-2024-04-09": { - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, + inputTokenCost: 10, // updated to price per million tokens + outputTokenCost: 30, // updated to price per million tokens isTemplate: false, }, "gpt-4": { - inputTokenCost: 0.00003, - outputTokenCost: 0.00006, + inputTokenCost: 30, // updated to price per million tokens + outputTokenCost: 60, // updated to price per million tokens isTemplate: false, }, "gpt-4-32k": { - inputTokenCost: 0.00006, - outputTokenCost: 0.00012, + inputTokenCost: 60, // updated to price per million tokens + outputTokenCost: 120, // updated to price per million tokens isTemplate: false, }, "gpt-4-0125-preview": { - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, + inputTokenCost: 10, // updated to price per million tokens + outputTokenCost: 30, // updated to price per million tokens isTemplate: false, }, "gpt-4-1106-preview": { - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, + inputTokenCost: 10, // updated to price per million tokens + outputTokenCost: 30, // updated to price per million tokens isTemplate: false, }, "gpt-4-vision-preview": { - inputTokenCost: 0.00001, - outputTokenCost: 0.00003, + inputTokenCost: 10, // updated to price per million tokens + outputTokenCost: 30, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-instruct": { - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, + inputTokenCost: 1.5, // updated to price per million tokens + outputTokenCost: 2, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-1106": { - inputTokenCost: 0.000001, - outputTokenCost: 0.000002, + inputTokenCost: 1, // updated to price per million tokens + outputTokenCost: 2, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-0613": { - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, + inputTokenCost: 1.5, // updated to price per million tokens + outputTokenCost: 2, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-16k-0613": { - inputTokenCost: 0.000003, - outputTokenCost: 0.000004, + inputTokenCost: 3, // updated to price per million tokens + outputTokenCost: 4, // updated to price per million tokens isTemplate: false, }, "gpt-3.5-turbo-0301": { - inputTokenCost: 0.0000015, - outputTokenCost: 0.000002, + inputTokenCost: 1.5, // updated to price per million tokens + outputTokenCost: 2, // updated to price per million tokens isTemplate: false, }, "davinci-002": { - inputTokenCost: 0.000002, - outputTokenCost: 0.000002, + inputTokenCost: 2, // updated to price per million tokens + outputTokenCost: 2, // updated to price per million tokens isTemplate: false, }, "babbage-002": { - inputTokenCost: 0.0000004, - outputTokenCost: 0.0000004, + inputTokenCost: 0.4, // updated to price per million tokens + outputTokenCost: 0.4, // updated to price per million tokens isTemplate: false, }, }, @@ -143,8 +143,8 @@ export const getModelConfigurations = (): ModelConfigurations => ({ topP: 1, frequencyPenalty: 0, presencePenalty: 0, - inputTokenCost: 0.000003, - outputTokenCost: 0.000015, + inputTokenCost: 3, // updated to price per million tokens + outputTokenCost: 15, // updated to price per million tokens isTemplate: true, }, }, @@ -156,41 +156,41 @@ export const getModelConfigurations = (): ModelConfigurations => ({ topP: 1, frequencyPenalty: 0, presencePenalty: 0, - inputTokenCost: 0.000003, - outputTokenCost: 0.000015, + inputTokenCost: 3, // updated to price per million tokens + outputTokenCost: 15, // updated to price per million tokens isTemplate: true, }, "claude-3-opus-20240229": null, "claude-3-sonnet-20240229": null, "claude-3-haiku-20240307": null, "claude-3-5-sonnet": { - inputTokenCost: 0.000003, - outputTokenCost: 0.000015, + inputTokenCost: 3, // updated to price per million tokens + outputTokenCost: 15, // updated to price per million tokens isTemplate: false, }, "claude-3-opus": { - inputTokenCost: 0.000015, - outputTokenCost: 0.000075, + inputTokenCost: 15, // updated to price per million tokens + outputTokenCost: 75, // updated to price per million tokens isTemplate: false, }, "claude-3-haiku": { - inputTokenCost: 0.00000025, - outputTokenCost: 0.00000125, + inputTokenCost: 0.25, // updated to price per million tokens + outputTokenCost: 1.25, // updated to price per million tokens isTemplate: false, }, "claude-2-1": { - inputTokenCost: 0.000008, - outputTokenCost: 0.000024, + inputTokenCost: 8, // updated to price per million tokens + outputTokenCost: 24, // updated to price per million tokens isTemplate: false, }, "claude-2-0": { - inputTokenCost: 0.000008, - outputTokenCost: 0.000024, + inputTokenCost: 8, // updated to price per million tokens + outputTokenCost: 24, // updated to price per million tokens isTemplate: false, }, "claude-instant": { - inputTokenCost: 0.0000008, - outputTokenCost: 0.0000024, + inputTokenCost: 0.8, // updated to price per million tokens + outputTokenCost: 2.4, // updated to price per million tokens isTemplate: false, }, }, @@ -314,6 +314,900 @@ export const getModelConfigurations = (): ModelConfigurations => ({ "phi3:3.8b": null, "phi3:14b": null, }, + openrouter: { + "01-ai/yi-large": { + inputTokenCost: 3, + outputTokenCost: 3, + isTemplate: false, + }, + "01-ai/yi-large-fc": { + inputTokenCost: 3, + outputTokenCost: 3, + isTemplate: false, + }, + "01-ai/yi-large-turbo": { + inputTokenCost: 0.19, + outputTokenCost: 0.19, + isTemplate: false, + }, + "01-ai/yi-34b": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "01-ai/yi-34b-chat": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "01-ai/yi-6b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "01-ai/yi-vision": { + inputTokenCost: 0.19, + outputTokenCost: 0.19, + isTemplate: false, + }, + "aetherwiing/mn-starcannon-12b": { + inputTokenCost: 2, + outputTokenCost: 2, + isTemplate: false, + }, + "ai21/jamba-instruct": { + inputTokenCost: 0.5, + outputTokenCost: 0.7, + isTemplate: false, + }, + "allenai/olmo-7b-instruct": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "alpindale/goliath-120b": { + inputTokenCost: 9.375, + outputTokenCost: 9.375, + isTemplate: false, + }, + "alpindale/magnum-72b": { + inputTokenCost: 3.75, + outputTokenCost: 4.5, + isTemplate: false, + }, + "anthropic/claude-1": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-1.2": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2:beta": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2.0": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2.0:beta": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2.1": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-2.1:beta": { + inputTokenCost: 8, + outputTokenCost: 24, + isTemplate: false, + }, + "anthropic/claude-3-haiku": { + inputTokenCost: 0.25, + outputTokenCost: 1.25, + isTemplate: false, + }, + "anthropic/claude-3-haiku:beta": { + inputTokenCost: 0.25, + outputTokenCost: 1.25, + isTemplate: false, + }, + "anthropic/claude-3-opus": { + inputTokenCost: 15, + outputTokenCost: 75, + isTemplate: false, + }, + "anthropic/claude-3-opus:beta": { + inputTokenCost: 15, + outputTokenCost: 75, + isTemplate: false, + }, + "anthropic/claude-3-sonnet": { + inputTokenCost: 3, + outputTokenCost: 15, + isTemplate: false, + }, + "anthropic/claude-3.5-sonnet": { + inputTokenCost: 3, + outputTokenCost: 15, + isTemplate: false, + }, + "anthropic/claude-3.5-sonnet:beta": { + inputTokenCost: 3, + outputTokenCost: 15, + isTemplate: false, + }, + "anthropic/claude-3-sonnet:beta": { + inputTokenCost: 3, + outputTokenCost: 15, + isTemplate: false, + }, + "anthropic/claude-instant-1": { + inputTokenCost: 0.8, + outputTokenCost: 2.4, + isTemplate: false, + }, + "anthropic/claude-instant-1:beta": { + inputTokenCost: 0.8, + outputTokenCost: 2.4, + isTemplate: false, + }, + "anthropic/claude-instant-1.0": { + inputTokenCost: 0.8, + outputTokenCost: 2.4, + isTemplate: false, + }, + "anthropic/claude-instant-1.1": { + inputTokenCost: 0.8, + outputTokenCost: 2.4, + isTemplate: false, + }, + "austism/chronos-hermes-13b": { + inputTokenCost: 0.13, + outputTokenCost: 0.13, + isTemplate: false, + }, + "cohere/command": { + inputTokenCost: 1, + outputTokenCost: 2, + isTemplate: false, + }, + "cohere/command-r": { + inputTokenCost: 0.5, + outputTokenCost: 1.5, + isTemplate: false, + }, + "cohere/command-r-plus": { + inputTokenCost: 3, + outputTokenCost: 15, + isTemplate: false, + }, + "cognitivecomputations/dolphin-llama-3-70b": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "cognitivecomputations/dolphin-mixtral-8x22b": { + inputTokenCost: 0.9, + outputTokenCost: 0.9, + isTemplate: false, + }, + "cognitivecomputations/dolphin-mixtral-8x7b": { + inputTokenCost: 0.5, + outputTokenCost: 0.5, + isTemplate: false, + }, + "databricks/dbrx-instruct": { + inputTokenCost: 1.08, + outputTokenCost: 1.08, + isTemplate: false, + }, + "deepseek/deepseek-chat": { + inputTokenCost: 0.14, + outputTokenCost: 0.28, + isTemplate: false, + }, + "deepseek/deepseek-coder": { + inputTokenCost: 0.14, + outputTokenCost: 0.28, + isTemplate: false, + }, + "google/gemini-flash-1.5": { + inputTokenCost: 0.0375, + outputTokenCost: 0.15, + isTemplate: false, + }, + "google/gemini-pro": { + inputTokenCost: 0.125, + outputTokenCost: 0.375, + isTemplate: false, + }, + "google/gemini-pro-1.5": { + inputTokenCost: 2.5, + outputTokenCost: 7.5, + isTemplate: false, + }, + "google/gemini-pro-1.5-exp": { + inputTokenCost: 2.5, + outputTokenCost: 7.5, + isTemplate: false, + }, + "google/gemini-pro-vision": { + inputTokenCost: 0.125, + outputTokenCost: 0.375, + isTemplate: false, + }, + "google/gemma-2-27b-it": { + inputTokenCost: 0.27, + outputTokenCost: 0.27, + isTemplate: false, + }, + "google/gemma-2-9b-it": { + inputTokenCost: 0.06, + outputTokenCost: 0.06, + isTemplate: false, + }, + "google/gemma-2-9b-it:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "google/gemma-7b-it": { + inputTokenCost: 0.07, + outputTokenCost: 0.07, + isTemplate: false, + }, + "google/gemma-7b-it:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "google/gemma-7b-it:nitro": { + inputTokenCost: 0.07, + outputTokenCost: 0.07, + isTemplate: false, + }, + "google/palm-2-chat-bison": { + inputTokenCost: 0.25, + outputTokenCost: 0.5, + isTemplate: false, + }, + "google/palm-2-chat-bison-32k": { + inputTokenCost: 0.25, + outputTokenCost: 0.5, + isTemplate: false, + }, + "google/palm-2-codechat-bison": { + inputTokenCost: 0.25, + outputTokenCost: 0.5, + isTemplate: false, + }, + "google/palm-2-codechat-bison-32k": { + inputTokenCost: 0.25, + outputTokenCost: 0.5, + isTemplate: false, + }, + "gryphe/mythomist-7b": { + inputTokenCost: 0.375, + outputTokenCost: 0.375, + isTemplate: false, + }, + "gryphe/mythomist-7b:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "gryphe/mythomax-l2-13b": { + inputTokenCost: 0.1, + outputTokenCost: 0.1, + isTemplate: false, + }, + "huggingfaceh4/zephyr-7b-beta:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "jondurbin/airoboros-l2-70b": { + inputTokenCost: 0.5, + outputTokenCost: 0.5, + isTemplate: false, + }, + "lizpreciatior/lzlv-70b-fp16-hf": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "mancer/weaver": { + inputTokenCost: 1.875, + outputTokenCost: 2.25, + isTemplate: false, + }, + "meta-llama/codellama-34b-instruct": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "meta-llama/codellama-70b-instruct": { + inputTokenCost: 0.81, + outputTokenCost: 0.81, + isTemplate: false, + }, + "meta-llama/llama-3-70b": { + inputTokenCost: 0.81, + outputTokenCost: 0.81, + isTemplate: false, + }, + "meta-llama/llama-3-70b-instruct": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "meta-llama/llama-3-70b-instruct:nitro": { + inputTokenCost: 0.792, + outputTokenCost: 0.792, + isTemplate: false, + }, + "meta-llama/llama-3-8b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "meta-llama/llama-3-8b-instruct": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "meta-llama/llama-3-8b-instruct:extended": { + inputTokenCost: 0.1875, + outputTokenCost: 1.125, + isTemplate: false, + }, + "meta-llama/llama-3-8b-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "meta-llama/llama-3-8b-instruct:nitro": { + inputTokenCost: 0.162, + outputTokenCost: 0.162, + isTemplate: false, + }, + "meta-llama/llama-3.1-405b": { + inputTokenCost: 2, + outputTokenCost: 2, + isTemplate: false, + }, + "meta-llama/llama-3.1-405b-instruct": { + inputTokenCost: 2.7, + outputTokenCost: 2.7, + isTemplate: false, + }, + "meta-llama/llama-3.1-70b-instruct": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "meta-llama/llama-3.1-8b-instruct": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "meta-llama/llama-3.1-8b-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "meta-llama/llama-guard-2-8b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "microsoft/phi-3-medium-128k-instruct": { + inputTokenCost: 1, + outputTokenCost: 1, + isTemplate: false, + }, + "microsoft/phi-3-medium-128k-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "microsoft/phi-3-medium-4k-instruct": { + inputTokenCost: 0.14, + outputTokenCost: 0.14, + isTemplate: false, + }, + "microsoft/phi-3-mini-128k-instruct": { + inputTokenCost: 0.1, + outputTokenCost: 0.1, + isTemplate: false, + }, + "microsoft/phi-3-mini-128k-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "microsoft/wizardlm-2-7b": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "microsoft/wizardlm-2-8x22b": { + inputTokenCost: 0.5, + outputTokenCost: 0.5, + isTemplate: false, + }, + "mistralai/codestral-mamba": { + inputTokenCost: 0.25, + outputTokenCost: 0.25, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct:nitro": { + inputTokenCost: 0.07, + outputTokenCost: 0.07, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct-v0.1": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct-v0.2": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "mistralai/mistral-7b-instruct-v0.3": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "mistralai/mistral-large": { + inputTokenCost: 3, + outputTokenCost: 9, + isTemplate: false, + }, + "mistralai/mistral-medium": { + inputTokenCost: 2.7, + outputTokenCost: 8.1, + isTemplate: false, + }, + "mistralai/mistral-nemo": { + inputTokenCost: 0.17, + outputTokenCost: 0.17, + isTemplate: false, + }, + "mistralai/mistral-small": { + inputTokenCost: 2, + outputTokenCost: 6, + isTemplate: false, + }, + "mistralai/mistral-tiny": { + inputTokenCost: 0.25, + outputTokenCost: 0.25, + isTemplate: false, + }, + "mistralai/mixtral-8x22b": { + inputTokenCost: 1.08, + outputTokenCost: 1.08, + isTemplate: false, + }, + "mistralai/mixtral-8x22b-instruct": { + inputTokenCost: 0.65, + outputTokenCost: 0.65, + isTemplate: false, + }, + "mistralai/mixtral-8x7b": { + inputTokenCost: 0.54, + outputTokenCost: 0.54, + isTemplate: false, + }, + "mistralai/mixtral-8x7b-instruct": { + inputTokenCost: 0.24, + outputTokenCost: 0.24, + isTemplate: false, + }, + "mistralai/mixtral-8x7b-instruct:nitro": { + inputTokenCost: 0.54, + outputTokenCost: 0.54, + isTemplate: false, + }, + "neversleep/llama-3-lumimaid-70b": { + inputTokenCost: 3.375, + outputTokenCost: 4.5, + isTemplate: false, + }, + "neversleep/llama-3-lumimaid-8b": { + inputTokenCost: 0.1875, + outputTokenCost: 1.125, + isTemplate: false, + }, + "neversleep/llama-3-lumimaid-8b:extended": { + inputTokenCost: 0.1875, + outputTokenCost: 1.125, + isTemplate: false, + }, + "neversleep/noromaid-20b": { + inputTokenCost: 1.5, + outputTokenCost: 2.25, + isTemplate: false, + }, + "nousresearch/hermes-2-pro-llama-3-8b": { + inputTokenCost: 0.14, + outputTokenCost: 0.14, + isTemplate: false, + }, + "nousresearch/hermes-2-theta-llama-3-8b": { + inputTokenCost: 0.1875, + outputTokenCost: 1.125, + isTemplate: false, + }, + "nousresearch/hermes-3-llama-3.1-405b": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "nousresearch/hermes-3-llama-3.1-405b:extended": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "nousresearch/nous-capybara-7b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "nousresearch/nous-capybara-7b:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "nousresearch/nous-hermes-2-mixtral-8x7b-dpo": { + inputTokenCost: 0.45, + outputTokenCost: 0.45, + isTemplate: false, + }, + "nousresearch/nous-hermes-2-mixtral-8x7b-sft": { + inputTokenCost: 0.54, + outputTokenCost: 0.54, + isTemplate: false, + }, + "nousresearch/nous-hermes-2-mistral-7b-dpo": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "nousresearch/nous-hermes-llama2-13b": { + inputTokenCost: 0.17, + outputTokenCost: 0.17, + isTemplate: false, + }, + "nousresearch/nous-hermes-yi-34b": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "nothingiisreal/mn-celeste-12b": { + inputTokenCost: 1.5, + outputTokenCost: 1.5, + isTemplate: false, + }, + "open-orca/mistral-7b-openorca": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "openchat/openchat-7b": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "openchat/openchat-7b:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "openchat/openchat-8b": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "openai/gpt-3.5-turbo-0613": { + inputTokenCost: 1, + outputTokenCost: 2, + isTemplate: false, + }, + "openai/gpt-3.5-turbo-16k": { + inputTokenCost: 3, + outputTokenCost: 4, + isTemplate: false, + }, + "openai/gpt-3.5-turbo-instruct": { + inputTokenCost: 1.5, + outputTokenCost: 2, + isTemplate: false, + }, + "openai/gpt-4-32k": { + inputTokenCost: 60, + outputTokenCost: 120, + isTemplate: false, + }, + "openai/gpt-4-32k-0314": { + inputTokenCost: 60, + outputTokenCost: 120, + isTemplate: false, + }, + "openai/gpt-4-turbo": { + inputTokenCost: 10, + outputTokenCost: 30, + isTemplate: false, + }, + "openai/gpt-4-turbo-preview": { + inputTokenCost: 10, + outputTokenCost: 30, + isTemplate: false, + }, + "openai/gpt-4-vision-preview": { + inputTokenCost: 10, + outputTokenCost: 30, + isTemplate: false, + }, + "openai/gpt-4o": { + inputTokenCost: 5, + outputTokenCost: 15, + isTemplate: false, + }, + "openai/gpt-4o:extended": { + inputTokenCost: 6, + outputTokenCost: 18, + isTemplate: false, + }, + "openai/gpt-4o-2024-05-13": { + inputTokenCost: 5, + outputTokenCost: 15, + isTemplate: false, + }, + "openai/gpt-4o-2024-08-06": { + inputTokenCost: 2.5, + outputTokenCost: 10, + isTemplate: false, + }, + "openai/gpt-4o-latest": { + inputTokenCost: 5, + outputTokenCost: 15, + isTemplate: false, + }, + "openai/gpt-4o-mini": { + inputTokenCost: 0.15, + outputTokenCost: 0.6, + isTemplate: false, + }, + "openai/gpt-4o-mini-2024-07-18": { + inputTokenCost: 0.15, + outputTokenCost: 0.6, + isTemplate: false, + }, + "openrouter/auto": null, + "openrouter/flavor-of-the-week": null, + "perplexity/llama-3-sonar-large-32k-chat": { + inputTokenCost: 1, + outputTokenCost: 1, + isTemplate: false, + }, + "perplexity/llama-3-sonar-large-32k-online": { + inputTokenCost: 1, + outputTokenCost: 1, + isTemplate: false, + }, + "perplexity/llama-3-sonar-small-32k-chat": { + inputTokenCost: 0.2, + outputTokenCost: 0.2, + isTemplate: false, + }, + "perplexity/llama-3-sonar-small-32k-online": { + inputTokenCost: 0.2, + outputTokenCost: 0.2, + isTemplate: false, + }, + "perplexity/llama-3.1-sonar-huge-128k-online": { + inputTokenCost: 5, + outputTokenCost: 5, + isTemplate: false, + }, + "perplexity/llama-3.1-sonar-large-128k-chat": { + inputTokenCost: 1, + outputTokenCost: 1, + isTemplate: false, + }, + "perplexity/llama-3.1-sonar-large-128k-online": { + inputTokenCost: 1, + outputTokenCost: 1, + isTemplate: false, + }, + "perplexity/llama-3.1-sonar-small-128k-chat": { + inputTokenCost: 0.2, + outputTokenCost: 0.2, + isTemplate: false, + }, + "perplexity/llama-3.1-sonar-small-128k-online": { + inputTokenCost: 0.2, + outputTokenCost: 0.2, + isTemplate: false, + }, + "phind/phind-codellama-34b": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "pygmalionai/mythalion-13b": { + inputTokenCost: 1.125, + outputTokenCost: 1.125, + isTemplate: false, + }, + "qwen/qwen-110b-chat": { + inputTokenCost: 1.62, + outputTokenCost: 1.62, + isTemplate: false, + }, + "qwen/qwen-14b-chat": { + inputTokenCost: 0.27, + outputTokenCost: 0.27, + isTemplate: false, + }, + "qwen/qwen-2-72b-instruct": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "qwen/qwen-2-7b-instruct": { + inputTokenCost: 0.055, + outputTokenCost: 0.055, + isTemplate: false, + }, + "qwen/qwen-2-7b-instruct:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "qwen/qwen-32b-chat": { + inputTokenCost: 0.72, + outputTokenCost: 0.72, + isTemplate: false, + }, + "qwen/qwen-4b-chat": { + inputTokenCost: 0.09, + outputTokenCost: 0.09, + isTemplate: false, + }, + "qwen/qwen-72b-chat": { + inputTokenCost: 0.81, + outputTokenCost: 0.81, + isTemplate: false, + }, + "qwen/qwen-7b-chat": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "recursal/eagle-7b": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "recursal/rwkv-5-3b-ai-town": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "rwkv/rwkv-5-world-3b": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "sao10k/fimbulvetr-11b-v2": { + inputTokenCost: 0.375, + outputTokenCost: 1.5, + isTemplate: false, + }, + "sao10k/l3-euryale-70b": { + inputTokenCost: 0.35, + outputTokenCost: 0.4, + isTemplate: false, + }, + "sao10k/l3-lunaris-8b": { + inputTokenCost: 2, + outputTokenCost: 2, + isTemplate: false, + }, + "sao10k/l3-stheno-8b": { + inputTokenCost: 0.25, + outputTokenCost: 1.5, + isTemplate: false, + }, + "snowflake/snowflake-arctic-instruct": { + inputTokenCost: 2.16, + outputTokenCost: 2.16, + isTemplate: false, + }, + "sophosympatheia/midnight-rose-70b": { + inputTokenCost: 0.8, + outputTokenCost: 0.8, + isTemplate: false, + }, + "teknium/openhermes-2-mistral-7b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "teknium/openhermes-2.5-mistral-7b": { + inputTokenCost: 0.17, + outputTokenCost: 0.17, + isTemplate: false, + }, + "togethercomputer/stripedhyena-hessian-7b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "togethercomputer/stripedhyena-nous-7b": { + inputTokenCost: 0.18, + outputTokenCost: 0.18, + isTemplate: false, + }, + "undi95/remm-slerp-l2-13b": { + inputTokenCost: 0.27, + outputTokenCost: 0.27, + isTemplate: false, + }, + "undi95/remm-slerp-l2-13b:extended": { + inputTokenCost: 1.125, + outputTokenCost: 1.125, + isTemplate: false, + }, + "undi95/toppy-m-7b": { + inputTokenCost: 0.07, + outputTokenCost: 0.07, + isTemplate: false, + }, + "undi95/toppy-m-7b:free": { + inputTokenCost: 0, + outputTokenCost: 0, + isTemplate: false, + }, + "undi95/toppy-m-7b:nitro": { + inputTokenCost: 0.07, + outputTokenCost: 0.07, + isTemplate: false, + }, + "xwin-lm/xwin-lm-70b": { + inputTokenCost: 3.75, + outputTokenCost: 3.75, + isTemplate: false, + }, + }, other: { other: null, }, From 1ca98b59b5be05551f8dc3d9d54c5961c3a461fd Mon Sep 17 00:00:00 2001 From: Stephen Rayner Date: Tue, 20 Aug 2024 08:36:36 +0100 Subject: [PATCH 28/28] chore: refactor model config into a single object --- src/app/configurations/page.tsx | 355 -------------------------------- 1 file changed, 355 deletions(-) diff --git a/src/app/configurations/page.tsx b/src/app/configurations/page.tsx index 47a95eb..2527f2d 100644 --- a/src/app/configurations/page.tsx +++ b/src/app/configurations/page.tsx @@ -55,361 +55,6 @@ interface AIConfiguration { apiKey: string | null; } -const configTemplates = [ - { - name: "OpenAI GPT-4", - provider: "openai", - model: "gpt-4-turbo", - temperature: 0.7, - maxTokens: 8192, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "OpenAI GPT-4 Optimized", - provider: "openai", - model: "gpt-4o", - temperature: 0.7, - maxTokens: 8192, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "OpenAI GPT-4 Mini", - provider: "openai", - model: "gpt-4o-mini", - temperature: 0.7, - maxTokens: 4096, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Anthropic Claude 3.5 Sonnet", - provider: "anthropic", - model: "claude-3-5-sonnet-20240620", - temperature: 0.7, - maxTokens: 200000, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Mistral Large", - provider: "mistral", - model: "mistral-large-latest", - temperature: 0.7, - maxTokens: 32768, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, - { - name: "Groq LLaMA 3.1", - provider: "groq", - model: "llama-3.1-70b-versatile", - temperature: 0.7, - maxTokens: 32768, - topP: 1, - frequencyPenalty: 0, - presencePenalty: 0, - }, -]; - -const providerModels = { - openai: ["gpt-4o", "gpt-4o-mini", "gpt-4-turbo"], - anthropic: [ - "claude-3-5-sonnet-20240620", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - ], - cohere: ["command-r", "command-r-plus"], - mistral: [ - "mistral-large-latest", - "mistral-medium-latest", - "mistral-small-latest", - "open-mistral-nemo", - "open-mixtral-8x22b", - "open-mixtral-8x7b", - "open-mistral-7b", - ], - groq: [ - "llama-3.1-405b-reasoning", - "llama-3.1-70b-versatile", - "llama-3.1-8b-instant", - "mixtral-8x7b-32768", - "gemma2-9b-it", - ], - ollama: [ - "llama3.1", - "codegemma", - "codegemma:2b", - "codegemma:7b", - "codellama", - "codellama:7b", - "codellama:13b", - "codellama:34b", - "codellama:70b", - "codellama:code", - "codellama:python", - "command-r", - "command-r:35b", - "command-r-plus", - "command-r-plus:104b", - "deepseek-coder-v2", - "deepseek-coder-v2:16b", - "deepseek-coder-v2:236b", - "falcon2", - "falcon2:11b", - "gemma", - "gemma:2b", - "gemma:7b", - "gemma2", - "gemma2:2b", - "gemma2:9b", - "gemma2:27b", - "llama2", - "llama2:7b", - "llama2:13b", - "llama2:70b", - "llama3", - "llama3:8b", - "llama3:70b", - "llama3-chatqa", - "llama3-chatqa:8b", - "llama3-chatqa:70b", - "llama3-gradient", - "llama3-gradient:8b", - "llama3-gradient:70b", - "llama3.1", - "llama3.1:8b", - "llama3.1:70b", - "llama3.1:405b", - "llava", - "llava:7b", - "llava:13b", - "llava:34b", - "llava-llama3", - "llava-llama3:8b", - "llava-phi3", - "llava-phi3:3.8b", - "mistral", - "mistral:7b", - "mistral-large", - "mistral-large:123b", - "mistral-nemo", - "mistral-nemo:12b", - "mixtral", - "mixtral:8x7b", - "mixtral:8x22b", - "moondream", - "moondream:1.8b", - "openhermes", - "openhermes:v2.5", - "qwen", - "qwen:7b", - "qwen:14b", - "qwen:32b", - "qwen:72b", - "qwen:110b", - "qwen2", - "qwen2:0.5b", - "qwen2:1.5b", - "qwen2:7b", - "qwen2:72b", - "phi3", - "phi3:3.8b", - "phi3:14b", - ], - openrouter: [ - "01-ai/yi-large", - "01-ai/yi-large-fc", - "01-ai/yi-large-turbo", - "01-ai/yi-34b", - "01-ai/yi-34b-chat", - "01-ai/yi-6b", - "01-ai/yi-vision", - "aetherwiing/mn-starcannon-12b", - "ai21/jamba-instruct", - "allenai/olmo-7b-instruct", - "alpindale/goliath-120b", - "alpindale/magnum-72b", - "anthropic/claude-1", - "anthropic/claude-1.2", - "anthropic/claude-2", - "anthropic/claude-2:beta", - "anthropic/claude-2.0", - "anthropic/claude-2.0:beta", - "anthropic/claude-2.1", - "anthropic/claude-2.1:beta", - "anthropic/claude-3-haiku", - "anthropic/claude-3-haiku:beta", - "anthropic/claude-3-opus", - "anthropic/claude-3-opus:beta", - "anthropic/claude-3-sonnet", - "anthropic/claude-3.5-sonnet", - "anthropic/claude-3.5-sonnet:beta", - "anthropic/claude-3-sonnet:beta", - "anthropic/claude-instant-1", - "anthropic/claude-instant-1:beta", - "anthropic/claude-instant-1.0", - "anthropic/claude-instant-1.1", - "austism/chronos-hermes-13b", - "cohere/command", - "cohere/command-r", - "cohere/command-r-plus", - "cognitivecomputations/dolphin-llama-3-70b", - "cognitivecomputations/dolphin-mixtral-8x22b", - "cognitivecomputations/dolphin-mixtral-8x7b", - "databricks/dbrx-instruct", - "deepseek/deepseek-chat", - "deepseek/deepseek-coder", - "google/gemini-flash-1.5", - "google/gemini-pro", - "google/gemini-pro-1.5", - "google/gemini-pro-1.5-exp", - "google/gemini-pro-vision", - "google/gemma-2-27b-it", - "google/gemma-2-9b-it", - "google/gemma-2-9b-it:free", - "google/gemma-7b-it", - "google/gemma-7b-it:free", - "google/gemma-7b-it:nitro", - "google/palm-2-chat-bison", - "google/palm-2-chat-bison-32k", - "google/palm-2-codechat-bison", - "google/palm-2-codechat-bison-32k", - "gryphe/mythomist-7b", - "gryphe/mythomist-7b:free", - "gryphe/mythomax-l2-13b", - "huggingfaceh4/zephyr-7b-beta:free", - "jondurbin/airoboros-l2-70b", - "lizpreciatior/lzlv-70b-fp16-hf", - "lynn/soliloquy-l3", - "mancer/weaver", - "meta-llama/codellama-34b-instruct", - "meta-llama/codellama-70b-instruct", - "meta-llama/llama-3-70b", - "meta-llama/llama-3-70b-instruct", - "meta-llama/llama-3-70b-instruct:nitro", - "meta-llama/llama-3-8b", - "meta-llama/llama-3-8b-instruct", - "meta-llama/llama-3-8b-instruct:extended", - "meta-llama/llama-3-8b-instruct:free", - "meta-llama/llama-3-8b-instruct:nitro", - "meta-llama/llama-3.1-405b", - "meta-llama/llama-3.1-405b-instruct", - "meta-llama/llama-3.1-70b-instruct", - "meta-llama/llama-3.1-8b-instruct", - "meta-llama/llama-3.1-8b-instruct:free", - "meta-llama/llama-guard-2-8b", - "microsoft/phi-3-medium-128k-instruct", - "microsoft/phi-3-medium-128k-instruct:free", - "microsoft/phi-3-medium-4k-instruct", - "microsoft/phi-3-mini-128k-instruct", - "microsoft/phi-3-mini-128k-instruct:free", - "microsoft/wizardlm-2-7b", - "microsoft/wizardlm-2-8x22b", - "mistralai/codestral-mamba", - "mistralai/mistral-7b-instruct", - "mistralai/mistral-7b-instruct:free", - "mistralai/mistral-7b-instruct:nitro", - "mistralai/mistral-7b-instruct-v0.1", - "mistralai/mistral-7b-instruct-v0.2", - "mistralai/mistral-7b-instruct-v0.3", - "mistralai/mistral-large", - "mistralai/mistral-medium", - "mistralai/mistral-nemo", - "mistralai/mistral-small", - "mistralai/mistral-tiny", - "mistralai/mixtral-8x22b", - "mistralai/mixtral-8x22b-instruct", - "mistralai/mixtral-8x7b", - "mistralai/mixtral-8x7b-instruct", - "mistralai/mixtral-8x7b-instruct:nitro", - "neversleep/llama-3-lumimaid-70b", - "neversleep/llama-3-lumimaid-8b", - "neversleep/llama-3-lumimaid-8b:extended", - "neversleep/noromaid-20b", - "nousresearch/hermes-2-pro-llama-3-8b", - "nousresearch/hermes-2-theta-llama-3-8b", - "nousresearch/hermes-3-llama-3.1-405b", - "nousresearch/hermes-3-llama-3.1-405b:extended", - "nousresearch/nous-capybara-7b", - "nousresearch/nous-capybara-7b:free", - "nousresearch/nous-hermes-2-mixtral-8x7b-dpo", - "nousresearch/nous-hermes-2-mixtral-8x7b-sft", - "nousresearch/nous-hermes-2-mistral-7b-dpo", - "nousresearch/nous-hermes-llama2-13b", - "nousresearch/nous-hermes-yi-34b", - "nothingiisreal/mn-celeste-12b", - "open-orca/mistral-7b-openorca", - "openchat/openchat-7b", - "openchat/openchat-7b:free", - "openchat/openchat-8b", - "openai/gpt-3.5-turbo-0613", - "openai/gpt-3.5-turbo-16k", - "openai/gpt-3.5-turbo-instruct", - "openai/gpt-4-32k", - "openai/gpt-4-32k-0314", - "openai/gpt-4-turbo", - "openai/gpt-4-turbo-preview", - "openai/gpt-4-vision-preview", - "openai/gpt-4o", - "openai/gpt-4o:extended", - "openai/gpt-4o-2024-05-13", - "openai/gpt-4o-2024-08-06", - "openai/gpt-4o-latest", - "openai/gpt-4o-mini", - "openai/gpt-4o-mini-2024-07-18", - "openrouter/auto", - "openrouter/flavor-of-the-week", - "perplexity/llama-3-sonar-large-32k-chat", - "perplexity/llama-3-sonar-large-32k-online", - "perplexity/llama-3-sonar-small-32k-chat", - "perplexity/llama-3-sonar-small-32k-online", - "perplexity/llama-3.1-sonar-huge-128k-online", - "perplexity/llama-3.1-sonar-large-128k-chat", - "perplexity/llama-3.1-sonar-large-128k-online", - "perplexity/llama-3.1-sonar-small-128k-chat", - "perplexity/llama-3.1-sonar-small-128k-online", - "phind/phind-codellama-34b", - "pygmalionai/mythalion-13b", - "qwen/qwen-110b-chat", - "qwen/qwen-14b-chat", - "qwen/qwen-2-72b-instruct", - "qwen/qwen-2-7b-instruct", - "qwen/qwen-2-7b-instruct:free", - "qwen/qwen-32b-chat", - "qwen/qwen-4b-chat", - "qwen/qwen-72b-chat", - "qwen/qwen-7b-chat", - "recursal/eagle-7b", - "recursal/rwkv-5-3b-ai-town", - "rwkv/rwkv-5-world-3b", - "sao10k/fimbulvetr-11b-v2", - "sao10k/l3-euryale-70b", - "sao10k/l3-lunaris-8b", - "sao10k/l3-stheno-8b", - "snowflake/snowflake-arctic-instruct", - "sophosympatheia/midnight-rose-70b", - "teknium/openhermes-2-mistral-7b", - "teknium/openhermes-2.5-mistral-7b", - "togethercomputer/stripedhyena-hessian-7b", - "togethercomputer/stripedhyena-nous-7b", - "undi95/remm-slerp-l2-13b", - "undi95/remm-slerp-l2-13b:extended", - "undi95/toppy-m-7b", - "undi95/toppy-m-7b:free", - "undi95/toppy-m-7b:nitro", - "xwin-lm/xwin-lm-70b", - ], - other: ["Other"], -}; - export default function ConfigurationsPage() { const [configurations, setConfigurations] = useState([]); const [newConfig, setNewConfig] = useState>({});