Skip to content

Commit c6cad48

Browse files
committed
feat: Add token retrieval for model provider in runtime configuration
1 parent 11be4b3 commit c6cad48

File tree

3 files changed

+17
-17
lines changed

3 files changed

+17
-17
lines changed

agent/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1556,6 +1556,7 @@ const startAgents = async () => {
15561556

15571557
directClient.loadCharacterTryPath = loadCharacterTryPath;
15581558
directClient.jsonToCharacter = jsonToCharacter;
1559+
directClient.getTokenForProvider = getTokenForProvider;
15591560
directClient.db = db;
15601561
directClient.plugins = await getPlugins();
15611562
directClient.clients = await getClients();

packages/client-direct/src/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ export class DirectClient {
163163
public db: TypeDatabaseAdapter;
164164
public plugins: any[];
165165
public clients: any[];
166+
public getTokenForProvider: Function; // store getTokenForProvider functor
166167

167168
constructor() {
168169
elizaLogger.log("DirectClient constructor");

packages/client-direct/src/manage-api.ts

+15-17
Original file line numberDiff line numberDiff line change
@@ -748,23 +748,6 @@ export function createManageApiRouter(
748748
return;
749749
}
750750

751-
// if(runtime.character.modelProvider !== modelProvider) {
752-
// runtime.character.modelProvider = modelProvider;
753-
// runtime.modelProvider = modelProvider;
754-
// if(secrets) {
755-
// Object.assign(runtime.character.settings, secrets);
756-
// }
757-
// elizaLogger.log(`runtime model provider changed to ${modelProvider}`);
758-
// }
759-
760-
await runtime.ensureConnection(
761-
userId,
762-
roomId,
763-
runtime.character.username,
764-
runtime.character.name,
765-
"direct"
766-
);
767-
768751
const tpl = await directClient.loadCharacterTryPath('characters/lpmanager.character.json');
769752
if(!tpl) {
770753
res.status(500).send({ error: "Failed to load template" });
@@ -776,6 +759,21 @@ export function createManageApiRouter(
776759
tpl.settings.secrets = secrets;
777760
}
778761

762+
if(runtime.character.modelProvider !== modelProvider) {
763+
runtime.character.modelProvider = modelProvider;
764+
runtime.modelProvider = modelProvider;
765+
runtime.token = directClient.getTokenForProvider(modelProvider, tpl);
766+
elizaLogger.log(`runtime model provider changed to ${modelProvider}`);
767+
}
768+
769+
await runtime.ensureConnection(
770+
userId,
771+
roomId,
772+
runtime.character.username,
773+
runtime.character.name,
774+
"direct"
775+
);
776+
779777
const text = `According to the user-provided [description] in accordance with the provided json format [template] to generate the user's json content.
780778
[description]: ${description}.
781779
[template]: ${JSON.stringify(tpl)}`;

0 commit comments

Comments
 (0)