AI

LangChain(랭체인)과 GPT로 AI 웹 서비스 만들기

ㅈㅣ니 2023. 8. 29. 21:17

LangChain으로 웹페이지와 연결 후 GPT API 를 이용하여 하나의 작은 서비스를 만들어 볼 것이다.

( GPT API 는 카드 등록해야해서, 실제로는 meta에서 만든 llama를 이용할 것이다.)

-> 나중에 GPT API 활성화만 시키면 그대로 사용 가능.

LangChain 이란?

LLM 어플리케이션 개발 프레임워크이다.

 

 

[ GPT API 연결할 때 ]

 

.env 파일에 

API 키 값 넣어주기

OPENAI_API_KEY=API키값넣기

터미널에 파이썬 확장프로그램 설치

pip install python-dotenv

설치 후 

<main.py>

from dotenv import load_dotenv
load_dotenv()

main.py 에 입력해줌

 

랭체인 설치

https://python.langchain.com/docs/get_started/quickstart.html

 

랭체인 공식문서에서 보고 따라하기

pip install langchain

터미널에서 설치

pip install openai

 

UI 는 Streamlit으로 간단하게 만들예정!!

streamlit 설치

pip install streamlit

-> 터미널에서 streamlit 설치한다.

import streamlit as st
from langchain.chat_models import ChatOpenAI

chat_model = ChatOpenAI()

st.title('인공지능 시인')

content = st.text_input('시의 주제를 제시해주세요.')

if st.button('시 작성 요청하기'):
    with st.spinner('시 작성 중...'):
        result = chat_model.predict(content+ "에 대한 시를 써줘")
        st.write(result)

이렇게 코드는 간단하게 작성한다. ( streamlit 공식문서에서 코드 보고 하면 된다. )

 

배포도 streamlit으로 한다.

streamlit cloud 에서 github의 repository에 코드를 올리고, repository 링크만 등록하면 간단하게 배포 가능하다.

repository는 깃허브에 만들어 둔 repository 설정, App URL은 원하는 이름으로

이렇게 설정하고 배포하면 된다!

 

 

Advanced settings... 를 클릭 후 파이썬 버전 맞춰주고, 
GPT API 키 넣어주면 된다.

나중에 나만 보기 싫고,

사람들이 사용할 수 있게 하려면 public으로 바꿔주기.

 

[ llama 로 서비스 만들기 ]

 

llama가 오픈소스로 뿌려지고, 비교적 가벼운 성능으로 이용가능하게 만든 사람들이 올려놓은 것을 이용.

나는 그 중 제일 좋은 성능으로 다운 받았다.

 

https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main

 

llama는 인터넷 없는 곳에서도 사용 가능

import streamlit as st
from langchain.chat_models import ChatOpenAI
from langchain.llms import CTransformers

llm = CTransformers(
    model="llama-2-7b-chat.ggmlv3.q8_0.bin",
    model_type="llama"
)

st.title('인공지능 시인')

content = st.text_input('시의 주제를 제시해주세요.')

if st.button('시 작성 요청하기'):
    with st.spinner('시 작성 중...'):
        result = llm.predict("write a poem about:" + content + ": ")
        st.write(result)

llama는 아직 한국어보다는 영어에 강해서 영어로 반응하게 해줌...

이렇게 시를 작성해준다.

 

CPU 성능 차지 무슨일..ㅠ

 

 

 

반응형