Дипломный проект. Информационная система для анализа и редактирования текста с использованием технологий NLP и генеративного ИИ.
| Слой | Технология |
|---|---|
| Backend | ASP.NET Core Minimal API (C#) |
| Frontend | React.js + Tiptap |
| База данных | MS SQL Server + Entity Framework Core |
| ИИ | Groq API (llama / gpt-oss) |
| Экспорт | DocumentFormat.OpenXml + QuestPDF |
git clone https://github.com/твой_юзер/WebEditor.git
cd WebEditorЭти файлы в .gitignore — их нужно создать вручную.
Создай в корне проекта рядом с appsettings.json:
{
"ConnectionStrings": {
"Default": "Server=ИМЯ_ТВОЕГО_СЕРВЕРА;Database=ServerWebDataBase;Trusted_Connection=True;TrustServerCertificate=True;"
},
"OpenAI": {
"ApiKey": "gsk_xxxxxxxxxxxxxxxx",
"Model": "llama-3.3-70b-versatile"
}
}Замени
ИМЯ_ТВОЕГО_СЕРВЕРАна имя своего SQL Server (видно в SSMS вверху Object Explorer, напримерRomanилиDESKTOP-XXXXX\SQLEXPRESS). Замениgsk_xxxxxxxxxxxxxxxxна свой API ключ от console.groq.com.
Создай в папке client/:
REACT_APP_API_URL=https://localhost:7076
Порт
7076должен совпадать с тем что указан вProperties/launchSettings.jsonв профилеhttps.
Открой SSMS и выполни SQL скрипт для создания базы:
/docs/database.sql ← если есть в репозитории
Или создай базу вручную — структура таблиц описана в docs/database_documentation.md.
После создания базы выполни Scaffold в Package Manager Console:
Scaffold-DbContext "Server=ИМЯ_СЕРВЕРА;Database=ServerWebDataBase;Trusted_Connection=True;TrustServerCertificate=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
cd client
npm installОткрой два терминала:
Терминал 1 — бэкенд:
# В корне проекта (папка с .csproj файлом)
dotnet runТерминал 2 — фронтенд:
cd client
npm startПриложение откроется на http://localhost:3000
WebEditor/
├── Endpoints/
│ ├── AnalysisEndpoints.cs # POST /analyze
│ ├── DocumentEndpoints.cs # CRUD документов
│ ├── ExportEndpoints.cs # POST /export/docx, /export/pdf
│ └── ImportEndpoints.cs # POST /import/docx
├── Models/
│ ├── Requests/
│ │ └── TextRequest.cs
│ └── (EF модели генерируются через Scaffold)
├── Prompts/
│ └── SystemPrompt.txt # Системный промпт для ИИ
├── Properties/
│ └── launchSettings.json
├── Services/
│ ├── OpenAiService.cs # Интеграция с Groq API
│ └── TextStatisticsService.cs # Подсчёт статистики текста
├── client/ # React приложение
│ └── src/
│ ├── components/
│ │ ├── EditorToolbar/
│ │ ├── Editor.jsx
│ │ ├── HelpModal.jsx
│ │ ├── IssuePopup.jsx
│ │ ├── ReportModal.jsx
│ │ ├── Results.jsx
│ │ ├── SidePanel.jsx
│ │ └── Toolbar.jsx
│ ├── constants/
│ │ └── categories.js
│ ├── contexts/
│ │ └── ThemeContext.js
│ ├── hooks/
│ │ └── useAnalysis.js
│ └── utils/
│ └── highlight.js
├── appsettings.json # Публичные настройки (заглушки)
├── appsettings.Development.json # СОЗДАТЬ ВРУЧНУЮ — секреты
├── Program.cs
└── WebEditor.csproj
| Файл | Где | Зачем |
|---|---|---|
appsettings.Development.json |
Корень проекта | API ключ Groq + строка подключения к БД |
client/.env |
Папка client/ |
URL бэкенда для React |
- Зайди на console.groq.com
- Зарегистрируйся (бесплатно)
- API Keys → Create API Key
- Скопируй ключ в
appsettings.Development.json
Доступные модели:
| Модель | Описание |
|---|---|
llama-3.3-70b-versatile |
Стабильная, бесплатная — рекомендуется |
openai/gpt-oss-120b |
Мощнее, но больше токенов |
qwen/qwen-3-32b |
Хорошо для русского языка |
Системный промпт находится в Prompts/SystemPrompt.txt — можно редактировать без перекомпиляции. При запуске сервис читает его автоматически.
react-scripts не является командой
cd client
npm installNode modules не хранятся в репозитории — нужно установить после клонирования.
API вернул ошибку: Unauthorized
Проверь что appsettings.Development.json создан и API ключ правильный. Убедись что переменная ASPNETCORE_ENVIRONMENT = Development прописана в launchSettings.json.
Не удалось подключиться к БД
Проверь строку подключения в appsettings.Development.json. Имя сервера видно в SSMS в Object Explorer вверху.
TooManyRequests от Groq
Бесплатный план имеет лимиты. Подожди минуту или переключись на модель llama-3.3-70b-versatile.
- Текстовый редактор с форматированием (шрифты, размеры, заголовки, списки, выравнивание)
- Импорт DOCX файлов
- ИИ анализ текста — орфография, пунктуация, грамматика, тавтология, стиль, канцеляризмы
- Автоопределение языка (ru / en / mixed)
- Подсветка ошибок прямо в тексте по категориям
- Контекстный popup с описанием ошибки при клике
- Пользовательские инструкции для ИИ
- Статистика текста (слова, предложения, читаемость, водность)
- Экспорт отчёта в DOCX и PDF
- Светлая и тёмная тема
- Руководство пользователя (кнопка ? в тулбаре)