본문 바로가기

개발17

LLM 기반 추천 시스템 백엔드 - LLM 추천 파트 추천에 대한 기능 중에서는 특정 유저에 대한 추천의 생성과 등록된 추천을 불러는 것의 두 가지 기능이 있다. 여기서는 추천의 생성 및 DB 등록만 알아본다. POST로 추천 생성 @app.post('/api/recommend')async def create_recommend(user_id: UserId, db: AsyncSession = Depends(get_async_db)): return await recommend_func(user_id, db) 아래는 llm_recommend.py에 있는 함수들이다. 우선 LLM을 활용한 추천을 위한 프롬프트를 준비한다.그 다음 프롬프트에 유저가 이전에 높은 별점을 매긴 영화 정보를 삽입한다.현재 서비스하고 있는, 다시 말해서 DB에 있는 영화로 한정하기 위.. 2025. 4. 25.
LLM 기반 추천 시스템 백엔드 미들웨어 우선 CORS를 통해서 프론트엔드와의 연결을 허용한다.from fastapi import FastAPI# FastAPI 시작 app = FastAPI()origins = [ "http://localhost:5173", # Vite 개발 서버 "http://127.0.0.1:5173", # 다른 로컬 주소 "https://your-production-frontend.com" # 배포 환경에서는 실제 도메인]app.add_middleware( CORSMiddleware, #allow_origins=["*"], # 모든 도메인 허용 allow_origins=origins, allow_credentials=True, allow_methods=["*"].. 2025. 4. 25.
LLM 기반 추천 시스템 프론트엔드 Home.tsx Home 화면// pages/Home.tsx import React, { useState, useEffect } from "react";import SearchBar from "../components/SearchBar";import MovieCard from "../components/MovieCard";import UserSearchBar from "../components/UserSearchBar";import { useNavigate } from 'react-router-dom';import styles from './Home.module.css'const API_URL = import.meta.env.VITE_API_URL;interface Movie { movieId: .. 2025. 4. 25.
LLM 기반 추천 시스템 구축을 통한 코드 공부 개인 프로젝트 (링크)로 백엔드랑 프론트엔드를 구성하고 LLM API를 통해서 LLM을 통한 추천을 구축해보았다. 사용 데이터는 SQLAlchemy (블로그 링크)를 알아볼 때 사용했던 MovieLens 1m이다. 디자인은 모두 배제했다. Home 화면영화에 별점을 매기기 위한 카드 영화 제목 검색 결과 유저 2에 대한 추천 영화 불러오기 결과 사용 기술은 다음과 같다. FrontendTypescriptReactViteBackendFastAPIDatabaseSQLAlchemySqliteLLMGemini API 구체적인 내용들을 구성 요소별로 간단하게 코멘트를 남기고자 한다. 백엔드: 링크프론트엔드: 링크LLM 파트: 링크 2025. 4. 25.
SQLAlchemy 기초 개요SQLAlchemy는 파이썬으로 DB를 관리하는 패키지다. 이걸 모를 때는 쿼리를 아래와 같이 작성하고 query = """SELECT * FROM SAMPLE_TABLE WHERE TIMESTAMP """ sqlite로 db에 연결해서 excute하고 그랬는데 그럴 필요가 없다. Core 방식과 ORM (Object Relational Mapping)이 있다. Core:SQL의 표현에 가까운 방식low-level ORM:객체지향적인 방식high-level 이라고 한다. 우선 SQL과 유사한 Core 방식을 먼저 살펴본 다음에 ORM 방식을 살펴보기로 한다. 살펴볼 내용들 실습할 쿼리문들SELECTINSERTUPDAT.. 2025. 4. 23.
Python dealing with time 파이썬에서 시간 다루기 머신러닝에서 데이터 분석을 하거나, DB에서 매출을 합산한다거나, 로깅을 한다거나 여러가지 사정으로 시간을 기록할 일이 많아진다. 시간은 크게 2가지 형식으로 다루게 된다. Unix timestampyy-mm-dd hh:mm:ss.f 형태 시간을 다루는 주요 패키지로는 아래와 같다. timedatetimepytz 1. time Unix timestamp를 생성한다. 유닉스 타임스탬프란 1970년 1월 1일 00:00:00초 (UTC 0)을 기준으로 몇 초가 지나갔는지를 표시한 시간 표현법이다. import timect = time.time()print(ct)>> 1745195940.8100421 2. datetime 우리에게 익숙한 시간 형태다. 연-월-일 시:분:초.마이크로.. 2025. 4. 21.