mongodb-rag
Version:
RAG (Retrieval Augmented Generation) library for MongoDB Vector Search
51 lines (44 loc) • 1.72 kB
JavaScript
// bin/commands/config/edit-config.js
import fs from 'fs';
import chalk from 'chalk';
import { promptForMongoConfig, promptForProviderConfig } from '../../utils/prompts.js';
export async function editConfig(configPath) {
console.log(chalk.cyan('🔧 Editing MongoRAG configuration...\n'));
try {
// Load existing config
let config = {};
if (fs.existsSync(configPath)) {
config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
}
// Get updated MongoDB configuration
const mongoConfig = await promptForMongoConfig(config);
// Get updated provider configuration
const embeddingConfig = await promptForProviderConfig(config.embedding || {});
// Build updated configuration
const updatedConfig = {
mongoUrl: mongoConfig.mongoUrl,
database: mongoConfig.database,
collection: mongoConfig.collection,
embedding: {
provider: embeddingConfig.provider,
apiKey: embeddingConfig.apiKey,
model: embeddingConfig.model,
dimensions: embeddingConfig.dimensions,
batchSize: embeddingConfig.batchSize || 100,
...(embeddingConfig.baseUrl && { baseUrl: embeddingConfig.baseUrl })
},
search: {
maxResults: config.search?.maxResults || 5,
minScore: config.search?.minScore || 0.7
},
indexName: config.indexName || 'vector_index'
};
// Save updated configuration
fs.writeFileSync(configPath, JSON.stringify(updatedConfig, null, 2));
console.log(chalk.green('✅ Configuration updated successfully!'));
return updatedConfig;
} catch (error) {
console.error(chalk.red('❌ Failed to update configuration:'), error.message);
throw error;
}
}