Skip to content

Commit ac87ec7

Browse files
authored
Merge pull request elizaOS#2082 from francis2tm/feat/atoma-provider
feat: atoma provider
2 parents 3b334cb + 5c0f8f3 commit ac87ec7

File tree

5 files changed

+77
-1
lines changed

5 files changed

+77
-1
lines changed

.env.example

+7
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,13 @@ EMBEDDING_OPENAI_MODEL= # Default: text-embedding-3-small
8787
IMAGE_OPENAI_MODEL= # Default: dall-e-3
8888
USE_OPENAI_EMBEDDING= # Set to TRUE for OpenAI/1536, leave blank for local
8989

90+
# Atoma SDK Configuration
91+
ATOMASDK_BEARER_AUTH= # Atoma SDK Bearer Auth token
92+
ATOMA_API_URL= # Default: https://api.atoma.network/v1
93+
SMALL_ATOMA_MODEL= # Default: meta-llama/Llama-3.3-70B-Instruct
94+
MEDIUM_ATOMA_MODEL= # Default: meta-llama/Llama-3.3-70B-Instruct
95+
LARGE_ATOMA_MODEL= # Default: meta-llama/Llama-3.3-70B-Instruct
96+
9097
# Eternal AI's Decentralized Inference API
9198
ETERNALAI_URL=
9299
ETERNALAI_MODEL= # Default: "NousResearch/Hermes-3-Llama-3.1-70B-FP8"

agent/src/index.ts

+5
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,11 @@ export function getTokenForProvider(
476476
character.settings?.secrets?.VENICE_API_KEY ||
477477
settings.VENICE_API_KEY
478478
);
479+
case ModelProviderName.ATOMA:
480+
return (
481+
character.settings?.secrets?.ATOMASDK_BEARER_AUTH ||
482+
settings.ATOMASDK_BEARER_AUTH
483+
);
479484
case ModelProviderName.AKASH_CHAT_API:
480485
return (
481486
character.settings?.secrets?.AKASH_CHAT_API_KEY ||

packages/core/src/generation.ts

+31-1
Original file line numberDiff line numberDiff line change
@@ -1032,6 +1032,36 @@ export async function generateText({
10321032
break;
10331033
}
10341034

1035+
case ModelProviderName.ATOMA: {
1036+
elizaLogger.debug("Initializing Atoma model.");
1037+
const atoma = createOpenAI({
1038+
apiKey,
1039+
baseURL: endpoint,
1040+
fetch: runtime.fetch,
1041+
});
1042+
1043+
const { text: atomaResponse } = await aiGenerateText({
1044+
model: atoma.languageModel(model),
1045+
prompt: context,
1046+
system:
1047+
runtime.character.system ??
1048+
settings.SYSTEM_PROMPT ??
1049+
undefined,
1050+
tools: tools,
1051+
onStepFinish: onStepFinish,
1052+
maxSteps: maxSteps,
1053+
temperature: temperature,
1054+
maxTokens: max_response_length,
1055+
frequencyPenalty: frequency_penalty,
1056+
presencePenalty: presence_penalty,
1057+
experimental_telemetry: experimental_telemetry,
1058+
});
1059+
1060+
response = atomaResponse;
1061+
elizaLogger.debug("Received response from Atoma model.");
1062+
break;
1063+
}
1064+
10351065
case ModelProviderName.GALADRIEL: {
10361066
elizaLogger.debug("Initializing Galadriel model.");
10371067
const headers = {};
@@ -2417,4 +2447,4 @@ export async function generateTweetActions({
24172447
await new Promise((resolve) => setTimeout(resolve, retryDelay));
24182448
retryDelay *= 2;
24192449
}
2420-
}
2450+
}

packages/core/src/models.ts

+32
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,38 @@ export const models: Models = {
998998
},
999999
},
10001000
},
1001+
[ModelProviderName.ATOMA]: {
1002+
endpoint: settings.ATOMA_API_URL || "https://api.atoma.network/v1",
1003+
model: {
1004+
[ModelClass.SMALL]: {
1005+
name:
1006+
settings.SMALL_ATOMA_MODEL ||
1007+
"meta-llama/Llama-3.3-70B-Instruct",
1008+
stop: [],
1009+
maxInputTokens: 128000,
1010+
maxOutputTokens: 8192,
1011+
temperature: 0.7,
1012+
},
1013+
[ModelClass.MEDIUM]: {
1014+
name:
1015+
settings.MEDIUM_ATOMA_MODEL ||
1016+
"meta-llama/Llama-3.3-70B-Instruct",
1017+
stop: [],
1018+
maxInputTokens: 128000,
1019+
maxOutputTokens: 8192,
1020+
temperature: 0.7,
1021+
},
1022+
[ModelClass.LARGE]: {
1023+
name:
1024+
settings.LARGE_ATOMA_MODEL ||
1025+
"meta-llama/Llama-3.3-70B-Instruct",
1026+
stop: [],
1027+
maxInputTokens: 128000,
1028+
maxOutputTokens: 8192,
1029+
temperature: 0.7,
1030+
},
1031+
},
1032+
},
10011033
};
10021034

10031035
export function getModelSettings(

packages/core/src/types.ts

+2
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ export type Models = {
229229
[ModelProviderName.LIVEPEER]: Model;
230230
[ModelProviderName.DEEPSEEK]: Model;
231231
[ModelProviderName.INFERA]: Model;
232+
[ModelProviderName.ATOMA]: Model;
232233
};
233234

234235
/**
@@ -264,6 +265,7 @@ export enum ModelProviderName {
264265
LETZAI = "letzai",
265266
DEEPSEEK = "deepseek",
266267
INFERA = "infera",
268+
ATOMA = "atoma",
267269
}
268270

269271
/**

0 commit comments

Comments
 (0)