Skip to content

Commit 9192179

Browse files
authored
Merge pull request #1008 from proteanx/venice
feat: add venice.ai api model provider
2 parents 5a3d348 + d3e0f78 commit 9192179

File tree

5 files changed

+50
-0
lines changed

5 files changed

+50
-0
lines changed

.env.example

+6
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,12 @@ WALLET_SECRET_SALT= # ONLY DEFINE IF YOU WANT TO USE TEE Plugin, otherwise it wi
225225
# Galadriel Configuration
226226
GALADRIEL_API_KEY=gal-* # Get from https://dashboard.galadriel.com/
227227

228+
# Venice Configuration
229+
VENICE_API_KEY= # generate from venice settings
230+
SMALL_VENICE_MODEL= # Default: llama-3.3-70b
231+
MEDIUM_VENICE_MODEL= # Default: llama-3.3-70b
232+
LARGE_VENICE_MODEL= # Default: llama-3.1-405b
233+
228234
# fal.ai Configuration
229235
FAL_API_KEY=
230236
FAL_AI_LORA_PATH=

agent/src/index.ts

+5
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,11 @@ export function getTokenForProvider(
286286
character.settings?.secrets?.HYPERBOLIC_API_KEY ||
287287
settings.HYPERBOLIC_API_KEY
288288
);
289+
case ModelProviderName.VENICE:
290+
return (
291+
character.settings?.secrets?.VENICE_API_KEY ||
292+
settings.VENICE_API_KEY
293+
);
289294
}
290295
}
291296

packages/core/src/generation.ts

+23
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,29 @@ export async function generateText({
533533
break;
534534
}
535535

536+
case ModelProviderName.VENICE: {
537+
elizaLogger.debug("Initializing Venice model.");
538+
const venice = createOpenAI({
539+
apiKey: apiKey,
540+
baseURL: endpoint
541+
});
542+
543+
const { text: veniceResponse } = await aiGenerateText({
544+
model: venice.languageModel(model),
545+
prompt: context,
546+
system:
547+
runtime.character.system ??
548+
settings.SYSTEM_PROMPT ??
549+
undefined,
550+
temperature: temperature,
551+
maxTokens: max_response_length,
552+
});
553+
554+
response = veniceResponse;
555+
elizaLogger.debug("Received response from Venice model.");
556+
break;
557+
}
558+
536559
default: {
537560
const errorMessage = `Unsupported provider: ${provider}`;
538561
elizaLogger.error(errorMessage);

packages/core/src/models.ts

+14
Original file line numberDiff line numberDiff line change
@@ -451,6 +451,20 @@ export const models: Models = {
451451
[ModelClass.IMAGE]: settings.IMAGE_HYPERBOLIC_MODEL || "FLUX.1-dev",
452452
},
453453
},
454+
[ModelProviderName.VENICE]: {
455+
endpoint: "https://api.venice.ai/api/v1",
456+
settings: {
457+
stop: [],
458+
maxInputTokens: 128000,
459+
maxOutputTokens: 8192,
460+
temperature: 0.6,
461+
},
462+
model: {
463+
[ModelClass.SMALL]: settings.SMALL_VENICE_MODEL || "llama-3.3-70b",
464+
[ModelClass.MEDIUM]: settings.MEDIUM_VENICE_MODEL || "llama-3.3-70b",
465+
[ModelClass.LARGE]: settings.LARGE_VENICE_MODEL || "llama-3.1-405b",
466+
},
467+
},
454468
};
455469

456470
export function getModel(provider: ModelProviderName, type: ModelClass) {

packages/core/src/types.ts

+2
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ export type Models = {
207207
[ModelProviderName.VOLENGINE]: Model;
208208
[ModelProviderName.NANOGPT]: Model;
209209
[ModelProviderName.HYPERBOLIC]: Model;
210+
[ModelProviderName.VENICE]: Model;
210211
};
211212

212213
/**
@@ -234,6 +235,7 @@ export enum ModelProviderName {
234235
VOLENGINE = "volengine",
235236
NANOGPT = "nanogpt",
236237
HYPERBOLIC = "hyperbolic",
238+
VENICE = "venice",
237239
}
238240

239241
/**

0 commit comments

Comments
 (0)