Попытки в мультипарсинг
This commit is contained in:
49
CodeBase/Services/ScipProcessingService.cs
Normal file
49
CodeBase/Services/ScipProcessingService.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using CodeBase.Parsers;
|
||||
using CodeBase.Repositories;
|
||||
|
||||
namespace CodeBase.Services
|
||||
{
|
||||
public class ScipProcessingService
|
||||
{
|
||||
private readonly ScipParser _parser;
|
||||
private readonly VectorizationService _vectorizationService;
|
||||
private readonly ScipRepository _repository;
|
||||
|
||||
// Внедрение зависимостей
|
||||
public ScipProcessingService(
|
||||
ScipParser parser,
|
||||
VectorizationService vectorizationService,
|
||||
ScipRepository repository)
|
||||
{
|
||||
_parser = parser;
|
||||
_vectorizationService = vectorizationService;
|
||||
_repository = repository;
|
||||
}
|
||||
|
||||
public async Task ProcessAndSaveProjectAsync(string projectRootPath, string lang, string name)
|
||||
{
|
||||
try
|
||||
{
|
||||
Console.WriteLine($"[СЕРВИС] Запуск парсинга проекта: {projectRootPath}");
|
||||
|
||||
// 1. Получаем "сырые" чанки из парсера
|
||||
var chunks = await _parser.ParseProjectAsync(projectRootPath, lang, name);
|
||||
Console.WriteLine($"[СЕРВИС] Найдено {chunks.Count} сущностей. Начинаем векторизацию...");
|
||||
|
||||
// 2. Обогащаем каждый чанк векторным представлением GraphCodeBERT
|
||||
chunks = await _vectorizationService.EnrichChunksWithVectorsAsync(chunks);
|
||||
|
||||
// 3. Сохраняем готовую сборку в графовую базу
|
||||
await _repository.SaveChunksAsync(chunks);
|
||||
|
||||
Console.WriteLine("[СЕРВИС] Проект успешно обработан и сохранен в БД.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"[СЕРВИС ОШИБКА] Сбой при обработке проекта: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user