뉴스경산

네이버 톡톡과 chap gpt 연동시 코드

2025. 4. 10. 오전 7:55:03

네이버 톡톡과 chap gpt 연동시 코드

코드 검토 결과, 몇 가지 수정할 부분이 있습니다. 특히 API 키 설정 및 데이터 접근 방식을 점검해야 합니다. 아래는 가능한 수정 사항입니다:

1. **API 키 형식 오류**: API 키는 문자열로 올바르게 닫혀야 합니다. 아래와 같은 형식으로 수정하세요.

```python

openai.api_key = "sk-123456789" # 필요한 경우 키를 실제로 교체하세요.

```

2. **`user_text` 접근 방식**: 데이터에서 `textContent`를 제대로 접근하고 있는지 확인하세요. 예를 들어, JSON 구조를 확인해보세요.

3. **간단한 인사말 체크**: `len(user_text) <= 4` 부분이 너무 짧은 메시지를 감지하여 인사를 하도록 동작하는데, 사용자의 의도를 명확히 하기 위해 이 조건을 조정할 수 있습니다.

4. **소스 코드에서 여백과 줄바꿈**: 코드의 가독성을 위해 적절한 여백과 줄바꿈을 사용하는 것이 좋습니다.

5. **HTTP 상태 코드**: 응답의 경우 상태 코드를 명시하는 것을 고려하세요. 성공적인 경우 `200 OK` 요청을 반환하는 것이 일반적입니다.

아래는 개선된 코드입니다:

```python

import openai

from flask import Flask, request, jsonify

app = Flask(__name__)

# OpenAI API 키 설정

openai.api_key = "sk-123456789" # 여기에 실제 API 키를 입력하세요.

# 간단한 인사말 목록

simple_greetings = ["안녕", "ㅎㅇ", "하이", "hello", "hi", "안녕하세요"]

@app.route('/webhook', methods=['POST'])

def webhook():

data = request.json

user_text = data.get("textContent", {}).get("text", "").strip().lower() # 사용자 메시지

# 첫 대화일 경우, 인사말이 포함되면 인사 응답

if any(greet in user_text for greet in simple_greetings) or len(user_text) <= 4:

final_reply = "안녕하세요, 스튜디오입니다."

# GPT-3.5-turbo 모델에 메시지 전달

response = openai.ChatCompletion.create(

model="gpt-3.5-turbo",

messages=[{"role": "user", "content": user_text}]

)

gpt_reply = response.choices[0].message['content'].strip() # GPT 응답

final_reply = f"안녕하세요, 스튜디오입니다.\n\n{gpt_reply}"

except Exception as e:

print("❌ GPT 응답 오류:", e)

final_reply = "담당자 확인 후 답변 드리겠습니다."

# 네이버 톡톡 API 형식으로 응답 전송

return jsonify({

"version": "2.0", # API 버전

"template": {

"outputs": [

{

"simpleText": {

"text": final_reply # 최종 응답 메시지

}

}

]

}

})

if __name__ == '__main__':

app.run(port=5001)

```

위의 내용을 반영하여 코드를 실행해 보시고, 에러 메시지가 발생한다면 구체적인 상황과 함께 문의해 주시면 추가로 도움을 드리겠습니다.

글 목록으로 돌아가기