[파이썬][AI Chatbot] Dialogflow Fulfillment 개념과 사용 예제

Dialogflow Fulfillment은 Dialogflow 에이전트가 인식한 사용자의 의도에 따라 적절한 동작을 수행하기 위해 외부 서버 또는 웹훅을 호출하는 개념입니다. Fulfillment를 사용하면 사용자의 요청에 따라 데이터베이스 조회, 외부 API 호출, 비즈니스 로직 실행 등의 작업을 수행하고 응답을 생성할 수 있습니다. 이를 통해 더 복잡한 대화 흐름과 인터랙션을 구현할 수 있습니다.

다음은 Dialogflow Fulfillment 개념과 사용 예제를 보여주는 간단한 설명입니다:

Fulfillment 개념:

Fulfillment 사용 예제:

다음은 간단한 날씨 정보 조회 Fulfillment 예제입니다.

  1. Fulfillment 설정:

    • Dialogflow 콘솔에서 Fulfillment를 활성화하고, Fulfillment URL을 설정합니다.
  2. 웹훅 서버 생성:

    • 별도의 웹훅 서버를 구축하거나, 서버리스 기술을 사용하여 날씨 정보를 제공하는 엔드포인트를 생성합니다.
  3. Fulfillment 코드 예제:

from flask import Flask, request, jsonify
    
    app = Flask(__name__)
    
    @app.route('/weather', methods=['POST'])
    def get_weather():
        parameters = request.json['queryResult']['parameters']
        city = parameters['geo-city']
        # 여기에 날씨 정보를 가져와서 처리하는 코드를 추가합니다.
        response = f"현재 {city}의 날씨는 맑습니다."
        return jsonify({
            "fulfillmentText": response
        })
    
    if __name__ == '__main__':
        app.run(debug=True)
  1. Dialogflow 에이전트 설정:

    • “날씨 조회”와 같은 Intent를 생성하고, Fulfillment 기능을 활성화합니다.
    • Fulfillment URL을 웹훅 서버 엔드포인트로 설정합니다.
  2. 테스트:

    • “오늘 서울 날씨 어때?”라는 문장을 입력하여 날씨 정보를 조회하는지 확인합니다.

위의 예제에서는 Fulfillment를 통해 날씨 정보를 제공하는 간단한 웹훅 서버를 구축하는 방법을 보여주고 있습니다. 이와 같이 Fulfillment를 사용하면 사용자의 요청에 따라 외부 서버에서 데이터를 가져와 응답을 생성하거나 다양한 작업을 수행할 수 있습니다.