1- import { type OpenAIProvider , createOpenAI } from '@ai-sdk/openai ' ;
1+ import { FireworksProvider , createFireworks } from '@ai-sdk/fireworks ' ;
22import { costPerMilTokens } from '#llm/base-llm' ;
33import { AiLLM } from '#llm/services/ai-llm' ;
44import type { LLM , LlmCostFunction } from '#shared/llm/llm.model' ;
55import { currentUser } from '#user/userContext' ;
66
77export const FIREWORKS_SERVICE = 'fireworks' ;
88
9- export class Fireworks extends AiLLM < OpenAIProvider > {
9+ export class Fireworks extends AiLLM < FireworksProvider > {
1010 constructor ( displayName : string , model : string , maxOutputTokens : number , calculateCosts : LlmCostFunction ) {
1111 super ( { displayName, service : FIREWORKS_SERVICE , modelId : model , maxInputTokens : maxOutputTokens , calculateCosts } ) ;
1212 }
@@ -15,11 +15,11 @@ export class Fireworks extends AiLLM<OpenAIProvider> {
1515 return currentUser ( ) ?. llmConfig . fireworksKey ?. trim ( ) || process . env . FIREWORKS_API_KEY ;
1616 }
1717
18- provider ( ) : OpenAIProvider {
18+ provider ( ) : FireworksProvider {
1919 if ( ! this . aiProvider ) {
2020 const apiKey = this . apiKey ( ) ;
2121 if ( ! apiKey ) throw new Error ( 'No API key provided' ) ;
22- this . aiProvider = createOpenAI ( {
22+ this . aiProvider = createFireworks ( {
2323 apiKey,
2424 baseURL : 'https://api.fireworks.ai/inference/v1' ,
2525 } ) ;
@@ -30,7 +30,7 @@ export class Fireworks extends AiLLM<OpenAIProvider> {
3030
3131export function fireworksLLMRegistry ( ) : Record < string , ( ) => LLM > {
3232 return {
33- [ `${ FIREWORKS_SERVICE } :accounts/fireworks/models/fireworks/ glm-4p6` ] : fireworksGLM_4_6 ,
33+ [ `${ FIREWORKS_SERVICE } :accounts/fireworks/models/glm-4p6` ] : fireworksGLM_4_6 ,
3434 } ;
3535}
3636
@@ -41,8 +41,3 @@ export function fireworksGLM_4_6(): LLM {
4141export function fireworksDeepSeekR1_Fast ( ) : LLM {
4242 return new Fireworks ( 'DeepSeek R1 Fast (Fireworks)' , 'accounts/fireworks/models/deepseek-r1' , 160_000 , costPerMilTokens ( 3 , 8 ) ) ;
4343}
44-
45- // Not available in serverless
46- // export function fireworksLlama3_70B_R1_Distill(): LLM {
47- // return new Fireworks('LLama3 70b R1 Distill (Fireworks)', 'accounts/fireworks/models/deepseek-r1-distill-llama-70b', 131_072, perMilTokens(0.9), perMilTokens(0.9));
48- // }
0 commit comments