Skip to content

Commit 986d02e

Browse files
Merge branch 'yodamaster726-main'
2 parents 998e55b + 5166970 commit 986d02e

File tree

10 files changed

+460
-76
lines changed

10 files changed

+460
-76
lines changed

agent/src/index.ts

+2-9
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import readline from "readline";
3232
import yargs from "yargs";
3333
import path from "path";
3434
import { fileURLToPath } from "url";
35-
import { character } from "./character.ts";
35+
import blobert from "./blobert.ts";
3636
import type { DirectClient } from "@ai16z/client-direct";
3737

3838
const __filename = fileURLToPath(import.meta.url); // get the resolved path to the file
@@ -263,13 +263,6 @@ export function createAgent(
263263
});
264264
}
265265

266-
function intializeFsCache(baseDir: string, character: Character) {
267-
const cacheDir = path.resolve(baseDir, character.id, "cache");
268-
269-
const cache = new CacheManager(new FsCacheAdapter(cacheDir));
270-
return cache;
271-
}
272-
273266
function intializeDbCache(character: Character, db: IDatabaseCacheAdapter) {
274267
const cache = new CacheManager(new DbCacheAdapter(db, character.id));
275268
return cache;
@@ -317,7 +310,7 @@ const startAgents = async () => {
317310

318311
let charactersArg = args.characters || args.character;
319312

320-
let characters = [character];
313+
let characters = [blobert];
321314

322315
if (charactersArg) {
323316
characters = await loadCharacters(charactersArg);

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
"dependencies": {
4848
"ollama-ai-provider": "^0.16.1",
4949
"optional": "^0.1.4",
50-
"sharp": "^0.33.5"
50+
"sharp": "^0.33.5",
51+
"tslog": "^4.9.3"
5152
},
5253
"packageManager": "pnpm@9.12.3+sha512.cce0f9de9c5a7c95bef944169cc5dfe8741abfb145078c0d508b868056848a87c81e626246cb60967cbd7fd29a6c062ef73ff840d96b3c86c40ac92cf4a813ee"
5354
}

packages/core/src/defaultCharacter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const defaultCharacter: Character = {
55
username: "eliza",
66
plugins: [],
77
clients: [],
8-
modelProvider: ModelProviderName.OPENAI,
8+
modelProvider: ModelProviderName.OLLAMA,
99
settings: {
1010
secrets: {},
1111
voice: {

packages/core/src/embedding.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,10 @@ export async function embed(runtime: IAgentRuntime, input: string) {
8686
// 3. Fallback to OpenAI embedding model
8787
const embeddingModel = settings.USE_OPENAI_EMBEDDING
8888
? "text-embedding-3-small"
89-
: modelProvider.model?.[ModelClass.EMBEDDING] ||
90-
models[ModelProviderName.OPENAI].model[ModelClass.EMBEDDING];
89+
: runtime.character.modelProvider === ModelProviderName.OLLAMA
90+
? settings.OLLAMA_EMBEDDING_MODEL || "mxbai-embed-large"
91+
: modelProvider.model?.[ModelClass.EMBEDDING] ||
92+
models[ModelProviderName.OPENAI].model[ModelClass.EMBEDDING];
9193

9294
if (!embeddingModel) {
9395
throw new Error("No embedding model configured");

packages/core/src/generation.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,12 @@ export async function generateText({
6262
return "";
6363
}
6464

65-
elizaLogger.log("Genarating text...");
65+
elizaLogger.log("Generating text...");
66+
67+
elizaLogger.info("Generating text with options:", {
68+
modelProvider: runtime.modelProvider,
69+
model: modelClass,
70+
});
6671

6772
const provider = runtime.modelProvider;
6873
const endpoint =
@@ -84,6 +89,8 @@ export async function generateText({
8489
model = runtime.getSetting("LLAMACLOUD_MODEL_SMALL");
8590
}
8691

92+
elizaLogger.info("Selected model:", model);
93+
8794
const temperature = models[provider].settings.temperature;
8895
const frequency_penalty = models[provider].settings.frequency_penalty;
8996
const presence_penalty = models[provider].settings.presence_penalty;
@@ -709,7 +716,7 @@ export async function generateMessageResponse({
709716
let retryLength = 1000; // exponential backoff
710717
while (true) {
711718
try {
712-
elizaLogger.log("Genarating message response..");
719+
elizaLogger.log("Generating message response..");
713720

714721
const response = await generateText({
715722
runtime,

packages/core/src/logger.ts

+34-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
class ElizaLogger {
1+
import settings from "./settings.ts";
2+
import { Logger } from "tslog";
3+
4+
interface IElizaLogger extends Logger<IElizaLogger> {
5+
progress(message: string): void;
6+
}
7+
8+
class ElizaLogger implements IElizaLogger {
29
constructor() {
310
// Check if we're in Node.js environment
411
this.isNode =
@@ -7,7 +14,7 @@ class ElizaLogger {
714
process.versions.node != null;
815

916
// Set verbose based on environment
10-
this.verbose = this.isNode ? process.env.verbose === "true" : false;
17+
this.verbose = this.isNode ? settings.VERBOSE === "true" : false;
1118
}
1219

1320
private isNode: boolean;
@@ -173,6 +180,7 @@ class ElizaLogger {
173180
}
174181
}
175182

183+
// @ts-expect-error- custom implementation
176184
log(...strings) {
177185
this.#logWithStyle(strings, {
178186
fg: "white",
@@ -182,6 +190,7 @@ class ElizaLogger {
182190
});
183191
}
184192

193+
// @ts-expect-error- custom implementation
185194
warn(...strings) {
186195
this.#logWithStyle(strings, {
187196
fg: "yellow",
@@ -191,6 +200,7 @@ class ElizaLogger {
191200
});
192201
}
193202

203+
// @ts-expect-error- custom implementation
194204
error(...strings) {
195205
this.#logWithStyle(strings, {
196206
fg: "red",
@@ -200,6 +210,7 @@ class ElizaLogger {
200210
});
201211
}
202212

213+
// @ts-expect-error- custom implementation
203214
info(...strings) {
204215
this.#logWithStyle(strings, {
205216
fg: "blue",
@@ -209,15 +220,7 @@ class ElizaLogger {
209220
});
210221
}
211222

212-
success(...strings) {
213-
this.#logWithStyle(strings, {
214-
fg: "green",
215-
bg: "",
216-
icon: "\u2713",
217-
groupTitle: ` ${this.successesTitle}`,
218-
});
219-
}
220-
223+
// @ts-expect-error- custom implementation
221224
debug(...strings) {
222225
if (!this.verbose) return;
223226
this.#logWithStyle(strings, {
@@ -228,6 +231,15 @@ class ElizaLogger {
228231
});
229232
}
230233

234+
success(...strings) {
235+
this.#logWithStyle(strings, {
236+
fg: "green",
237+
bg: "",
238+
icon: "\u2713",
239+
groupTitle: ` ${this.successesTitle}`,
240+
});
241+
}
242+
231243
assert(...strings) {
232244
this.#logWithStyle(strings, {
233245
fg: "cyan",
@@ -236,6 +248,17 @@ class ElizaLogger {
236248
groupTitle: ` ${this.assertsTitle}`,
237249
});
238250
}
251+
252+
progress(message: string) {
253+
if (this.isNode) {
254+
// Clear the current line and move cursor to beginning
255+
process.stdout.clearLine(0);
256+
process.stdout.cursorTo(0);
257+
process.stdout.write(message);
258+
} else {
259+
console.log(message);
260+
}
261+
}
239262
}
240263

241264
export const elizaLogger = new ElizaLogger();

packages/core/src/runtime.ts

+30
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,9 @@ export class AgentRuntime implements IAgentRuntime {
176176
return;
177177
}
178178

179+
// Add the service to the services map
179180
this.services.set(serviceType, service);
181+
elizaLogger.success(`Service ${serviceType} registered successfully`);
180182
}
181183

182184
/**
@@ -217,6 +219,12 @@ export class AgentRuntime implements IAgentRuntime {
217219
cacheManager: ICacheManager;
218220
logging?: boolean;
219221
}) {
222+
elizaLogger.info("Initializing AgentRuntime with options:", {
223+
character: opts.character?.name,
224+
modelProvider: opts.modelProvider,
225+
characterModelProvider: opts.character?.modelProvider,
226+
});
227+
220228
this.#conversationLength =
221229
opts.conversationLength ?? this.#conversationLength;
222230
this.databaseAdapter = opts.databaseAdapter;
@@ -280,10 +288,32 @@ export class AgentRuntime implements IAgentRuntime {
280288
});
281289

282290
this.serverUrl = opts.serverUrl ?? this.serverUrl;
291+
292+
elizaLogger.info("Setting model provider...");
293+
elizaLogger.info(
294+
"- Character model provider:",
295+
this.character.modelProvider
296+
);
297+
elizaLogger.info("- Opts model provider:", opts.modelProvider);
298+
elizaLogger.info("- Current model provider:", this.modelProvider);
299+
283300
this.modelProvider =
284301
this.character.modelProvider ??
285302
opts.modelProvider ??
286303
this.modelProvider;
304+
305+
elizaLogger.info("Selected model provider:", this.modelProvider);
306+
307+
// Validate model provider
308+
if (!Object.values(ModelProviderName).includes(this.modelProvider)) {
309+
elizaLogger.error("Invalid model provider:", this.modelProvider);
310+
elizaLogger.error(
311+
"Available providers:",
312+
Object.values(ModelProviderName)
313+
);
314+
throw new Error(`Invalid model provider: ${this.modelProvider}`);
315+
}
316+
287317
if (!this.serverUrl) {
288318
elizaLogger.warn("No serverUrl provided, defaulting to localhost");
289319
}

packages/plugin-node/src/services/image.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,23 @@ export class ImageDescriptionService
6363
env.backends.onnx.wasm.proxy = false;
6464
env.backends.onnx.wasm.numThreads = 1;
6565

66-
elizaLogger.log("Downloading Florence model...");
66+
elizaLogger.info("Downloading Florence model...");
6767

6868
this.model = await Florence2ForConditionalGeneration.from_pretrained(
6969
this.modelId,
7070
{
7171
device: "gpu",
7272
progress_callback: (progress) => {
7373
if (progress.status === "downloading") {
74-
elizaLogger.log(
75-
`Model download progress: ${JSON.stringify(progress)}`
74+
const percent = (
75+
(progress.loaded / progress.total) *
76+
100
77+
).toFixed(1);
78+
const dots = ".".repeat(
79+
Math.floor(Number(percent) / 5)
80+
);
81+
elizaLogger.info(
82+
`Downloading Florence model: [${dots.padEnd(20, " ")}] ${percent}%`
7683
);
7784
}
7885
},
@@ -81,10 +88,14 @@ export class ImageDescriptionService
8188

8289
elizaLogger.success("Florence model downloaded successfully");
8390

91+
elizaLogger.info("Downloading processor...");
8492
this.processor = (await AutoProcessor.from_pretrained(
8593
this.modelId
8694
)) as Florence2Processor;
95+
96+
elizaLogger.info("Downloading tokenizer...");
8797
this.tokenizer = await AutoTokenizer.from_pretrained(this.modelId);
98+
elizaLogger.success("Image service initialization complete");
8899
}
89100

90101
async describeImage(

0 commit comments

Comments
 (0)