1. 글 요약 프로그램(with. ChatGPT)
사용자에게 요약하고자 하는 글을 입력 받으면 최종 요약 결과를 보여주는 프로그램

토큰이란?
AI 나라의 글자 단위
토큰화란?
텍스트를 작은 단위로 나누는 과정
프로그램 UI 만들기
- 기본 정보 불러오기 (streamlit, OpenAI)
- 기능 구현 함수 (askGpt 함수 정의)
- 메인 함수로 구성
# 1.
import streamlit as st
import openai
# 2.
def askGpt(prompt,apikey):
# OpenAI API 클라이언트를 초기화합니다.
client = openai.OpenAI(api_key = apikey)
# GPT 모델에 프롬프트를 보내어 응답을 요청합니다.
response = client.responses.create(
model="gpt-4.1-nano",
input=prompt)
# 응답에서 요약된 텍스트를 추출하여 반환합니다.
gptResponse = response.output_text
return gptResponse
# 3.
def main():
# 페이지 설정(웹페이지 제목)
st.set_page_config(page_title="요약 프로그램")
# 헤더와 구분선 추가
st.header("📃요약 프로그램")
st.markdown('---')
# 사이드바 설정 (st.text_input: API키 입력받기, type='password': 비밀번호 표시X)
with st.sidebar:
openai_apikey = st.text_input(label='OPENAI API 키', placeholder='Enter Your API Key', value='', type='password')
# 요약 기능 추가하기
text = st.text_area("요약 할 글을 입력하세요")
if st.button("요약"):
prompt = f'''
**Instructions** :
- You are an expert assistant that summarizes text into **Korean language**.
- Your task is to summarize the **text** sentences in **Korean language**.
- Your summaries should include the following :
- Omit duplicate content, but increase the summary weight of duplicate content.
- Summarize by emphasizing concepts and arguments rather than case evidence.
- Summarize in 3 lines.
- Use the format of a bullet point.
-text : {text}
'''
if openai_apikey:
# API 키가 유효한 경우 요약 작업을 수행합니다.
st.info(askGpt(prompt, openai_apikey))
else:
st.info("API 키를 입력하세요")
if __name__=="__main__":
main()

2. AI 로고 생성 프로그램(with. DALL.E)
사용자가 생성하고자 하는 로고에 대한 정보를 입력하면 AI가 로고를 생성
DALL.E란?
ChatGPT를 만든 OpenAI에서 개발한 이미지 생성 AI 프로그램
- prompt (string)
- 필수: 예
- 설명: 생성할 이미지에 대한 텍스트 설명
- DALLE-2 모델: 1000자
- DALLE-3 모델: 4000자
- model (string)
- 필수: 아니요 (기본값: "dall-e-2")
- 설명: 이미지 생성에 사용할 모델을 지정
- "dall-e-2", "dall-e-3"
- n (integer or null)
- 필수: 아니요 (기본값: 1)
- 설명: 생성할 이미지의 수를 지정합니다. 1부터 10까지 설정 가능하며, DALLE-3 모델에서는 n=1만 지원됩니다.
- quality (string)
- 필수: 아니요 (기본값: "standard")( DALLE-3 모델에서만 지원)
- 설명: 생성된 이미지의 품질을 지정
- "standard", "hd"(더 세부적이고 일관)
- response_format (string or null)
- 필수: 아니요 (기본값: "url")
- 설명: 생성된 이미지가 반환되는 형식을 지정
- "url", "b64_json"(60분 동안 유효)
- size (string or null)
- 필수: 아니요 (기본값: "1024x1024")
- 설명: 생성된 이미지의 크기를 지정
- DALLE-2 모델: "256x256", "512x512", "1024x1024"
- DALLE-3 모델: "1024x1024", "1792x1024", "1024x1792"
- style (string or null)
- 필수: 아니요 (기본값: "vivid")(DALLE-3 모델에서만 지원)
- 설명: 생성된 이미지의 스타일을 지정
- "vivid"(더 극적이고 현실감을 강조), "natural"(자연스러움)
import openai
client = openai.OpenAI(api_key = "API_Key")
response = client.images.generate(
model="dall-e-3",
prompt="귀엽고 친절한 첨단 고객센터 AI 로봇을 이미지를 생성해줘. 이미지의 배경은 흰색이야.",
size="1024x1024",
quality="standard",
n=1
)
response
프로그램 UI 만들기
- 기본 정보 불러오기 (streamlit, OpenAI)
- 기능 구현 함수 (drawLogoUsingDalle3 함수 정의)
- 메인 함수로 구성
# 1.
import streamlit as st
import openai
# 2.
def drawLogoUsingDalle3(question):
API_KEY = "API_Key"
client = openai.OpenAI(api_key = API_KEY)
response = client.images.generate(
model="dall-e-3",
prompt=question,
size="1024x1024",
quality="standard",
n=1,
)
image_url = response.data[0].url
return image_url
# 3.
def main():
st.title('AI 로고 생성기')
st.markdown('---')
st.subheader('생성하고자 하는 로고에 대한 상세한 정보를 입력하세요')
# 사용자 입력 받기
brand_name = st.text_input("1. 브랜드 이름은 무엇인가요?")
message = st.text_input("2. 로고에서 전달하고 싶은 메시지나 느낌은 무엇인가요?")
target_audience = st.text_input("3. 타겟 고객층은 누구인가요?")
preferred_style = st.text_input("4. 선호하는 로고 스타일이나 색상이 있나요?")
usage_environment = st.text_input("5. 로고는 주로 어디에 사용될 예정인가요?")
# 로고 생성 요청 버튼
if st.button("로고 생성 요청"):
full_prompt = f'''
Please create a logo for a brand with the following details:
Brand Name: {brand_name}
Message/Feelings: {message}
Target Audience: {target_audience}
Preferred Style/Colors: {preferred_style}
Usage Environment: {usage_environment}
The logo should be visually appealing, memorable, and effectively represent the brand's identity.
Please consider the provided details to create a design that resonates with the target audience and stands out from competitors.
'''
image_url = drawLogoUsingDalle3(full_prompt)
st.subheader('최종 생성 로고')
st.image(image_url)
if __name__=="__main__":
main()


'특강 > 생성형 AI를 활용한 리포팅 자동화(API)' 카테고리의 다른 글
| [Open AI] 프롬프트 엔지니어링 (2) | 2025.08.28 |
|---|---|
| [Open AI] 생성형 AI API (08.21) (2) | 2025.08.26 |