흠..... 근데 마음에 안드는점이 하나가 있다.
뭐냐면 영어로 귀찮게 번역해야된다는 점이다.
나는 영알못이라 영어만 보면 분노가 치밀기 때문에
한글을 쓰고싶은 마음이 너무 강하다.
그리하여 소스를 조금 수정해보겠다.
일단 한글로 다시 한번 시도해보자.
정반대의 이미지가 나왔다.
나는 분노가 치밀어 오르는데 쌀쌀해보이는 숲이 나온다.
분노폭발전에 바로 시작해보자.
일단 번역API를 사용해야 하는데, 대부분 다 돈이 든다. (조금만 쓰면 무료긴 함)
대충 비교하자면 이렇다.
다른것들은 글자수에 비용을 측정하지만 GPT선생님의 경우는 토큰단위로 과금이 된다.
길게 쓸수록 돈이 많이 나온다는 뜻이지만 가늠이 안간다.
지피티에게 물어본다......
백만자 정도 쓰면 4달러정도 나온다고한다. 파파고랑 비슷한거같은데....?
1000번 쓰면 62원? 평생써도 모자랄것같은데?
(제 계산이 잘 못 되었을수도 있습니다. 저 수알못임)
암튼 바로 GPT선생님까지 추가한다. 레츠고
현재 내 로직은 아래와 같다.
from flask import Flask, request, jsonify
import openai
from flask_cors import CORS
app = Flask(__name__)
CORS(app, resources={r"/generate": {"origins": "http://localhost:3000"}})
# OpenAI API Key 설정
openai.api_key = "발급받은 API 키를 여기에 입력하세요." # 발급받은 API 키를 여기에 입력하세요.
@app.route('/generate', methods=['POST'])
def generate_image():
try:
# 사용자 요청 데이터 받기
data = request.json
user_input = data.get("prompt", "a cat sitting on a chair")
print(f"Received prompt: {user_input}") # 입력 로그
# OpenAI API로 이미지 생성 요청
response = openai.Image.create(
prompt=user_input,
n=1,
size="512x512"
)
print(f"OpenAI API response: {response}") # 응답 로그
# 생성된 이미지 URL 반환
image_url = response['data'][0]['url']
return jsonify({"image_url": image_url})
except Exception as e:
print(f"Error: {str(e)}") # 에러 로그
return jsonify({"error": str(e)}), 500
if __name__ == "__main__":
app.run(debug=True)
여기에 user_input 프롬프트를 OpenAI의 ChatGPT API를 사용해 한국어에서 영어로 번역하는 API 만 살짝 추가해줄것이다.
변경된 작동방식은 다음과 같다.
- openai.ChatCompletion.create 호출:
- gpt-3.5-turbo 모델을 사용해 입력된 텍스트를 영어로 번역
- messages에서 시스템 메시지로 "한국어를 영어로 번역하라"고 요청
- user_input(사용자가 입력한 한국어 텍스트)을 번역하도록 API 요청.
- 번역 결과 추출:
- OpenAI 응답의 choices[0]['message']['content']에서 번역된 영어 텍스트를 가져온다.
- translated_prompt 변수에 저장.
- 번역 결과 로그 출력:
- 번역된 텍스트를 print로 출력해 디버깅하거나 확인할 수 있도록 설정.
작동 방식 비교
- 기존 코드:
- 입력: "A cat sitting on a chair"
- DALL-E 호출: "A cat sitting on a chair"
- 결과: 영어 프롬프트 기반으로 이미지를 생성.
- 수정 코드:
- 입력: "의자에 앉아 있는 고양이"
- 번역: "A cat sitting on a chair"
- DALL-E 호출: "A cat sitting on a chair"
- 결과: 한국어 입력도 처리하여 이미지를 생성.
일단 첫번째로
generate_image함수에 프롬프트를 영어로 번역하는 로직을 추가 및 변경할 것 이다.
# 1. 프롬프트를 영어로 번역
translation_response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a translator that converts Korean to English."},
{"role": "user", "content": user_input}
]
)
translated_prompt = translation_response['choices'][0]['message']['content']
print(f"Translated Prompt: {translated_prompt}") # 번역된 프롬프트 출력
# 2. 번역된 프롬프트로 이미지 생성 요청
response = openai.Image.create(
prompt=translated_prompt,
n=1,
size="512x512"
)
print(f"OpenAI API response: {response}") # 응답 로그
..... 끝이다.....
매우 간단하다...........
테스트를 들어가본다.......
터미널에서 보면 번역도 참 잘된것이 보인다.......
결과물은 어떨까?
대나무를 뺏겨 화가난 팬더가 잘 생성이 된다~!
번역기능은 간단하게 끝~!
.... 다음편에서 계속.....
'만들고 싶은거 만들기' 카테고리의 다른 글
광고 수익을 창출할 웹사이트 만들어보기 2-9(Frontend 꾸미기~! CSS 삽질) (1) | 2024.12.05 |
---|---|
광고 수익을 창출할 웹사이트 만들어보기 2-8(카카오톡 공유기능 추가) (1) | 2024.12.05 |
광고 수익을 창출할 웹사이트 만들어보기 2-6(React-Flask연동 feat.CORS) (2) | 2024.12.04 |
광고 수익을 창출할 웹사이트 만들어보기 2-5(React.js 프로젝트 만들기) (1) | 2024.12.04 |
광고 수익을 창출할 웹사이트 만들어보기 2-4(OpenAI + DALL-E로 계획 변경) (2) | 2024.12.03 |