@jeonjongchul/calcal-sdk
Version:
CalCal - 칼로리 계산 SDK
46 lines (39 loc) • 1.23 kB
text/typescript
import { DetectedFood, ImageAnalysisResult } from '../types';
import { FOOD_DATABASE } from '../utils/constants';
export class ImageAnalysisService {
private apiKey?: string;
constructor(apiKey?: string) {
this.apiKey = apiKey;
}
async analyzeImage(imageBase64: string): Promise<ImageAnalysisResult> {
try {
// 이미지 분석 로직
const detectedFoods = this.matchFoodsByKeywords();
const totalCalories = detectedFoods.reduce((sum, food) => sum + food.calories, 0);
return {
imageUri: '', // 이미지 URI는 외부에서 처리
detectedFoods,
totalCalories,
};
} catch (error) {
return {
imageUri: '',
detectedFoods: [],
totalCalories: 0,
error: error instanceof Error ? error.message : '이미지 분석 중 오류가 발생했습니다.',
};
}
}
private matchFoodsByKeywords(): DetectedFood[] {
const matchedFoods: DetectedFood[] = [];
Object.entries(FOOD_DATABASE).forEach(([name, data]) => {
matchedFoods.push({
name,
calories: data.calories,
confidence: 0.8,
portion: data.standardPortion
});
});
return matchedFoods;
}
}