Skip to content

Commit 3afd61c

Browse files
authored
Merge pull request #926 from dylan1951/add-nano-gpt-provider
feat: Add NanoGPT provider
2 parents a882883 + e9a9699 commit 3afd61c

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

.env.example

+6
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ GOOGLE_GENERATIVE_AI_API_KEY= # Gemini API key
1818

1919
ALI_BAILIAN_API_KEY= # Ali Bailian API Key
2020
VOLENGINE_API_KEY= # VolEngine API Key
21+
NANOGPT_API_KEY= # NanoGPT API Key
2122

2223
HYPERBOLIC_API_KEY= # Hyperbolic API Key
2324
HYPERBOLIC_MODEL=
@@ -96,6 +97,11 @@ MEDIUM_GROQ_MODEL= # Default: llama-3.3-70b-versatile
9697
LARGE_GROQ_MODEL= # Default: llama-3.2-90b-vision-preview
9798
EMBEDDING_GROQ_MODEL= # Default: llama-3.1-8b-instant
9899

100+
# NanoGPT Configuration
101+
SMALL_NANOGPT_MODEL= # Default: gpt-4o-mini
102+
MEDIUM_NANOGPT_MODEL= # Default: gpt-4o
103+
LARGE_NANOGPT_MODEL= # Default: gpt-4o
104+
99105
#LlamaLocal Configuration
100106
LLAMALOCAL_PATH= # Default: "" which is the current directory in plugin-node/dist/ which gets destroyed and recreated on every build
101107

agent/src/index.ts

+5
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,11 @@ export function getTokenForProvider(
270270
character.settings?.secrets?.VOLENGINE_API_KEY ||
271271
settings.VOLENGINE_API_KEY
272272
);
273+
case ModelProviderName.NANOGPT:
274+
return (
275+
character.settings?.secrets?.NANOGPT_API_KEY ||
276+
settings.NANOGPT_API_KEY
277+
);
273278
case ModelProviderName.HYPERBOLIC:
274279
return (
275280
character.settings?.secrets?.HYPERBOLIC_API_KEY ||

packages/core/src/generation.ts

+2
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ export async function generateText({
151151
case ModelProviderName.ALI_BAILIAN:
152152
case ModelProviderName.VOLENGINE:
153153
case ModelProviderName.LLAMACLOUD:
154+
case ModelProviderName.NANOGPT:
154155
case ModelProviderName.HYPERBOLIC:
155156
case ModelProviderName.TOGETHER: {
156157
elizaLogger.debug("Initializing OpenAI model.");
@@ -1243,6 +1244,7 @@ export async function handleProvider(
12431244
case ModelProviderName.VOLENGINE:
12441245
case ModelProviderName.LLAMACLOUD:
12451246
case ModelProviderName.TOGETHER:
1247+
case ModelProviderName.NANOGPT:
12461248
return await handleOpenAI(options);
12471249
case ModelProviderName.ANTHROPIC:
12481250
return await handleAnthropic(options);

packages/core/src/models.ts

+16
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,22 @@ export const models: Models = {
410410
[ModelClass.EMBEDDING]: "doubao-embedding",
411411
},
412412
},
413+
[ModelProviderName.NANOGPT]: {
414+
endpoint: "https://nano-gpt.com/api/v1",
415+
settings: {
416+
stop: [],
417+
maxInputTokens: 128000,
418+
maxOutputTokens: 8192,
419+
frequency_penalty: 0.0,
420+
presence_penalty: 0.0,
421+
temperature: 0.6,
422+
},
423+
model: {
424+
[ModelClass.SMALL]: settings.SMALL_NANOGPT_MODEL || "gpt-4o-mini",
425+
[ModelClass.MEDIUM]: settings.MEDIUM_NANOGPT_MODEL || "gpt-4o",
426+
[ModelClass.LARGE]: settings.LARGE_NANOGPT_MODEL || "gpt-4o",
427+
}
428+
},
413429
[ModelProviderName.HYPERBOLIC]: {
414430
endpoint: "https://api.hyperbolic.xyz/v1",
415431
settings: {

packages/core/src/types.ts

+2
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ export type Models = {
205205
[ModelProviderName.GAIANET]: Model;
206206
[ModelProviderName.ALI_BAILIAN]: Model;
207207
[ModelProviderName.VOLENGINE]: Model;
208+
[ModelProviderName.NANOGPT]: Model;
208209
[ModelProviderName.HYPERBOLIC]: Model;
209210
};
210211

@@ -231,6 +232,7 @@ export enum ModelProviderName {
231232
GAIANET = "gaianet",
232233
ALI_BAILIAN = "ali_bailian",
233234
VOLENGINE = "volengine",
235+
NANOGPT = "nanogpt",
234236
HYPERBOLIC = "hyperbolic",
235237
}
236238

0 commit comments

Comments
 (0)