This commit is contained in:
root
2025-10-13 18:21:26 +05:00
parent 89ab124664
commit e55eecd069
10 changed files with 390 additions and 19 deletions
+112
View File
@@ -0,0 +1,112 @@
# Интеграция OpenAI API
## Обзор
Создан новый сервис `OpenAIAnalyticsService` для замены `OllamaAnalyticsService`. Новый сервис использует OpenAI API для анализа текста и генерации контента.
## Основные изменения
### 1. Новый сервис OpenAIAnalyticsService
- **Файл**: `src/main/java/kz/konturai/parser/service/OpenAIAnalyticsService.java`
- **Функциональность**: Аналогична `OllamaAnalyticsService`, но использует OpenAI API
- **Методы**:
- `analyzeText(String text)` - анализ текста с извлечением саммари, тегов, тональности и сущностей
- `analyzeText(String text, String language)` - анализ с указанием языка
- `generateWithInstruction(String text, String instruction)` - генерация текста по инструкции
- `generateWithInstruction(String text, String instruction, String language)` - генерация с указанием языка
### 2. Обновленные сервисы
Все сервисы, которые использовали `OllamaAnalyticsService`, теперь используют `OpenAIAnalyticsService`:
- `ReportSynthesisService`
- `ReportGenerationService`
- `KursivParserService`
- `KapitalParserService`
- `LsmParserService`
- `RbcParserService`
- `VedomostiParserService`
### 3. Конфигурация
В `application.properties` уже настроены параметры для OpenAI:
```properties
# OpenAI Configuration
openai.api.key=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
openai.api.url=https://api.openai.com/v1/chat/completions
openai.model.name=gpt-4o-mini
openai.timeoutMs=90000
```
### 4. Тестовый контроллер
Создан `OpenAITestController` для тестирования функциональности:
- `POST /api/openai/analyze` - анализ текста
- `POST /api/openai/generate` - генерация по инструкции
- `GET /api/openai/test` - тест подключения
## Использование
### Анализ текста
```java
@Autowired
private OpenAIAnalyticsService openAIAnalyticsService;
// Анализ текста на русском языке
MarketItem.Analytics analytics = openAIAnalyticsService.analyzeText(text, "ru");
// Получение саммари
String summary = analytics.getSummary();
// Получение тегов
String[] tags = analytics.getTags();
// Получение тональности
String sentiment = analytics.getSentiment();
// Получение сущностей
Map<String, Object> entities = analytics.getEntities();
```
### Генерация текста
```java
// Генерация отчета
String instruction = "Напиши краткий отчет на основе следующих данных:";
String generatedText = openAIAnalyticsService.generateWithInstruction(data, instruction, "ru");
```
## Преимущества OpenAI API
1. **Высокое качество**: GPT-4o-mini обеспечивает более качественный анализ и генерацию текста
2. **Надежность**: Стабильная работа API без необходимости локального сервера
3. **Масштабируемость**: Легко масштабируется под нагрузку
4. **Многоязычность**: Отличная поддержка русского и английского языков
5. **Консистентность**: Более предсказуемые результаты
## Миграция
Все существующие вызовы `OllamaAnalyticsService` автоматически заменены на `OpenAIAnalyticsService`. API остается совместимым, поэтому дополнительных изменений в коде не требуется.
## Тестирование
Для тестирования нового сервиса:
1. Запустите приложение
2. Откройте `GET /api/openai/test` для проверки подключения
3. Используйте `POST /api/openai/analyze` для анализа текста
4. Используйте `POST /api/openai/generate` для генерации контента
## Настройка
Убедитесь, что в `application.properties` указан корректный API ключ OpenAI:
```properties
openai.api.key=your-openai-api-key-here
```
Модель по умолчанию: `gpt-4o-mini` (можно изменить в настройках).