ํต์ฌ ์์ฝ (3์ค ์์ฝ)
- ํ์ด์ฌ๊ณผ Pandas๋ก ์์
๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ฒ ๋ถ๋ฌ์ค๊ณ ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ChatGPT API๋ฅผ ํ์ฉํด ๋ณต์กํ ๋ฐ์ดํฐ ๋ถ์์ ์๋์ผ๋ก ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค.
- ๋ฐ๋ณต์ ์ธ ์์
์์
์์ ๋ฒ์ด๋ ์
๋ฌด ํจ์จ๊ณผ ์์ฐ์ฑ์ ๊ทน๋ํํ๋ ์ค์ ๋
ธํ์ฐ๋ฅผ ๊ณต๊ฐํฉ๋๋ค.
๐ ๋ชฉ์ฐจ
๋งค์ฃผ ๋ฐ๋ณต๋๋ ์์
๋ฐ์ดํฐ ๋ถ์๊ณผ ๋ณด๊ณ ์ ์์ฑ์ ์ง์ณ์์ง๋ ์์ผ์ ๊ฐ์? ์๋ ์์
์ ๊ณ ์ง์ ์ธ ์ค๋ฅ์ ๋นํจ์จ ๋๋ฌธ์ ๊ณจ๋จธ๋ฆฌ๋ฅผ ์๊ณ ์๋ค๋ฉด, ์ด์ ํ์ด์ฌ๊ณผ ChatGPT API๋ก ์์
์
๋ฌด๋ฅผ ํ์ ํ ๋์
๋๋ค. ์ด ๊ฐ์ด๋์์ ์์
๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ๋ถ์ํ๊ณ ์ฒ๋ฆฌํ๋ ๊ฐ์ฅ ์ค์ฉ์ ์ด๊ณ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ๊ณต๊ฐํฉ๋๋ค.
ํ์ด์ฌ๊ณผ Pandas ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด ์์
๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ChatGPT API์ ๋ถ์ ์์ฒญ์ ๋ณด๋ด๊ณ , ๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ์์
๋ก ์ ์ฅํ๋ ๊ณผ์ ์ ์๋ํํฉ๋๋ค. ๋ฐ๋ณต์ ์ธ ์์
๋ฐ์ดํฐ ๋ถ์ ์์
์ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์
๋๋ค.
์์
๋ฐ์ดํฐ ๋ถ์ ์๋ํ, ์ ํ์ํ ๊น์?
๋ฐ๋ณต์ ์ธ ์์
๋ฐ์ดํฐ ๋ถ์์ ๊ท์คํ ์๊ฐ์ ์ก์๋จน๊ณ , ์๋ ์์
์ ๋ถํ์ํ ์ค์๋ฅผ ์ ๋ฐํ๊ธฐ ์ฝ์ต๋๋ค. ํนํ ๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ์์ ์ ์๋ฏธํ ํจํด์ ์ฐพ๊ฑฐ๋ ํต์ฌ์ ์์ฝํด์ผ ํ ๋๋ ๋นํจ์จ์ ๊ทน์น๋ฅผ ๋ณด์ฌ์ฃผ์ฃ . ํ์ด์ฌ๊ณผ ChatGPT API๋ฅผ ํ์ฉํ๋ฉด ์ด ๋ชจ๋ ๊ณผ์ ์ ์๋ฒฝํ๊ฒ ์๋ํํ์ฌ, ์๊ฐ๊ณผ ๋
ธ๋ ฅ์ ํ์ ์ ์ผ๋ก ์ ์ฝํ๊ณ ํต์ฌ ์
๋ฌด์ ์ง์คํ ์ ์์ต๋๋ค.

์ด๋ค ์ํฉ์ ์ ํฉํ ๊น์?
- ๋งค์ฃผ, ๋งค์ ๋ฐ๋ณต๋๋ ์ ํํ๋ ์์
๋ฐ์ดํฐ ๋ถ์๊ณผ ๋ณด๊ณ ์ ์์ฑ์ ์๋ฌ๋ฆฌ๋ ๋น์ !
- ๋ฐฉ๋ํ ๋ฐ์ดํฐ ์์์ ํน์ ํจํด, ์ด์์น, ํต์ฌ ํค์๋๋ฅผ ๋น ๋ฅด๊ฒ ์ถ์ถํ๊ณ ์ถ์ ์ ๋ฌธ๊ฐ!
- ๊ณ ๊ฐ ํผ๋๋ฐฑ์ด๋ ์ ํ ๋ฆฌ๋ทฐ์ฒ๋ผ ์ ํํ๋์ง ์์ ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ ์์
๋ก ๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ณ ์ฌ์ธต ๋ถ์ํ๊ณ ์ถ์ ์ค๋ฌด์!
๋ณธ ๊ฐ์ด๋๋ ํ์ด์ฌ ๊ธฐ์ด ๋ฌธ๋ฒ๊ณผ ์์
์ฌ์ฉ ๊ฒฝํ์ด ์๋ ๋ถ๋ค์๊ฒ ์ต์ ํ๋์ด ์์ต๋๋ค. ChatGPT API ํค ๋ฐ๊ธ ๋ฐ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ฏธ๋ฆฌ ์์งํด๋์๋ฉด ๋์ฑ ์ํํ๊ฒ ์งํํ ์ ์์ต๋๋ค.
์์ํ๊ธฐ ์ ์: ์ค๋น๋ฌผ ๋ฐ ํ๊ฒฝ ์ค์
ํ์ด์ฌ๊ณผ ChatGPT API์ ๊ฐ๋ ฅํ ์กฐํฉ์ ํ์ฉํ๋ ค๋ฉด ๋ช ๊ฐ์ง ํ์ ์ค๋น๋ฌผ๊ณผ ํ๊ฒฝ ์ค์ ์ด ํ์ํฉ๋๋ค.
- Python ์ค์น: 3.8 ๋ฒ์ ์ด์์ ๊ถ์ฅํฉ๋๋ค.
- ChatGPT API ํค: OpenAI ๊ณต์ ์น์ฌ์ดํธ์์ ๋ฐ๊ธ๋ฐ์์ผ ํฉ๋๋ค. API ์ฌ์ฉ์๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค.
- ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น:
openai, pandas, openpyxl, python-dotenv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํฉ๋๋ค. openpyxl์ Pandas๊ฐ ์์
ํ์ผ์ ์ฝ๊ณ ์ฐ๋ ๋ฐ ํ์ํ๋ฉฐ, python-dotenv๋ API ํค์ ๊ฐ์ ํ๊ฒฝ ๋ณ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค.
pip install openai pandas openpyxl python-dotenv
API ํค ๋ณด์ ๊ด๋ฆฌ
API ํค๋ ๋งค์ฐ ๋ฏผ๊ฐํ ์ ๋ณด์ด๋ฏ๋ก, ์ฝ๋ ๋ด์ ์ง์ ๋
ธ์ถํ๋ ๊ฒ์ ์ ๋ ํผํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ์์ ํ๊ณ ๊ถ์ฅ๋๋ ๋ฐฉ๋ฒ์ ํ๊ฒฝ ๋ณ์๋ก ์ค์ ํ๋ ๊ฒ์
๋๋ค. ํ๋ก์ ํธ ๋ฃจํธ์ .env ํ์ผ์ ์์ฑํ๊ณ OPENAI_API_KEY=YOUR_API_KEY ํํ๋ก ์ ์ฅํ ํ, ํ์ด์ฌ ์ฝ๋์์ python-dotenv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํด ์์ ํ๊ฒ ๋ถ๋ฌ์ค์ธ์.
.env ํ์ผ์ Git๊ณผ ๊ฐ์ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
์ ํฌํจ๋์ง ์๋๋ก .gitignore ํ์ผ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ์ธ๋ถ์ ๋
ธ์ถ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ ์ํฌํ๋ก์ฐ: ์์
๋ฐ์ดํฐ๋ฅผ ChatGPT API๋ก ๋ถ์ํ๊ธฐ
ํ์ด์ฌ๊ณผ ChatGPT API๋ฅผ ํตํ ์์
๋ฐ์ดํฐ ๋ถ์ ์๋ํ์ ํต์ฌ ์ํฌํ๋ก์ฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
- ์์
๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ: Pandas๋ฅผ ์ฌ์ฉํ์ฌ ์์
ํ์ผ์ ๋ฐ์ดํฐํ๋ ์์ผ๋ก ๋ก๋ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ: ํ์ํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ๊ฑฐ๋ ํน์ ์ด์ ์ ํํฉ๋๋ค.
- ํ๋กฌํํธ ์์ฑ: ๋ถ์ ์์ฒญ์ ๋ง์ถฐ ChatGPT API์ ๋ณด๋ผ ํ๋กฌํํธ๋ฅผ ๋ง๋ญ๋๋ค. ์์
๋ฐ์ดํฐ๋ฅผ ํ๋กฌํํธ์ ํฌํจํฉ๋๋ค.
- API ํธ์ถ: OpenAI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ChatGPT API๋ฅผ ํธ์ถํฉ๋๋ค.
- ๊ฒฐ๊ณผ ์ฒ๋ฆฌ: API ์๋ต์ ๋ฐ์ ํ์ด์ฌ์์ ์ฒ๋ฆฌํ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค.
- ๊ฒฐ๊ณผ ์ ์ฅ: ๋ถ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ ์์
ํ์ผ๋ก ์ ์ฅํ๊ฑฐ๋ ๊ธฐ์กด ํ์ผ์ ์
๋ฐ์ดํธํฉ๋๋ค.
์ด ๊ณผ์ ์ ํตํด ๋งค๋ฒ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์ด ๋ฐ๋ณต ์์
์ ์๋ฒฝํ๊ฒ ์๋ํํ ์ ์์ต๋๋ค.

๋จ๊ณ๋ณ ๊ฐ์ด๋: ์์
๋ฐ์ดํฐ ๋ถ์ ์๋ํ ์ค์ต
์ด์ ์ค์ ์ ๋์
ํ ์๊ฐ์
๋๋ค. ์ฌ๊ธฐ์๋ ํน์ ์์
ํ์ผ์์ ๊ณ ๊ฐ ํผ๋๋ฐฑ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๊ณ , ChatGPT API๋ฅผ ํ์ฉํ์ฌ ์ฃผ์ ํค์๋์ ๊ธ์ /๋ถ์ ๊ฐ์ฑ์ ์ฌ์ธต ๋ถ์ํ๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์์ธํ ์ค๋ช
ํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
์์ ์์
ํ์ผ (customer_feedback.xlsx) ๊ตฌ์กฐ:
| ID | ํผ๋๋ฐฑ ๋ด์ฉ |
|---|
| 1 | ์ ํ ๋ง์กฑ๋๊ฐ ๋๊ณ ์ฌ์ฉ์ด ํธ๋ฆฌํฉ๋๋ค. |
| 2 | ๋ฐฐ์ก์ด ๋๋ฌด ๋๋ฆฌ๊ณ ํฌ์ฅ์ด ๋ถ๋ํ์ต๋๋ค. |
| 3 | ๊ธฐ๋ฅ์ ์ข์ง๋ง ๊ฐ๊ฒฉ์ด ๋ค์ ๋น์๋๋ค. |
| 4 | ๋์์ธ์ด ํ๋ฅญํ๊ณ ์๋น์ค ์๋๊ฐ ๋น ๋ฆ
๋๋ค. |
| 5 | ์์ฃผ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ์์ ์ฑ์ด ๋จ์ด์ง๋๋ค. |
์ ์ฒด ์ฝ๋ (ํตํฉ)
์๋๋ ์์
ํ์ผ ๋ก๋ฉ๋ถํฐ ๊ฐ๋ ฅํ ChatGPT API ํธ์ถ, ๊ทธ๋ฆฌ๊ณ ์ต์ข
๊ฒฐ๊ณผ ์ ์ฅ๊น์ง, ์ด ๋ชจ๋ ๊ณผ์ ์ ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ํตํฉ ํ์ด์ฌ ์คํฌ๋ฆฝํธ์
๋๋ค.
import pandas as pd
import openai
import os
import time
import json
from dotenv import load_dotenv
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
if not openai.api_key:
raise ValueError("OPENAI_API_KEY ํ๊ฒฝ ๋ณ์๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค. .env ํ์ผ์ ํ์ธํ๊ฑฐ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํด์ฃผ์ธ์.")
file_path = 'customer_feedback.xlsx'
try:
df = pd.read_excel(file_path)
print("์์
ํ์ผ ๋ถ๋ฌ์ค๊ธฐ ์ฑ๊ณต:")
print(df.head())
except FileNotFoundError:
print(f"์ค๋ฅ: '{file_path}' ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ํ์ผ ๊ฒฝ๋ก๋ฅผ ํ์ธํด์ฃผ์ธ์.")
exit()
def create_prompt(feedback_text):
prompt = f"""๋ค์ ๊ณ ๊ฐ ํผ๋๋ฐฑ ๋ด์ฉ์ ๋ถ์ํ์ฌ ์ฃผ์ ํค์๋์ ๊ฐ์ฑ(๊ธ์ /๋ถ์ /์ค๋ฆฝ)์ ์ถ์ถํด์ค.
๊ฒฐ๊ณผ๋ JSON ํ์์ผ๋ก ์ ๊ณตํด์ค.
์์: {{\"keywords\": [\"ํค์๋1\", \"ํค์๋2\"], \"sentiment\": \"๊ธ์ \"}}
ํผ๋๋ฐฑ ๋ด์ฉ: \"{feedback_text}\"
"""
return prompt
analysis_results = []
print("\nChatGPT API ํธ์ถ์ ์์ํฉ๋๋ค...")
for index, row in df.iterrows():
feedback_id = row['ID']
feedback_text = row['ํผ๋๋ฐฑ ๋ด์ฉ']
prompt = create_prompt(feedback_text)
try:
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "๋๋ ๊ณ ๊ฐ ํผ๋๋ฐฑ ๋ถ์ ์ ๋ฌธ๊ฐ์ผ."},
{"role": "user", "content": prompt}
],
temperature=0.0
)
response_content = response.choices[0].message.content
try:
parsed_json = json.loads(response_content)
keywords = ", ".join(parsed_json.get("keywords", []))
sentiment = parsed_json.get("sentiment", "๋ถ์ ๋ถ๊ฐ")
except json.JSONDecodeError:
print(f"๊ฒฝ๊ณ : ID {feedback_id} ํผ๋๋ฐฑ์ ์๋ต์ด JSON ํ์์ด ์๋๋๋ค. ์๋ณธ: {response_content[:100]}...")
keywords = "ํ์ฑ ์ค๋ฅ"
sentiment = "ํ์ฑ ์ค๋ฅ"
analysis_results.append({
'ID': feedback_id,
'ํผ๋๋ฐฑ ๋ด์ฉ': feedback_text,
'๋ถ์ ํค์๋': keywords,
'๊ฐ์ฑ': sentiment
})
print(f"ID {feedback_id} ํผ๋๋ฐฑ ๋ถ์ ์๋ฃ.")
time.sleep(0.5)
except openai.APIError as e:
print(f"ID {feedback_id} ํผ๋๋ฐฑ ๋ถ์ ์ค API ์ค๋ฅ ๋ฐ์: {e}")
analysis_results.append({
'ID': feedback_id,
'ํผ๋๋ฐฑ ๋ด์ฉ': feedback_text,
'๋ถ์ ํค์๋': 'API ์ค๋ฅ',
'๊ฐ์ฑ': 'API ์ค๋ฅ'
})
except Exception as e:
print(f"ID {feedback_id} ํผ๋๋ฐฑ ๋ถ์ ์ค ์์์น ๋ชปํ ์ค๋ฅ ๋ฐ์: {e}")
analysis_results.append({
'ID': feedback_id,
'ํผ๋๋ฐฑ ๋ด์ฉ': feedback_text,
'๋ถ์ ํค์๋': '์์์น ๋ชปํ ์ค๋ฅ',
'๊ฐ์ฑ': '์์์น ๋ชปํ ์ค๋ฅ'
})
results_df = pd.DataFrame(analysis_results)
print("\n์ต์ข
๋ถ์ ๊ฒฐ๊ณผ (์์ 5๊ฐ):")
print(results_df.head())
output_file_path = 'customer_feedback_analysis_results.xlsx'
try:
results_df.to_excel(output_file_path, index=False)
print(f"\n๋ถ์ ๊ฒฐ๊ณผ๊ฐ '{output_file_path}' ํ์ผ๋ก ์ฑ๊ณต์ ์ผ๋ก ์ ์ฅ๋์์ต๋๋ค.")
except Exception as e:
print(f"์ค๋ฅ: ์์
ํ์ผ ์ ์ฅ ์ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค: {e}")
ChatGPT API์ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ๋ณด๋ด๋ฉด ํ ํฐ ์ ํ์ ๊ฑธ๋ฆฌ๊ฑฐ๋ ๋น์ฉ์ด ๋ง์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ํ์ํ ์ต์ํ์ ๋ฐ์ดํฐ๋ง ๋ณด๋ด๊ฑฐ๋, ๋ฐ์ดํฐ๋ฅผ ์ฒญํฌ(chunk)๋ก ๋๋์ด ์ฒ๋ฆฌํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์ด ์์ ์ฝ๋๋ ๊ฐ ํ์ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, time.sleep()์ผ๋ก ํธ์ถ ๊ฐ๊ฒฉ์ ์กฐ์ ํฉ๋๋ค.
์ด ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋ ์๊ฐ, customer_feedback.xlsx ํ์ผ์ ๋ชจ๋ ๊ณ ๊ฐ ํผ๋๋ฐฑ์ด ์๋์ผ๋ก ๋ถ์๋์ด ํต์ฌ ํค์๋์ ๊ฐ์ฑ ์ ๋ณด๊ฐ ์๋ฒฝํ๊ฒ ์ถ๊ฐ๋ customer_feedback_analysis_results.xlsx ํ์ผ์ด ๋๋ฑ ์์ฑ๋ฉ๋๋ค! ๊ณ ๊ฐ ํผ๋๋ฐฑ ๋ถ์์ ChatGPT API์ ๊ฐ์ฅ ๊ฐ๋ ฅํ ํ์ฉ ์ฌ๋ก ์ค ํ๋์ด๋ฉฐ, ๋ ๊น์ด ์๋ ๋ด์ฉ์ โก 0์๋ถํฐ ์์! 2026๋
์ต์ ChatGPT API ๊ณ ๊ฐ ํผ๋๋ฐฑ ์๋ ๋ถ์: ์์ต ๊ทน๋ํ ์๋ฒฝ ์ค์ ๊ฐ์ด๋์์ ์์ธํ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ธฐ์กด ๋ฐฉ์๊ณผ ์๋ํ ๋ฐฉ์ ๋น๊ต
์๋์ผ๋ก ์์
๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๋ ๋ฐฉ์๊ณผ ํ์ด์ฌ+ChatGPT API๋ฅผ ํ์ฉํ ์๋ํ ๋ฐฉ์์ ํน์ง์ ๋น๊ตํ์ต๋๋ค.
| ํน์ง | ์๋ ์์
๋ฐ์ดํฐ ๋ถ์ | ํ์ด์ฌ + ChatGPT API ์๋ํ |
|---|
| ์ฒ๋ฆฌ ์๋ | ๋ฐ์ดํฐ ์์ ๋น๋กํ์ฌ ๋๋ฆผ | ์ค์ ์ ๋ฐ๋ผ ๋งค์ฐ ๋น ๋ฆ (API ํธ์ถ ์/์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ) |
| ์ ํ๋ | ํด๋จผ ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ ๋์ | ์ผ๊ด๋ ๊ฒฐ๊ณผ ๋์ถ, ํ๋กฌํํธ์ ๋ฐ๋ผ ์ ํ๋ ๊ฒฐ์ |
| ํ์ฅ์ฑ | ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ํ๊ณ | ์ฝ๋ ๋ณ๊ฒฝ์ผ๋ก ๋ค์ํ ๋ถ์ ๋ฐ ๋๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ฐ๋ฅ |
| ๋น์ฉ | ์ธ๊ฑด๋น ๋ฐ์ | API ์ฌ์ฉ๋ฃ ๋ฐ์ (ํ ํฐ ๊ธฐ๋ฐ) |
| ์ด๊ธฐ ์ค์ | ๋ฎ์ (์์
์ฌ์ฉ๋ฒ๋ง ์๋ฉด ๋จ) | ํ์ด์ฌ ํ๊ฒฝ ์ค์ , API ํค ๋ฐ๊ธ, ์ฝ๋ ์์ฑ ํ์ |
| ์ ํฉํ ๊ฒฝ์ฐ | ์๋์ ๋ฐ์ดํฐ, ์ผํ์ฑ ๋ถ์ | ๋ฐ๋ณต์ ์ธ ๋๋ ๋ฐ์ดํฐ ๋ถ์, ๋ณต์กํ ํ
์คํธ ๋ถ์ |
- ๋ฐ๋ณต ์์
์๊ฐ ์ ์ฝ
- ์ผ๊ด๋ ๋ถ์ ๊ฒฐ๊ณผ
- ๋ค์ํ ๋ถ์ ์๋ ๊ฐ๋ฅ
- ์ด๊ธฐ ์ค์ ํ์
- API ์ฌ์ฉ ๋น์ฉ ๋ฐ์
- [ํ๋กฌํํธ ์์ง๋์ด๋ง](/blog/chatgpt-data-preprocessing-strategies) ์๋ จ๋ ์๊ตฌ
์๋ํ ์ ๊ณ ๋ คํ ์ฃผ์์ฌํญ ๋ฐ ํ๊ณ์
ํ์ด์ฌ๊ณผ ChatGPT API๋ฅผ ํ์ฉํ ์๋ํ๋ ๋ถ๋ช
ํ์ ์ ์ธ ์ฅ์ ์ ์ ๊ณตํ์ง๋ง, ์ฑ๊ณต์ ์ธ ๋์
์ ์ํด์๋ ๋ช ๊ฐ์ง ํต์ฌ ์ฃผ์์ฌํญ๊ณผ ์ ์ฌ์ ํ๊ณ๋ฅผ ๋ฐ๋์ ์ดํดํ๊ณ ์์ด์ผ ํฉ๋๋ค.
- API ๋น์ฉ: ChatGPT API๋ ์ฌ์ฉ๋(ํ ํฐ ์) ๊ธฐ๋ฐ์ผ๋ก ๋น์ฉ์ด ์ฒญ๊ตฌ๋ฉ๋๋ค. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์ฌ์ฝ ์ฒ๋ฆฌํ๋ค๊ฐ๋ ์์๋ณด๋ค ํจ์ฌ ๋ง์ ๋น์ฉ์ด ๋ฐ์ํ ์ ์์ผ๋, OpenAI์ API ์ฌ์ฉ๋๊ณผ ๋ชจ๋ธ๋ณ ํ ํฐ ๋น์ฉ์ ๋ฐ๋์ ์ฌ์ ์ ํ์ธํ๊ณ ํฉ๋ฆฌ์ ์ธ ์์ฐ์ ์ฑ
์ ํ๋ ๊ฒ์ด ํ๋ช
ํฉ๋๋ค.
- ๋ฐ์ดํฐ ๋ณด์ ๋ฐ ํ๋ผ์ด๋ฒ์: ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ API์ ์ ์กํ ๋๋ ๋ฐ์ดํฐ ๋ณด์ ๋ฐ ํ๋ผ์ด๋ฒ์ ์ ์ฑ
์ ๋๊ตฌ๋ณด๋ค ์ ์คํ๊ฒ ๊ฒํ ํด์ผ ํฉ๋๋ค. OpenAI์ ๋ฐ์ดํฐ ์ฌ์ฉ ์ ์ฑ
์ ๋ฉด๋ฐํ ํ์ธํ๊ณ , ํ์ํ๋ค๋ฉด ๋ฐ์ดํฐ ์ต๋ช
ํ ๋๋ ์จํ๋ ๋ฏธ์ค AI ์๋ฃจ์
๋์
์ ์ ๊ทน์ ์ผ๋ก ๊ณ ๋ คํด ๋ณผ ์ ์์ต๋๋ค.
- ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ค์์ฑ: API๊ฐ ๋ฐํํ๋ ๋ถ์ ๊ฒฐ๊ณผ์ ํ๋ฆฌํฐ๋ ํ๋กฌํํธ์ ๋ช
ํ์ฑ๊ณผ ๊ตฌ์ฒด์ฑ์ 100% ์ข์ฐ๋๋ค๊ณ ํด๋ ๊ณผ์ธ์ด ์๋๋๋ค. ์ํ๋ ์์ค์ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์๋๋ค๋ฉด, ์ฃผ์ ํ์ง ๋ง๊ณ ํ๋กฌํํธ๋ฅผ ๋์์์ด ์์ ํ๊ณ ์ต์ ํํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
- API Rate Limit: API ํธ์ถ์๋ ์๊ฒฉํ ์ด๋น/๋ถ๋น ์ ํ(Rate Limit)์ด ์กด์ฌํฉ๋๋ค. ์งง์ ์๊ฐ ๋ด์ ๋ฌด๋ฆฌํ๊ฒ ๋ง์ ์์ฒญ์ ๋ณด๋ด๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ผ๋, ์ฝ๋์
time.sleep()์ ํ์ฉํ์ฌ ํธ์ถ ๊ฐ๊ฒฉ์ ํ๋ช
ํ๊ฒ ์กฐ์ ํ๊ฑฐ๋ OpenAI์ ๊ณต์ Rate Limit ๊ด๋ฆฌ ์ ๋ต์ ๋ฐ๋์ ์ ์ฉํด์ผ ํฉ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ ํ์ฑ ๊ฒํ : AI ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ ์๋ฌด๋ฆฌ ๋ฐ์ด๋๋ ๋๋๋ก ๋ถ์ ํํ๊ฑฐ๋ ๋ฏธ๋ฌํ ๋งฅ๋ฝ์ ๋์น ์ ์์ต๋๋ค. ํนํ ๋น์ฆ๋์ค์ ์ค์ํ ๊ฒฐ์ ์ ์ง๊ฒฐ๋๋ ๋ถ์ ๊ฒฐ๊ณผ๋ผ๋ฉด, ์๋ํ๋ ๊ฒฐ๊ณผ๋ผ ํ ์ง๋ผ๋ ๋ฐ๋์ ์ฌ๋์ด ์ต์ข
์ ์ผ๋ก ๊ฒํ ํ๊ณ ๋ณด์ํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
ํจ๊ป ๋ณด๋ฉด ์ข์ ๊ธ
๋ง๋ฌด๋ฆฌ:
์ด ์๋ฒฝ ๊ฐ์ด๋๋ฅผ ํตํด ํ์ด์ฌ๊ณผ ChatGPT API๋ฅผ ํ์ฉํ ์์
๋ฐ์ดํฐ ๋ถ์ ์๋ํ์ ํต์ฌ ์๋ฆฌ์ ์ค์ ๋
ธํ์ฐ๋ฅผ ์๋ฒฝํ๊ฒ ์ต๋ํ์
จ๊ธฐ๋ฅผ ์ง์ฌ์ผ๋ก ๋ฐ๋๋๋ค. ์ด์ ์ฌ๋ฌ๋ถ์ ์
๋ฌด ํจ์จ์ ๊ทน๋ํํ๊ณ ์์ฐ์ฑ์ ํญ๋ฐ์ํค๋ ๋๋ผ์ด ๋ณํ๋ฅผ ๊ฒฝํํ์ธ์! ๊ถ๊ธํ ์ ์ด๋ ๋ ๋์ ์์ด๋์ด๊ฐ ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ๋ฌธ์ํด์ฃผ์ธ์.