59 lines
1.7 KiB
Dart
59 lines
1.7 KiB
Dart
import 'dart:io';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:books_flutter/services/openai_service.dart';
|
|
|
|
void main() {
|
|
test('OpenAI Service - Analyze book cover', () async {
|
|
// Configure the OpenAI service
|
|
// Note: Make sure to replace with your actual API key
|
|
const apiKey = 'sk-proj-1234567890';
|
|
const baseUrl = 'http://localhost:8317';
|
|
const model =
|
|
'gemini-3-pro-image'; //'claude-sonnet-4-5-thinking'; // Model must be glm-4v for vision support
|
|
|
|
if (apiKey == 'YOUR_OPENAI_API_KEY_HERE') {
|
|
print('Please set your OpenAI API key in the test file');
|
|
return;
|
|
}
|
|
|
|
final service = OpenAIService(
|
|
apiKey: apiKey,
|
|
baseUrl: baseUrl,
|
|
model: model,
|
|
);
|
|
|
|
// Path to the sample image
|
|
const imagePath = 'samples/photo_2026-02-07_15-05-17.jpg';
|
|
|
|
// Check if the image file exists
|
|
final imageFile = File(imagePath);
|
|
if (!imageFile.existsSync()) {
|
|
print('Image file not found at: $imagePath');
|
|
return;
|
|
}
|
|
|
|
print('Analyzing book cover...');
|
|
print('Image path: $imagePath');
|
|
print('Image size: ${imageFile.lengthSync()} bytes');
|
|
|
|
// Analyze the book cover
|
|
final book = await service.analyzeBookCover(imagePath);
|
|
|
|
if (book != null) {
|
|
print('\n✅ Successfully analyzed book cover!\n');
|
|
print('Title: ${book.title}');
|
|
print('Author: ${book.author}');
|
|
print('Genre: ${book.genre}');
|
|
print('Annotation: ${book.annotation}');
|
|
print('\n');
|
|
expect(book.title, isNotEmpty);
|
|
expect(book.author, isNotEmpty);
|
|
} else {
|
|
print('\n❌ Failed to analyze book cover');
|
|
print(
|
|
'Check your API key and ensure the OpenAI server is running at $baseUrl',
|
|
);
|
|
}
|
|
});
|
|
}
|