728x90

코딩/♠♠기술 구현 52

날씨정보 가져오는 과정

1. LocationBloc에서 위치정보 획득:WeatherWidget initState -> _initializeLocation() 호출 ->LocationBloc에 GetCurrentLocation과 StartLocationUpdates 이벤트 전달2.위치정보 성공시 날씨정보 요청:// WeatherWidget의 BlocListenerif (state is LocationSuccess) { WeatherBloc에 FetchWeather 이벤트 전달 (위도, 경도 정보 포함)}3. WeatherRepository에서 API 호출:- OpenWeatherMap API 호출해서 기본 날씨 데이터- UV 지수 데이터 - 대기질 데이터 각각 따로 받아와서 하나의 WeatherModel로 결합4.날씨..

위치 기반 날씨 정보 시스템 구현 정리

🛠 기술 스택Flutter & DartGoogle Maps APIOpenWeatherMap APIBloc 패턴Repository 패턴📌 주요 기능실시간 위치 추적지도상 위치 선택날씨 정보 표시위치 기반 상품 추천🔄 데이터 플로우1. 위치 정보 획득 LocationBloc -(위치 변경)-> LocationRepository - 실시간 위치 추적 - 구글 맵에서 위치 선택 - 위도/경도 데이터 획득2. 날씨 데이터 요청 LocationBloc -(위치 데이터)-> WeatherBloc -(API 요청)-> WeatherRepository - OpenWeatherMap API 호출 - 날씨, 자외선, 대기질 데이터 취합 - 30분 단위 캐싱 처리3. UI 업데이트 Wea..

날씨로 상품 추천 구현

날씨 기반 상품 추천 시스템 구현1. Repository 통합기존의 날씨 데이터만 처리하던 Repository에 상품 추천 기능을 통합했습니다.class WeatherRepository { final FirebaseFirestore _firestore; final Map _cache = {}; // 날씨 조건에 따른 서브카테고리 결정 List _getSubcategoriesByWeatherCondition({ required double uvIndex, required int airQuality, required int humidity, }) { List subcategories = []; // 자외선 높음 (6.0 이상) - 최우선 조건 if (uvIndex >..

geodecoding 위치 한글로 변경

Flutter 실시간 위치 기반 주소 변환 구현핵심 구현 내용실시간 위치 추적위도/경도를 한글 주소로 동적 변환Stream을 활용한 실시간 업데이트상세 구현 과정위치 데이터 모델 설계class LocationData { final Position position; // 위도/경도 정보 final String address; // 변환된 한글 주소 final DateTime timestamp; // 업데이트 시간 LocationData({ required this.position, required this.address, DateTime? timestamp, }) : timestamp = timestamp ?? DateTime.now();}..

ai 원픽 로직의 큰 흐름

최고의 트러블 슈팅은 json 변환하는 과정에서 일어나는 타입에러이다.1. 첫 인사를 하고 상황을 물어본다2. "situation": "상황 (ex: 면접, 데이트)", -> 대화이끌어내기"skinType": "피부 타입","concerns": ["주요 고민1", "주요 고민2"],"preferences": ["선호도1", "선호도2"],"priceRange": "가격대 범위"이렇게 5개의 질문을 한다.3.대화기록을 저장한다.4. 5번째에는 product 컬렉션가서 일치하는 단어(제품이름에 키워드가 많으니깐), 가격 찾는다5. 프로덕트아이디로 끌어오고 설명 적는다ui 로 인디케이터 5개 옮기기- 상태관리는 여러페이지가 물려있을때 하는게 편하지, 한페이지내에서의 이동은 상태관리 안쓰는게 더 좋다블럭에서는..

ai 원픽 상황의 역할과 매칭 방식

상황의 역할과 매칭 방식1. 상황의 역할코드에서 "상황(situation)"은 사용자의 맥락을 나타냅니다. 예를 들어, 사용자가 "데이트", "면접", "일상" 같은 특정 상황을 언급하면, OpenAI는 이를 제품 추천에서 중요한 요소로 사용하거나 대화를 이끌어가는 데 활용합니다.대화 이끌기 vs 제품 매칭대화 이끌기:상황은 대화의 흐름을 자연스럽게 만들기 위해 사용될 수 있습니다.예: "데이트를 위한 촉촉한 파운데이션을 찾으시는군요!" 같은 응답을 통해 사용자와 공감대를 형성.제품 매칭:특정 상황이 제품의 용도와 직결되는 경우, 매칭의 중요한 요소가 됩니다.예: "면접"이라는 상황은 자연스럽고 깔끔한 표현의 메이크업 제품을 추천하는 데 반영될 수 있습니다.2. 상황이 매칭에 사용되는 방식OpenAI 모..

ai 원픽 매칭 원리

OpenAI를 통한 매칭 작업final recommendationResponse = await http.post( Uri.parse('https://api.openai.com/v1/chat/completions'), headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer $_openAIApiKey', }, body: jsonEncode({ 'model': 'gpt-3.5-turbo', 'messages': [ { 'role': 'system', 'content': '''사용자의 요구사항과 제품 목록을 비교하여 가장 적합한 제품 하나를 선택하고,추천 이유를 JSON 형식으..

ai 원픽 구현

AI OnePick 기능의 구현 과정을 상세히 정리해드리겠습니다.AI OnePick 기능 구현 과정1. 기능 개요AI OnePick은 사용자와 AI의 5단계 대화를 통해 개인화된 화장품을 추천해주는 기능입니다.핵심 특징:GPT-3.5 Turbo를 활용한 자연스러운 대화형 인터페이스5단계 진행 상황을 시각적으로 표시사용자의 상황과 니즈를 분석하여 맞춤형 제품 추천Firebase와 연동하여 실제 제품 데이터 활용2. 아키텍처 설계BLoC 패턴 적용:AI OnePick├── Presentation Layer (UI)│ ├── ai_onepick_screen.dart│ └── widgets/│ ├── onepick_header_widget.dart│ └── onepick_chat_a..

AI 추천 구현

오픈 ai api 받아야한다그리고 꼭 결제를 해야된다. 그래야 구현할 수 있다. 레퍼지토리에서 많을걸 해야한다. 블록에 부담을주면 메모리문제로 앱이 터질 수있다. 레퍼지토리로 제이슨으로 변환해서 물어보고 답을구해와서 뿌린다.장바구니, 히스토리,좋아요한걸로ai한테 물어봐서 프로덕트 아이디 물고와서 상품정보 뿌려주었다. AI 추천 시스템 구현 과정을 단계별로 자세히 설명해드리겠습니다:추천 시스템 설계 및 아키텍처프로젝트 구조:lib/ ├── models/ │ ├── recommendation_model.dart │ └── user_preference_model.dart ├── services/ │ ├── recommendation_service.dart │ └── machine_le..

728x90