Files
Source/WATSONX/ad.py
T
2026-05-26 22:08:02 +09:00

76 lines
2.1 KiB
Python

from dotenv import load_dotenv
import os
from ibm_watsonx_ai import APIClient
from ibm_watsonx_ai import Credentials
from ibm_watsonx_ai.foundation_models import ModelInference
import gradio as gr
# .env 내용 가져오기
load_dotenv()
apikey = os.getenv("WATSONX_API_KEY")
project_id = os.getenv("WATSONX_PROJECT_ID")
watsonx_ai_url = os.getenv("WATSONX_URL")
credentials = Credentials(
url = f"{watsonx_ai_url}",
api_key = f"{apikey}",
)
client = APIClient(credentials)
model = ModelInference(
model_id="ibm/granite-4-h-small",
api_client=client,
project_id=f"{project_id}",
params = {
"max_tokens": 1000
}
)
def ad_text(name, brand_name, strength, tone, keyword, value):
system_prompt = """
1. SWOT 분석하여 광고 문구 작성해줘
"""
user_prompt=f"""
아래 내용을 참고해서 1~2줄짜리 광고 문구 5개 작성해줘.
- 제품명 : {name}
- 브랜드명 : {brand_name}
- 제품특징 : {strenghth}
- 톤앤매너 : {tone}
- 브랜드 핵심 가치 : {value}
- 필수 포함 키워드 : {keyword}
"""
messages = [
# 시스템 프롬프트
{"role" : "system", "content" : system_prompt},
{"role" : "user", "content" : user_prompt},
]
generated_response = model.chat(messages=messages)
return print(generated_response['choices'][0]['message']['content'])
demo = gr.Interface(
fn=ad_text,
inputs=[gr.Text(label = "제품명"),
gr.Text(label = "브랜드명"),
gr.Text(label = "제품 특징"),
gr.Text(label = "톤앤매너"),
gr.Text(label = "필수 포함 키워드"),
gr.Text(label = "브랜드 핵심 가치"),
],
outputs=[gr.Markdown()],
title="광고 문구 프로그램",
description="텍스트 입력 시 ai가 광고 문구를 작생해 드립니다."
)
demo.launch()