Chatgpt api를 이용해서 글을 생성하면 자동으로 댓글을 다는 기능을 구현하였습니다.


1. 사례확인하기

글이 등록되면 위와 같이 ChatGPT가 답변을 달아줍니다.


2. 구현 방법

2-1. tasks.py

# tasks.py

from celery import shared_task

@shared_task
def post_created_task(post_id):
    # 여기에 Post 생성 시 실행할 로직을 추가합니다.
    # 예: post_id를 사용하여 Post 객체를 조회하고 처리합니다.
    print(f"Processing post with id: {post_id}")

위와 같이 tasks.py에 실행될 프로그램을 등록하고, 로직에 chatgpt api와 통신하는 코드를 삽입합니다.


2-2. signals.py

# models.py 또는 signals.py
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Post
from .tasks import post_created_task
@receiver(post_save, sender=Post)
def trigger_post_created_task(sender, instance, created, **kwargs):
    if created:
        post_created_task.delay(instance.id)


이제 시그널을 설정합니다. 포스트가 생성될 때 실행되는 함수를 지정하는 것으로
2-1.에서 등록한 post를 연결하면 됩니다. 


2-3. Apps 등록 및 init 설정

# apps.py
from django.apps import AppConfig
class YourAppConfig(AppConfig):
    name = 'your_app_name'
    def ready(self):
        import your_app.signals  # 신호를 연결하기 위해


위의 형태로 apps.py에서 시그널을 연결지어주고 __init__.py에 다음을 추가합니다.

# __init__.py
default_app_config = 'your_app_name.apps.YourAppConfig'


이렇게 하면 설정 끝!!!


현재 정상적으로 chatgpt가 자동으로 댓글을 달아주고 있으며 아래 댓글도 자동으로 생성된 댓글입니다.