Skip to content

Commit

Permalink
Cleaned up Logging
Browse files Browse the repository at this point in the history
Cleaned up logging and added some error handling
  • Loading branch information
antman1p authored Jan 16, 2025
1 parent 575310e commit 0ef1309
Showing 1 changed file with 55 additions and 37 deletions.
92 changes: 55 additions & 37 deletions packages/adapter-supabase/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,37 +118,55 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
}

async init() {
// Check vector extension and schema
const vectorExt = await this.supabase.rpc('check_vector_extension');
if (!vectorExt.data) {
elizaLogger.error("Vector extension not found in database");
throw new Error("Vector extension required");
}
// Test connection first
try {
const { data, error } = await this.supabase
.from('app_config')
.select('key')
.limit(1);

// Set embedding configuration based on provider and model
const embeddingConfig = getEmbeddingConfig();
const configQueries = [];

// Set provider-specific configuration
const providerValue = embeddingConfig.provider.toLowerCase();
configQueries.push(
this.supabase.rpc('set_config', {
key: 'app.embedding_provider',
value: providerValue
})
);

// Set embedding dimensions based on provider
const dimensions = this.getEmbeddingDimensions(embeddingConfig.provider, embeddingConfig.model);
configQueries.push(
this.supabase.rpc('set_config', {
key: 'app.embedding_dimensions',
value: dimensions.toString()
})
);

// Execute all configuration queries
await Promise.all(configQueries);
if (error) {
elizaLogger.error("Failed to connect to Supabase:", error);
throw new Error("Database connection failed");
}

elizaLogger.debug("Successfully connected to Supabase");

// Now check vector extension
const vectorExt = await this.supabase.rpc('check_vector_extension');
if (!vectorExt.data) {
elizaLogger.error("Vector extension not found in database");
throw new Error("Vector extension required");
}

// Set embedding configuration based on provider and model
const embeddingConfig = getEmbeddingConfig();
const configQueries = [];

// Set provider-specific configuration
const providerValue = embeddingConfig.provider.toLowerCase();
configQueries.push(
this.supabase.rpc('set_config', {
key: 'app.embedding_provider',
value: providerValue
})
);

// Set embedding dimensions based on provider
const dimensions = this.getEmbeddingDimensions(embeddingConfig.provider, embeddingConfig.model);
configQueries.push(
this.supabase.rpc('set_config', {
key: 'app.embedding_dimensions',
value: dimensions.toString()
})
);

// Execute all configuration queries
await Promise.all(configQueries);
} catch (error) {
elizaLogger.error("Database initialization failed:", error);
throw error;
}
}

private getEmbeddingDimensions(provider: string, modelName: string): number {
Expand Down Expand Up @@ -693,8 +711,8 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
}
const query = {
query_table_name: tableName,
query_roomId: roomId,
query_unique: !!unique,
query_roomid: roomId,
query_unique: !!unique
};
const result = await this.supabase.rpc("count_memories", query);

Expand Down Expand Up @@ -726,9 +744,9 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
}

const opts = {
query_roomId: params.roomId,
query_userId: params.userId || null,
only_in_progress: params.onlyInProgress || false,
query_roomid: params.roomId,
query_userid: params.userId || null,
row_count: params.count || null
};

Expand Down Expand Up @@ -1079,7 +1097,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
searchText?: string;
}): Promise<RAGKnowledgeItem[]> {
const tableName = this.getKnowledgeTableName(params.embedding);
elizaLogger.info(`Searching knowledge in ${tableName}`);
elizaLogger.debug(`Searching knowledge in ${tableName}`);

const { data, error } = await this.supabase.rpc('search_knowledge', {
query_table_name: tableName,
Expand Down Expand Up @@ -1108,7 +1126,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {
async createKnowledge(knowledge: RAGKnowledgeItem): Promise<void> {
try {
const tableName = this.getKnowledgeTableName(knowledge.embedding);
elizaLogger.info("SupabaseAdapter createKnowledge:", {
elizaLogger.debug("SupabaseAdapter createKnowledge:", {
knowledgeId: knowledge.id,
agentId: knowledge.agentId,
tableName,
Expand Down Expand Up @@ -1136,7 +1154,7 @@ export class SupabaseDatabaseAdapter extends DatabaseAdapter {

if (error) {
if (error.code === '23505' && knowledge.content.metadata?.isShared) {
elizaLogger.info(`Shared knowledge ${knowledge.id} already exists, skipping`);
elizaLogger.debug(`Shared knowledge ${knowledge.id} already exists, skipping`);
return;
}
elizaLogger.error(`Error creating knowledge in ${tableName}:`, {
Expand Down

0 comments on commit 0ef1309

Please sign in to comment.