본문 바로가기
카테고리 없음

AI 챗봇 상담사 게시해 수익 창출하기

by 디마드 2024. 3. 17.

지난 포스팅에 Streamlit을 이용해 챗봇 상담사를 만들었다. 한 걸을 더 나아가 streamlit.io 사이트에 내가 만든 챗봇을 게시해 수익 창출을 해보자. 

1. 여러 사용자를 위한 소스 코드 다듬기

사용자가 별 상담내용이 기록되고 대화가 되어야 한다. 그러기 위해서는 스레드가 각각 생성되어야 한다. 그 외 openai api키 같이 중요한 코드는 숨기고 배포하도록 하자. 

from openai import OpenAI
import streamlit as st
#from dotenv import load_dotenv
#load_dotenv()
import time

assistant_id = st.secrets['assistant_id']

with st.sidebar:
    st.link_button("더 좋은 컨텐츠를 위한 후원하기","https://toss.me/guslang")
    iframe_html = """
    <iframe src="https://ads-partners.coupang.com/widgets.html?id=765536&template=banner&trackingCode=AF7819398&subId=&width=300&height=250" width="300" height="250" frameborder="0" scrolling="no" referrerpolicy="unsafe-url" browsingtopics></iframe>
    """
    st.markdown(iframe_html, unsafe_allow_html=True)
    st.info("이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.")
    openai_api_key = st.text_input("OpenAI API KEY",  type="password")
    client = OpenAI(api_key=openai_api_key)
    thread_id = st.text_input("Thread ID")
    
    thread_make_btn = st.button("Create a new thread")
    if thread_make_btn:
        thread = client.beta.threads.create()
        thread_id = thread.id
        st.subheader(f"{thread_id}",divider="rainbow")
        st.info("새로운 쓰레드가 생성되었습니다.")
        
st.title("연애 상담 ChatBot")    

if "messages" not  in  st.session_state:
    st.session_state["messages"] = [{"role":"assistant","content":"연애코칭만 무진장입니다. 무엇을 도와드려요?"}]

print(f"st.session_state\n{st.session_state}")
print(f"thread_id:{thread_id}")
print()

for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])

prompt = st.chat_input()

if prompt:
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)
    # response = client.chat.completions.create(model="gpt-3.5-turbo", messages=st.session_state.messages)
    response = client.beta.threads.messages.create(thread_id=thread_id, role="user", content=prompt)    
    run = client.beta.threads.runs.create(thread_id=thread_id, assistant_id=assistant_id)
    run_id = run.id
    
    while True:
        run = client.beta.threads.runs.retrieve(thread_id=thread_id, run_id=run_id)
        if run.status == "completed":
            break
        else:
            time.sleep(2)
    
    # assistant_content = response.choices[0].message.content
    thread_messages = client.beta.threads.messages.list(thread_id)
    assistant_content = thread_messages.data[0].content[0].text.value
    
    st.session_state.messages.append({"role": "assistant", "content": assistant_content})
    st.chat_message("assistant").write(assistant_content)

    print(st.session_state.messages)

2. Git hub 레파지토리 생성하기 (무료)

3. Git hub에 파일 업로드 (무료)

작성한 코드를 Git hub에 올린다.

4. Streamlit.io에 사이트를 개설한다. (무료)

오픈한 사이트 이름을 등록하여 서비스 url을 받는다. 이 때 Git hub 저장소 정보를 넣어서 연동하게 된다. 그러면 다음과 같은 사이트가 만들어지고, 내가 만든 첫 번째 AI 챗봇이 공개된다. 두둥~

연애상담을 무료로 제공하고 토스 후원, 쿠팡 파트너스 제휴 링크도 걸려 있어서 수익 창출도 가능하다. 

https://openaibot.streamlit.app/

 

나만의 챗봇을 만들어 서비스할 수 있는 세상이다. 잘만든 봇하나가 웬만한 아르바이트보다 나은 수입을 가져다 줄지도 모른다. 여기에 사용된 기술을 잘 익혀서 응용한다면 분명 좋은 결과물을 가져올 수 있을 것이다. 앞으로 AI세상이 아니겠는가. 약간의 코딩을 이행하는 능력, 서비스를 제공하는 사이트, 홍보를 할 수 있는 사이트 그리고 이들을 하나의 서비스로 엮을 수 있는 능력이 필요한 세상이다. 

반응형

댓글