Добавьте файлы проекта.

This commit is contained in:
2026-07-22 20:47:51 +04:00
parent 8050e9194d
commit 17a64809cb
22 changed files with 606 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
using CodeBase.Models;
using System.Collections.Generic;
using System.Text;
public class LlmPromptBuilder
{
public string BuildPrompt(string userQuestion, List<CodeChunk> foundChunks)
{
var sb = new StringBuilder();
// 1. Задаем жесткую роль и ограничения
sb.AppendLine("Ты — опытный разработчик и архитектор. Твоя задача — ответить на вопрос пользователя.");
sb.AppendLine("ОТВЕЧАЙ СТРОГО НА ОСНОВЕ ПРЕДОСТАВЛЕННОГО КОДА НИЖЕ.");
sb.AppendLine("Если в коде нет ответа на вопрос, честно скажи: «В данном фрагменте кода нет этой информации». Не придумывай функции, которых нет в тексте.");
sb.AppendLine("\n================ ПРЕДОСТАВЛЕННЫЙ КОД ================");
// 2. Вклеиваем найденные чанки с контекстом
foreach (var chunk in foundChunks)
{
sb.AppendLine($"Файл: {chunk.FilePath}");
sb.AppendLine($"Класс: {chunk.ClassName}");
sb.AppendLine($"Метод: {chunk.MethodName}");
if (!string.IsNullOrEmpty(chunk.Documentation))
{
sb.AppendLine($"Документация: {chunk.Documentation}");
}
sb.AppendLine("Код:");
sb.AppendLine("```csharp");
sb.AppendLine(chunk.Content);
sb.AppendLine("```");
sb.AppendLine("--------------------------------------------------");
}
// 3. Добавляем сам вопрос
sb.AppendLine("\n================ ВОПРОС ПОЛЬЗОВАТЕЛЯ ================");
sb.AppendLine(userQuestion);
return sb.ToString();
}
}