본문 바로가기

학습 내용 정리/AI

streamlit을 활용한 웹 서비스 개발 3주차

728x90

 

3주차는 도전해 보고 싶어서 혼자 만들어 봤다.

크레딧은 소중하기에 배포는 하지 않았다. 


Github :
https://github.com/verdantjuly/item_advertiser

 

app.py

import streamlit as st
from ai_image import ai_image 
from ai_text import ai_text

st.title("제품 홍보 포스터 생성기")
st.subheader("당신의 제품을 홍보하고 포스터로 만들어드립니다.",divider="rainbow")
item = st.chat_input("어떤 제품을 홍보해 드릴까요?")
if item:
    with st.spinner("생성 중입니다"):
        image = ai_image(item)
        text = ai_text(item)
        with st.chat_message("ai"):
            st.image(image)
            st.text(text)

 

ai_image.py

import os
from openai import OpenAI

def ai_image(prompt):

  os.environ["OPENAI_API_KEY"] = "API-KEY"

  client = OpenAI(
      api_key=os.environ.get("OPENAI_API_KEY"),
  )

  response = client.images.generate(
    model="dall-e-3",
    prompt=f"{prompt}의 홍보 포스터",
    size="1024x1024",
    quality="standard",
    n=1,
  )

  image_url = response.data[0].url
  return image_url

 

ai_text.py

 

import os
from openai import OpenAI


def ai_text(prompt):
    
    os.environ["OPENAI_API_KEY"] = "API-KEY"

    client = OpenAI(
        api_key=os.environ.get("OPENAI_API_KEY"),
    )

    chat_completion = client.chat.completions.create(
        messages=[
            {
                "role": "user",
                "content": f"{prompt}를 홍보하는 문구를 100자 이내로 적어 줘",
            }
        ],
        model="gpt-4o",
    )

    result = chat_completion.choices[0].message.content

    return result