using Neo4j.Driver; namespace CodeBase.Repositories { public class DatabaseInitializer { private readonly IDriver _neo4jDriver; public DatabaseInitializer(IDriver neo4jDriver) { _neo4jDriver = neo4jDriver; } public async Task InitializeAsync() { try { await using var session = _neo4jDriver.AsyncSession(); // IF NOT EXISTS гарантирует, что запрос не упадет с ошибкой, // если индекс уже был создан при предыдущем запуске var query = @" CREATE VECTOR INDEX code_embeddings IF NOT EXISTS FOR (m:CodeEntity) ON (m.embedding) OPTIONS { indexConfig: { `vector.dimensions`: 768, // <-- УКАЖИ ТУТ РАЗМЕРНОСТЬ ТВОЕЙ МОДЕЛИ `vector.similarity_function`: 'cosine' } }"; await session.ExecuteWriteAsync(async tx => { await tx.RunAsync(query); }); Console.WriteLine("[БД] Векторный индекс успешно инициализирован."); } catch (Exception ex) { Console.WriteLine($"[БД ОШИБКА] Ошибка при создании индекса: {ex.Message}"); } } } }