Update LLM providers and constants (#1937)
- Updated constants in app/lib/.server/llm/constants.ts - Modified stream-text functionality in app/lib/.server/llm/stream-text.ts - Updated Anthropic provider in app/lib/modules/llm/providers/anthropic.ts - Modified GitHub provider in app/lib/modules/llm/providers/github.ts - Updated Google provider in app/lib/modules/llm/providers/google.ts - Modified OpenAI provider in app/lib/modules/llm/providers/openai.ts - Updated LLM types in app/lib/modules/llm/types.ts - Modified API route in app/routes/api.llmcall.ts
This commit is contained in:
@@ -22,6 +22,7 @@ export default class AnthropicProvider extends BaseProvider {
|
||||
label: 'Claude 3.5 Sonnet',
|
||||
provider: 'Anthropic',
|
||||
maxTokenAllowed: 200000,
|
||||
maxCompletionTokens: 128000,
|
||||
},
|
||||
|
||||
// Claude 3 Haiku: 200k context, fastest and most cost-effective
|
||||
@@ -30,6 +31,7 @@ export default class AnthropicProvider extends BaseProvider {
|
||||
label: 'Claude 3 Haiku',
|
||||
provider: 'Anthropic',
|
||||
maxTokenAllowed: 200000,
|
||||
maxCompletionTokens: 128000,
|
||||
},
|
||||
];
|
||||
|
||||
@@ -84,6 +86,7 @@ export default class AnthropicProvider extends BaseProvider {
|
||||
label: `${m.display_name} (${Math.floor(contextWindow / 1000)}k context)`,
|
||||
provider: this.name,
|
||||
maxTokenAllowed: contextWindow,
|
||||
maxCompletionTokens: 128000, // Claude models support up to 128k completion tokens
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -14,13 +14,31 @@ export default class GithubProvider extends BaseProvider {
|
||||
|
||||
// find more in https://github.com/marketplace?type=models
|
||||
staticModels: ModelInfo[] = [
|
||||
{ name: 'gpt-4o', label: 'GPT-4o', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'o1', label: 'o1-preview', provider: 'Github', maxTokenAllowed: 100000 },
|
||||
{ name: 'o1-mini', label: 'o1-mini', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'gpt-4o-mini', label: 'GPT-4o Mini', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'gpt-4-turbo', label: 'GPT-4 Turbo', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'gpt-4', label: 'GPT-4', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'gpt-3.5-turbo', label: 'GPT-3.5 Turbo', provider: 'Github', maxTokenAllowed: 8000 },
|
||||
{ name: 'gpt-4o', label: 'GPT-4o', provider: 'Github', maxTokenAllowed: 128000, maxCompletionTokens: 16384 },
|
||||
{ name: 'o1', label: 'o1-preview', provider: 'Github', maxTokenAllowed: 100000, maxCompletionTokens: 16384 },
|
||||
{ name: 'o1-mini', label: 'o1-mini', provider: 'Github', maxTokenAllowed: 65536, maxCompletionTokens: 8192 },
|
||||
{
|
||||
name: 'gpt-4o-mini',
|
||||
label: 'GPT-4o Mini',
|
||||
provider: 'Github',
|
||||
maxTokenAllowed: 128000,
|
||||
maxCompletionTokens: 16384,
|
||||
},
|
||||
{
|
||||
name: 'gpt-4-turbo',
|
||||
label: 'GPT-4 Turbo',
|
||||
provider: 'Github',
|
||||
maxTokenAllowed: 128000,
|
||||
maxCompletionTokens: 8192,
|
||||
},
|
||||
{ name: 'gpt-4', label: 'GPT-4', provider: 'Github', maxTokenAllowed: 8192, maxCompletionTokens: 8192 },
|
||||
{
|
||||
name: 'gpt-3.5-turbo',
|
||||
label: 'GPT-3.5 Turbo',
|
||||
provider: 'Github',
|
||||
maxTokenAllowed: 16385,
|
||||
maxCompletionTokens: 4096,
|
||||
},
|
||||
];
|
||||
|
||||
getModelInstance(options: {
|
||||
|
||||
@@ -17,10 +17,22 @@ export default class GoogleProvider extends BaseProvider {
|
||||
* Essential fallback models - only the most reliable/stable ones
|
||||
* Gemini 1.5 Pro: 2M context, excellent for complex reasoning and large codebases
|
||||
*/
|
||||
{ name: 'gemini-1.5-pro', label: 'Gemini 1.5 Pro', provider: 'Google', maxTokenAllowed: 2000000 },
|
||||
{
|
||||
name: 'gemini-1.5-pro',
|
||||
label: 'Gemini 1.5 Pro',
|
||||
provider: 'Google',
|
||||
maxTokenAllowed: 2000000,
|
||||
maxCompletionTokens: 32768,
|
||||
},
|
||||
|
||||
// Gemini 1.5 Flash: 1M context, fast and cost-effective
|
||||
{ name: 'gemini-1.5-flash', label: 'Gemini 1.5 Flash', provider: 'Google', maxTokenAllowed: 1000000 },
|
||||
{
|
||||
name: 'gemini-1.5-flash',
|
||||
label: 'Gemini 1.5 Flash',
|
||||
provider: 'Google',
|
||||
maxTokenAllowed: 1000000,
|
||||
maxCompletionTokens: 32768,
|
||||
},
|
||||
];
|
||||
|
||||
async getDynamicModels(
|
||||
@@ -89,11 +101,19 @@ export default class GoogleProvider extends BaseProvider {
|
||||
const maxAllowed = 2000000; // 2M tokens max
|
||||
const finalContext = Math.min(contextWindow, maxAllowed);
|
||||
|
||||
// Get completion token limit from Google API
|
||||
let completionTokens = 32768; // default fallback
|
||||
|
||||
if (m.outputTokenLimit && m.outputTokenLimit > 0) {
|
||||
completionTokens = Math.min(m.outputTokenLimit, 128000); // Cap at reasonable limit
|
||||
}
|
||||
|
||||
return {
|
||||
name: modelName,
|
||||
label: `${m.displayName} (${finalContext >= 1000000 ? Math.floor(finalContext / 1000000) + 'M' : Math.floor(finalContext / 1000) + 'k'} context)`,
|
||||
provider: this.name,
|
||||
maxTokenAllowed: finalContext,
|
||||
maxCompletionTokens: completionTokens,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@@ -17,10 +17,16 @@ export default class OpenAIProvider extends BaseProvider {
|
||||
* Essential fallback models - only the most stable/reliable ones
|
||||
* GPT-4o: 128k context, high performance, recommended for most tasks
|
||||
*/
|
||||
{ name: 'gpt-4o', label: 'GPT-4o', provider: 'OpenAI', maxTokenAllowed: 128000 },
|
||||
{ name: 'gpt-4o', label: 'GPT-4o', provider: 'OpenAI', maxTokenAllowed: 128000, maxCompletionTokens: 16384 },
|
||||
|
||||
// GPT-3.5-turbo: 16k context, fast and cost-effective
|
||||
{ name: 'gpt-3.5-turbo', label: 'GPT-3.5 Turbo', provider: 'OpenAI', maxTokenAllowed: 16000 },
|
||||
{
|
||||
name: 'gpt-3.5-turbo',
|
||||
label: 'GPT-3.5 Turbo',
|
||||
provider: 'OpenAI',
|
||||
maxTokenAllowed: 16000,
|
||||
maxCompletionTokens: 4096,
|
||||
},
|
||||
];
|
||||
|
||||
async getDynamicModels(
|
||||
|
||||
Reference in New Issue
Block a user