Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 47 additions & 30 deletions apps/pre-processing-service/app/api/endpoints/test.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# app/api/endpoints/embedding.py
from time import sleep

import loguru
from fastapi import APIRouter
from sqlalchemy import text
Expand All @@ -8,14 +10,17 @@
from fastapi import APIRouter
from typing import Mapping, Any, Dict
from ...model.schemas import *
from ...service.blog.blog_create_service import BlogContentService
from ...service.blog.naver_blog_post_service import NaverBlogPostService
from ...service.blog.tistory_blog_post_service import TistoryBlogPostService
from ...service.crawl_service import CrawlService
from ...service.keyword_service import keyword_search
from ...service.match_service import MatchService
from ...service.search_service import SearchService

# from ...service.similarity_service import SimilarityService
from ...db.db_connecter import engine # ✅ 우리가 만든 DB 유틸 임포트
from ...service.similarity_service import SimilarityService

# 이 파일만의 독립적인 라우터를 생성합니다.
router = APIRouter()
Expand Down Expand Up @@ -62,54 +67,66 @@ def with_meta(data: Mapping[str, Any], meta: Mapping[str, Any]) -> Dict[str, Any

@router.get("/tester", response_model=None)
async def processing_tester():
request_dict = {
"tag": "naver",
"category": "50000000",
"start_date": "2025-09-01",
"end_date": "2025-09-02",
}
# 네이버 키워드 검색
naver_request = RequestNaverSearch(**with_meta(request_dict))
naver_request = RequestNaverSearch(tag="naver")
response_data = await keyword_search(naver_request)
keyword = response_data.get("keyword")
keyword = response_data["data"].get("keyword")
loguru.logger.info(keyword)

keyword = {
"keyword": keyword,
}

# 싸다구 상품 검색
sadagu_request = RequestSadaguSearch(**with_meta(keyword))
search_service = SearchService()
keyword_result = await search_service.search_products(sadagu_request)
sadagu_request = RequestSadaguSearch(keyword=keyword)
searchservice = SearchService()
keyword_result = await searchservice.search_products(sadagu_request)
loguru.logger.info(keyword_result)

# 싸다구 상품 매치
keyword["search_results"] = keyword_result.get("search_results")
keyword_match_request = RequestSadaguMatch(**with_meta(keyword))

data = keyword_result["data"]
keyword_match_request = RequestSadaguMatch(
keyword=data.get("keyword"), search_results=data.get("search_results")
)
match_service = MatchService()
keyword_match_response = match_service.match_products(keyword_match_request)
loguru.logger.info(keyword_match_response)

# 싸다구 상품 유사도 분석
keyword["matched_products"] = keyword_match_response.get("matched_products")
keyword_similarity_request = RequestSadaguSimilarity(**with_meta(keyword))
# similarity_service = SimilarityService()
# keyword_similarity_response = similarity_service.select_product_by_similarity(
# keyword_similarity_request
# )
# loguru.logger.info(keyword_similarity_response)

data = keyword_match_response["data"]
keyword_similarity_request = RequestSadaguSimilarity(
keyword=data.get("keyword"), matched_products=data.get("matched_products")
)
similarity_service = SimilarityService()
keyword_similarity_response = similarity_service.select_product_by_similarity(
keyword_similarity_request
)
loguru.logger.info(keyword_similarity_response)
sleep(5)
# 싸다구 상품 크롤링
a = RequestSadaguCrawl(
product_url=keyword_similarity_response["data"]["selected_product"].get("url")
)
crawl = CrawlService()
crawl_response = await crawl.crawl_product_detail(a)
loguru.logger.info(crawl_response)

sleep(5)
# 블로그 생성
data = crawl_response
rag = RequestBlogCreate(product_info=data.get("product_detail"), target_length=500)
blog_service = BlogContentService()
rag_data = blog_service.generate_blog_content(rag)
loguru.logger.info(rag_data)

sleep(15)
# 블로그 배포
tistory_service = TistoryBlogPostService()
result = tistory_service.post_content(
title="안녕하살법",
content="안녕하살법 받아치기러기 코드 받아치기",
tags=["퉁퉁퉁사후르", "짜라짜라"],
data = rag_data
# tistory_service = TistoryBlogPostService()
naverblogPostService = NaverBlogPostService()
result = naverblogPostService.post_content(
# blog_id="wtecho331",
# blog_pw="wt505033@#",
title=data.get("title"),
content=data.get("content"),
tags=data.get("tags"),
)
loguru.logger.info(result)

Expand Down
6 changes: 0 additions & 6 deletions apps/pre-processing-service/app/model/schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,19 +129,13 @@ class ResponseSadaguSimilarity(ResponseBase[SadaguSimilarityData]):


class RequestSadaguCrawl(RequestBase):
tag: str = Field(
...,
title="크롤링 태그",
description="크롤링 유형을 구분하는 태그 (예: 'detail')",
)
product_url: HttpUrl = Field(
..., title="상품 URL", description="크롤링할 상품 페이지의 URL"
)


# 응답 데이터 모델
class SadaguCrawlData(BaseModel):
tag: str = Field(..., title="크롤링 태그", description="크롤링 유형 태그")
product_url: str = Field(..., title="상품 URL", description="크롤링된 상품 URL")
product_detail: Optional[Dict] = Field(
None, title="상품 상세정보", description="크롤링된 상품의 상세 정보"
Expand Down
1 change: 0 additions & 1 deletion apps/pre-processing-service/app/service/crawl_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ async def crawl_product_detail(self, request: RequestSadaguCrawl) -> dict:

# 응답 데이터 구성
data = {
"tag": request.tag,
"product_url": str(request.product_url),
"product_detail": product_detail,
"crawled_at": time.strftime("%Y-%m-%d %H:%M:%S"),
Expand Down
Loading