.
This commit is contained in:
@@ -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` (можно изменить в настройках).
|
||||
Reference in New Issue
Block a user