본문 바로가기
Langchain

[Langchain X Streamlit] 1시간 만에 AI 답변 주는 서비스 배포하기

by MiaCoder 2024. 2. 23.
git commit -m "2024_02_23"

 

지난 번 Langchain으로부터 답변 받아오기, Streamlit소개를 했습니다.

 

이전 글을 읽고 오셔야 합니다.

 

https://miacoder.tistory.com/61

 

[Langchain] 파이썬을 통해 랭체인(Langchain)으로 Chat-gpt사용하기 24년도 버전

오늘은 Langchain을 활용하여 chat gpt의 답변을 파이썬 파일에 불러와 보겠습니다. 매우매우 간단하고 좋은 기능이니 잘 사용하면 한단계 발전된 서비스를 제공할 수 있을겁니다. 우선 chat-gpt의 API

miacoder.tistory.com

https://miacoder.tistory.com/62

 

[Streamlit] 파이썬으로 간편하게 만드는 웹

Streamlit은 파이썬으로 만들어지고 굉장히 빠르게 웹서비스, 앱을 만들 수 있는 파이썬 라이브러리입니다. 간단한 웹서비스, 앱을 구축하고 싶지만 마크업을 위한 html, 디자인을 위한 css, 백엔드

miacoder.tistory.com

 

그 다음으로 어떤 간단한 프로그램을 만들고, 배포하는 경험을 하면 흠미도 생기고, API 사용법 등을 경험 할 수 있다고 생각해 간단하게 chat GPT로 답변을 받아오는 프로그램을 만들어 보았습니다.

 

 언어는 파이썬, 웹은 Streamli을 사용해서 만들었습니다.

 

파이썬 코드입니다.

 

파일이름은 main.py로 했습니다.

import streamlit as st
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser

#기본적인 langchain을 통한 답변 불러오기 Streamlit에 api를 업로드 하기 때문에 여기선 필요 없습니다
llm = ChatOpenAI()

#채팅 메시지를 문자열로 변환하는 부분
output_parser = StrOutputParser()

#체인을 통해 하나로 합치는 부분
chain = llm | output_parser

st.title('오토코더:)')
st.header('원하는 언어와 내용을 입력하세요.')
st.header('')

option = st.selectbox(
    #selectbox를 통해 언어를 선택하는 창입니다.
    '프로그래밍 언어를 선택하세요',
    ('java', 'python', 'c', 'c++', 'c#', 'Swift', 'visual basic', 'javasvript', 'php', 'sql', 'go', 'dart'))
	content = st.text_input('만들고 싶은 내용을 적으세요.')

if st.button('코드 만들기'):
	#버튼을 누르면
    with st.spinner('코드 작성 중'):
    #로딩 중에는 동그란 표시가 나오고
        result = chain.invoke(option + '로' + content + "를 한국어로 만들어줘")
        # option(위에서 선택한 언어), content(원하는 코드내용)과 합쳐서 chat_gpt에게 명령을 내림으로서
        # 코드를 짜도록 합니다.
        st.success('완료!')
        #완료되면 완료를 띄웁니다
        st.write('완성된 코드입니다. 내용을 확인하세요')
        st.write(result)
        #코드를 출력합니다.

 

그리고 requirements.txt파일을  만들어 아래 코드를 입력한 후 같은 폴더에 추가하여 줍니다. 나중에 배포에 사용됩니다.

langchain
langchain-openai
streamlit

 

두 가지 파일을 만드셨다면 완성입니다.

 

매우 간결하고 짧은 코드입니다.

 

하지만 그 결과는 굉장히 인상적입니다.

 

아래 작동 모습을 보시죠 

 

 

이렇게 원하는 언어를 선택하고, 원하는 내용을 입력하면 chat-gpt가 바로 코드를 만들어 줍니다

 

그렇다면 이 쉬운 코드를 어떻게 배포하면 좋을까요?

 

이 또한 Streamli의 서비스를 이용하면 됩니다.

 

Streamlit cloud를 사용하면 됩니다.

 

https://streamlit.io/cloud

 

Streamlit Community Cloud • Streamlit

Deploy, manage, and share your apps with the world, directly from Streamlit — all for free.

streamlit.io

 

위 사이트로 이동하셔서 회원가입을 해줍니다. 

 

그 다음 github로 이동하셔서 github도 로그인해 줍니다.(없다면 회원가입)

 

https://github.com/

 

GitHub: Let’s build from here

GitHub is where over 100 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and fea...

github.com

 

회원 가입을 완료하셨으면, github에 새로운 리파지토리를 만들어 줍니다.

 

 

이름 만들고 create하시면 됩니다.

 

 

그 다음에 위와 같은 화면이 뜨면 vscode에서 파일을 github에 업로드 하실 수 있습니다.

(사전에 git을 설치해 주세요)

 

https://git-scm.com/book/ko/v2/%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-Git-%EC%84%A4%EC%B9%98

 

Git - Git 설치

이 책은 Git 2.0.0 버전을 기준으로 썼다. 대부분의 명령어는 그 이전 버전에서도 잘 동작하지만, 몇 가지 기능은 아예 없거나 미묘하게 다를 수 있다. Git의 하위 호환성은 정말 훌륭하기 때문에 2.0

git-scm.com

 

설치하셨으면 아래 코드를 vscode 터미널에 순서대로 입력하면 파일이 업로드 됩니다.

 

git init
#git 초기화
git add .
#모든 파일을 업로드 하겠다
git commit -m "2024_02_23"
#2024_02_23이름으로 업로드 하겠다(버전관리)
git remote add origin 개인깃허브리파지토리주소
#깃허브리파지토리주소로  업로드 하겠다
git push origin main
#사용자 main으로  업로드 시작

 

파일이 업로드 되었으면 이제 Streamlit cloud에서 호출이 가능합니다.

 

 

newapp를 눌러줍니다.

 

 

리파지토리를 위에서 만든 것을 선택하시고

 

 

Main file path를 위에서 만든 이름으로 바꿉니다.

 

그리고 Advanced setting 를 눌러 위와 같이 본인 api를 넣습니다. 

파이썬 버전도 선택합니다.

 

그리고 저장 후 Deploy를 누르면 배포가 됩니다.

 

완료되면 이제 배포가 완료된 것입니다.

 

링크를 누르면 실행이 가능할 것입니다.

 

그리고 마지막으로 나를 제외한 다른사람도 해당 사이트에 접속할 수 있도록 공개로 변경합니다.(선택)

 

 

그러면 이제 파일 배포도 완료, 다른 사람도 이용할 수 있게 됩니다.

 

이를 응용한다면 무궁무진한 프로그램을 만들 수 있을 것이 생각됩니다.