brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 13. 2024

AI 1탄-1-3. 랭체인을 활용한 AI서비스 8개

생성형 AI 공부 시작해봅시다.

랭체인을 활용한 AI 서비스 8개 만들어 봅시다.


<1> 서비스 1- 간단한 챗봇 만들기 - 아나콘다 (실습) - 잘됨

<2> 서비스 2- RAG기반 챗봇 만들기 - 코랩 (실습)-잘됨

<3> 서비스 3- PDF 요약 웹사이트 - 스트리릿, 아나콘다 - 잘됨

<4> 서비스 4- 독립형 질문 챗봇 - 스트리릿, 아나콘다 - 잘됨

<5> 서비스 5- 대화형 챗봇 - 스트리릿, 아나콘다 - 잘됨

<6> 서비스 6- 번역서비스 - 스트리릿, 아나콘다 - 잘됨 

<7> 서비스 7- 메일 작성기 - 스트리릿, 아나콘다 - 잘됨

<8> 서비스 8- CSV 파일 분석하기 - 아나콘다 - 잘됨

<9> 추가 서비스들




환경

스트림릿을 사용하기 위해서는 아나콘다 환경이어야 한다.

기본 라이브러리 설치하고, 제공하는. py 파일로 빠르게 실습해 보자.

다양한 서비스를 만들어보자



<1> 서비스 1- 간단한 챗봇 만들기 - 아나콘다 (실습) - 잘됨



1

산출물



2

아나콘다 설치하기


https://brunch.co.kr/@topasvga/4145




3

# ch.py로 제공하는 소스로 사용


소스에 있는 모델  없어짐.

모델 변경

gpt-4




4


#!/usr/bin/env python

# coding: utf-8

# In[1]:

#!pip install langchain

# In[2]:

#!pip install streamlit

# In[3]:

#!pip install openai

# In[4]:

import streamlit as st

from langchain.chat_models import ChatOpenAI

st.set_page_config(page_title="�� 뭐든지 질문하세요~ ")

st.title('�� 뭐든지 질문하세요~ ')

import os

os.environ["OPENAI_API_KEY"] = "sk-proj-EFtLRKL40qa2QijO-fMLWHM_1ENA06iDl86IA"  #openai 키 입력

def generate_response(input_text):  #llm이 답변 생성

    llm = ChatOpenAI(temperature=0,  # 창의성 0으로 설정 

                 model_name='gpt-4',  # 모델명

                )

    st.info(llm.predict(input_text))

with st.form('Question'):

    text = st.text_area('질문 입력:', 'What types of text models does OpenAI provide?') #첫 페이지가 실행될 때 보여줄 질문

    submitted = st.form_submit_button('보내기')

    generate_response(text)

# In[ ]:






서비스 1- 간단한 챗봇 만들기 -  아나콘다 - jupyter notebook (실습)- 잘됨.





1

# windows 10 pc에서

Anaconda Prompt  실행


jupyter notebook 사용

LLM으로 변경하자



2





3


!pip install langchain

!pip install streamlit

!pip install openai




4


실습

https://github.com/gilbutITbook/080413/blob/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5/5_1_%EA%B0%84%EB%8B%A8%ED%95%9C_%EC%B1%97%EB%B4%87_%EB%A7%8C%EB%93%A4%EA%B8%B0.ipynb




5

소스에 있는 모델  없어짐.

모델 변경

gpt-4




#!/usr/bin/env python

# coding: utf-8

# In[1]:

#!pip install langchain

# In[2]:

#!pip install streamlit

# In[3]:

#!pip install openai

# In[4]:

import streamlit as st

from langchain.chat_models import ChatOpenAI

st.set_page_config(page_title="�� 뭐든지 질문하세요~ ")

st.title('�� 뭐든지 질문하세요~ ')

import os

os.environ["OPENAI_API_KEY"] = "sk"  #openai 키 입력

def generate_response(input_text):  #llm이 답변 생성

    llm = ChatOpenAI(temperature=0,  # 창의성 0으로 설정 

                 model_name='gpt-4',  # 모델명

                )

    st.info(llm.predict(input_text))

with st.form('Question'):

    text = st.text_area('질문 입력:', 'What types of text models does OpenAI provide?') #첫 페이지가 실행될 때 보여줄 질문

    submitted = st.form_submit_button('보내기')

    generate_response(text)

# In[ ]:




6

c:\Users\seo\anaconda3\envs\llm\Scripts>streamlit run cha.py






<2> 서비스 2- RAG기반 챗봇 만들기 - 코랩 (실습)-잘됨



1

텍스트에 있는 내용을 벡터화하고, 내용을 참고해서 LLM에 질문하여 응답을 받는다.


답변




2


랭체인에서 RAG 구현 방법을 알아보자.


AI.txt 파일을 읽어서 벡터 데이터 베이스에 저장하자.

질문을 하면 벡터 데이터 베이스 내용을 참고해서 LLM에 질의하여 응답을 받는다.

AI.TXT 내용을 참고하는 것이다.


3

순서

4

상세

https://github.com/gilbutITbook/080413/blob/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5/5_2_%EB%9E%AD%EC%B2%B4%EC%9D%B8%EA%B3%BC_%EC%B1%97GPT%EB%A1%9C_RAG_%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0.ipynb



5

# 코랩 사용


https://colab.research.google.com/?hl=ko




6

# 여러 라이브러리 설치

!pip install unstructured


실행

ALT + ENTER



7

!pip install chromadb


!pip install openai



!pip install langchain-openai



8

#AI 파일을 코랩이 올리자



6

from langchain.document_loaders import TextLoader

documents = TextLoader("ai.txt").load()



9

from langchain.text_splitter import RecursiveCharacterTextSplitter


# 문서를 청크로 분할

def split_docs(documents,chunk_size=1000,chunk_overlap=20):

  text_splitter = RecursiveCharacterTextSplitter(chunk_size=chunk_size, chunk_overlap=chunk_overlap)

  docs = text_splitter.split_documents(documents)

  return docs


# docs 변수에 분할 문서를 저장

docs = split_docs(documents)




10

#OpenAI의 임베딩 모델 사용

from langchain_openai import OpenAIEmbeddings

api_key="sk-prfMLWHM_1ENA06iDl86IA"

embeddings = OpenAIEmbeddings(model="text-embedding-ada-002", api_key=api_key)


# Chromdb에 벡터 저장, 저장 장소는 코랩

from langchain.vectorstores import Chroma

db = Chroma.from_documents(docs, embeddings, persist_directory="/")


# Chromdb에 벡터 저장, 저장 장소는  코랩



11

from langchain.chat_models import ChatOpenAI

model_name = "gpt-3.5-turbo"  #GPT-3.5-turbo 모델 사용

llm = ChatOpenAI(model_name=model_name, api_key=api_key)


# Q&A 체인을 사용하여 쿼리에 대한 답변 얻기

from langchain.chains.question_answering import load_qa_chain

chain = load_qa_chain(llm, chain_type="stuff",verbose=True)


# 쿼리를 작성하고 유사성 검색을 수행하여 답변을 생성,따라서 txt에 있는 내용을 질의해야 합니다

query = "AI란?"

matching_docs = db.similarity_search(query)

answer =  chain.run(input_documents=matching_docs, question=query)

answer




12

답변


> Entering new StuffDocumentsChain chain... > Entering new LLMChain chain... Prompt after formatting: System: Use the following pieces of context to answer the user's question.  If you don't know the answer, just say that you don't know, don't try to make up an answer. ---------------- Artificial intelligence (AI) is the intelligence of machines or software, as opposed to :

:

:

optimization, formal logic, artificial neural networks, and methods based on statistics, operations research, and economics.[b] AI also draws upon psychology, linguistics, philosophy, neuroscience and other fields.[12] Human: AI란? > Finished chain. > Finished chain. 



AI(Artificial Intelligence)란 기계나 소프트웨어의 지능을 말합니다. 이는 인간이나 동물의 지능과는 다른 것을 의미하며, 컴퓨터 과학 분야에서 개발되고 연구되는 지능 기계들을 가리킵니다. AI 기술은 산업, 정부, 과학 분야에서 널리 사용되며, 구글 검색, YouTube, 아마존, 넷플릭스 등의 추천 시스템, 구글 어시스턴트, Siri, Alexa와 같은 음성 인식, Waymo와 같은 자율 주행 자동차, ChatGPT, AI art 등의 창의적인 도구, 체스와 바둑과 같은 전략 게임에서의 초인간적인 플레이와 분석 등 다양한 분야에서 사용되고 있습니다.






앞으로 돌아가기

https://brunch.co.kr/@topasvga/3864




<3> 서비스 3- PDF 요약 웹사이트 - 스트리릿, 아나콘다 - 잘됨



1

PDF파일을 요약해 주는 서비스.

웹페이지에 PDF를 올리면 요약해서 보여 준다.


2

# windows 10 pc에서

Anaconda Prompt  실행


jupyter notebook 사용

LLM으로 변경하자



3

# 제공하는. py 파일로 실행.



#!/usr/bin/env python

# coding: utf-8

# In[1]:

#!pip install langchain

# In[2]:

#!pip install streamlit

# In[3]:

#!pip install PyPDF2

# In[4]:

#!pip install langchain-openai

# In[5]:

import os

from PyPDF2 import PdfReader

import streamlit as st

from langchain.text_splitter import CharacterTextSplitter

from langchain_openai import OpenAIEmbeddings

from langchain import FAISS

from langchain.chains.question_answering import load_qa_chain

from langchain.chat_models import ChatOpenAI

from langchain.callbacks import get_openai_callback

api_key="sk-projfMLWHM_1ENA06iDl86IA"

def process_text(text): 

#CharacterTextSplitter를 사용하여 텍스트를 청크로 분할

    text_splitter = CharacterTextSplitter(

        separator="\n",

        chunk_size=1000,

        chunk_overlap=200,

        length_function=len

    )

    chunks = text_splitter.split_text(text)

    #임베딩 처리(벡터 변환), 임베딩은 OpenAI 모델을 사용합니다.

    embeddings = OpenAIEmbeddings(model="text-embedding-ada-002", api_key=api_key)

    documents = FAISS.from_texts(chunks, embeddings)

    return documents

def main():  #streamlit을 이용한 웹사이트 생성

    st.title("�PDF 요약하기")

    st.divider()

    pdf = st.file_uploader('PDF파일을 업로드해주세요', type='pdf')

    if pdf is not None:

        pdf_reader = PdfReader(pdf)

        text = ""   # 텍스트 변수에 PDF 내용을 저장

        for page in pdf_reader.pages:

            text += page.extract_text()

        documents = process_text(text)

        query = "업로드된 PDF 파일의 내용을 약 3~5 문장으로 요약해 주세요."  # LLM에 PDF파일 요약 요청

        if query:

            docs = documents.similarity_search(query)

            llm = ChatOpenAI(model="gpt-3.5-turbo-16k", api_key=api_key, temperature=0.1)

            chain = load_qa_chain(llm, chain_type='stuff')

            with get_openai_callback() as cost:

                response = chain.run(input_documents=docs, question=query)

                print(cost)

            st.subheader('--요약 결과--:')

            st.write(response)

if __name__ == '__main__':

    main()

# In[ ]:



https://github.com/gilbutITbook/080413/tree/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5



3

아나콘다 프롬프트 실행


4

기본 라이블러리 설치

py 소스 파일 실행




2

# 쥬피터 노트북에서 안됨.


에러 내용


ModuleNotFoundError                       Traceback (most recent call last) Cell In[15], line 2       1 import os ----> 2 from PyPDF2 import PdfReader       3 import streamlit as st       4 from langchain.text_splitter import CharacterTextSplitter ModuleNotFoundError: No module named 'PyPDF2'








<4> 서비스4- 독립형 질문 챗봇 - 스트림릿,아나콘다 - 잘됨



1

내가 가진 PDF로 RAG 구성

RAG는 질문을 받으면 내가가진 PDF내용을 찾아보고 질문과 찾은 결과를 LLM에 제공하여 답변을 얻는다.

PDF 문서를 가져와 텍스트를 추춘하고 청크로 분할한다.

분할된 청크는 임베딩처리하고 파스(FAISS)에 저장




# 하나의 질문에만 답하는 예제이다.



2

아나콘다 프롬프트

쥬피터 노트 사용

기본 OPENAI APIKEY 입력

도스창에서 제공하는  pdf.py 실행



3


https://github.com/gilbutITbook/080413/tree/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5




<5> 서비스5- 대화형 챗봇 - 스트림릿,아나콘다 - 잘됨



1

대화형 챗봇을 만들어 보자.

가진 데이터를 활용한 챗봇

PDF파일 업로드 사용

PDF 안의 내용을 물어보면 답을 준다.




2

https://brunch.co.kr/@topasvga/4145



3

!pip install streamlit-chat



4

!pip install streamlit



5

!pip install langchain


6

!pip install faiss-cpu



7

import streamlit as st

from streamlit_chat import message

from langchain.embeddings.openai import OpenAIEmbeddings

from langchain.chat_models import ChatOpenAI

from langchain.chains import ConversationalRetrievalChain

from langchain.vectorstores import FAISS

import tempfile

from langchain.document_loaders import PyPDFLoader


import os

os.environ["OPENAI_API_KEY"] = "sk-proj-jO-fMLWHM_1ENA06iDl86IA" #openai 키 입력


uploaded_file = st.sidebar.file_uploader("upload", type="pdf")




8

if uploaded_file :

    with tempfile.NamedTemporaryFile(delete=False) as tmp_file:

        tmp_file.write(uploaded_file.getvalue())

        tmp_file_path = tmp_file.name    

    loader = PyPDFLoader(tmp_file_path)

    data = loader.load()


    embeddings = OpenAIEmbeddings()

    vectors = FAISS.from_documents(data, embeddings)


    chain = ConversationalRetrievalChain.from_llm(llm = ChatOpenAI(temperature=0.0,model_name='gpt-4'), retriever=vectors.as_retriever())


    def conversational_chat(query):  #문맥 유지를 위해 과거 대화 저장 이력에 대한 처리      

        result = chain({"question": query, "chat_history": st.session_state['history']})

        st.session_state['history'].append((query, result["answer"]))        

        return result["answer"]    

    if 'history' not in st.session_state:

        st.session_state['history'] = []


    if 'generated' not in st.session_state:

        st.session_state['generated'] = ["안녕하세요! " + uploaded_file.name + "에 관해 질문주세요."]


    if 'past' not in st.session_state:

        st.session_state['past'] = ["안녕하세요!"]        

    #챗봇 이력에 대한 컨테이너

    response_container = st.container()

    #사용자가 입력한 문장에 대한 컨테이너

    container = st.container()


    with container: #대화 내용 저장(기억)

        with st.form(key='Conv_Question', clear_on_submit=True):           

            user_input = st.text_input("Query:", placeholder="PDF파일에 대해 얘기해볼까요? (:", key='input')

            submit_button = st.form_submit_button(label='Send')            

        if submit_button and user_input:

            output = conversational_chat(user_input)            

            st.session_state['past'].append(user_input)

            st.session_state['generated'].append(output)


    if st.session_state['generated']:

        with response_container:

            for i in range(len(st.session_state['generated'])):

                message(st.session_state["past"][i], is_user=True, key=str(i) + '_user', avatar_style = "fun-emoji", seed = "Nala")

                message(st.session_state["generated"][i], key=str(i), avatar_style = "bottts", seed = "Fluffy")



9

!pip install pypdf



!pip install tiktoken






10

# 쥬피터 노트에서 라이블러리들 설치 후 제공되는 py 파일을 실행시키면 동작한다.

c:\Users\seo\anaconda3\envs\llm\Scripts>streamlit run co.py




11

#  라이블러리들 설치 하지 않고 실행하면 아래처럼 모듈이 없다고 나온다.


ModuleNotFoundError: No module named 'streamlit_chat'

Traceback:  

File "C:\Users\seo\anaconda3\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 534, in _run_script     exec(code, module.__dict__)


File "C:\0ai\co.py", line 32, in <module>     from streamlit_chat import message





<6> 서비스6- 번역서비스 - 스트림릿,아나콘다 - 잘됨



1

번역 서비스?

번역을 원하는 텍스트를 입력한다.

번역을 원하는 언어를 선택 > 번역 클릭

번역된다.

https://github.com/gilbutITbook/080413/blob/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5/5_6_%EB%B2%88%EC%97%AD_%EC%84%9C%EB%B9%84%EC%8A%A4_%EB%A7%8C%EB%93%A4%EA%B8%B0.ipynb



2

https://brunch.co.kr/@topasvga/4145



#windows 에서 

아나콘다 프롬프트 실행



3

주피터 노트북 실행



4

llm 지정



5

# 라이블러리들 설치


!pip install langchain


!pip install langchain_community



6

!pip install streamlit



7

!pip install openai



8

import streamlit as st

from langchain.chat_models import ChatOpenAI

from langchain.prompts import PromptTemplate

from langchain.chains import LLMChain

from langchain.memory import ConversationBufferMemory

import os

os.environ["OPENAI_API_KEY"] = "sk" #openai 키 입력




# 제공되는 py 소스 파일로 실행하면 잘된다.




9

# 웹페이지에 보여질 내용

langs = ["Korean", "Japanese", "chinese", "English"]  #번역을 할 언어를 나열

left_co, cent_co,last_co = st.columns(3)


#웹페이지 왼쪽에 언어를 선택할 수 있는 라디오 버튼 

with st.sidebar:

     language = st.radio('번역을 원하는 언어를 선택해주세요.:', langs)


st.markdown('### 언어 번역 서비스예요~')

prompt = st.text_input('번역을 원하는 텍스트를 입력하세요')  #사용자의 텍스트 입력


trans_template = PromptTemplate(

    input_variables=['trans'],

    template='Your task is to translate this text to ' + language + 'TEXT: {trans}'

)  #해당 서비스가 번역에 대한 것임을 지시


#momory는 텍스트 저장 용도

memory = ConversationBufferMemory(input_key='trans', memory_key='chat_history')


llm = ChatOpenAI(temperature=0.0,model_name='gpt-4')

trans_chain = LLMChain(llm=llm, prompt=trans_template, verbose=True, output_key='translate', memory=memory)


# 프롬프트(trans_template)가 있으면 이를 처리하고 화면에 응답을 작성

if st.button("번역"):

    if prompt:

        response = trans_chain({'trans': prompt})

        st.info(response['translate'])





10

#  쥬피터 노트북에서 라이블러리들 설치 하지 않고 실행하면 아래처럼 모듈이 없다고 나온다.



오류 내용 ?


2024-11-13 17:02:42.901 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode. C:\Users\seo\AppData\Local\Temp\ipykernel_1040\496781053.py:20: LangChainDeprecationWarning: The class `ChatOpenAI` was deprecated in LangChain 0.0.10 and will be removed in 1.0. An updated version of the class exists in the langchain-openai package and should be used instead. To use it run `pip install -U langchain-openai` and import as `from langchain_openai import ChatOpenAI`.   llm = ChatOpenAI(temperature=0.0,model_name='gpt-4') C:\Users\seo\AppData\Local\Temp\ipykernel_1040\496781053.py:21: LangChainDeprecationWarning: The class `LLMChain` was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use RunnableSequence, e.g., `prompt | llm` instead.   trans_chain = LLMChain(llm=llm, prompt=trans_template, verbose=True, output_key='translate', memory=memory) 2024-11-13 17:02:45.603 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode. 2024-11-13 17:02:45.604 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode. 2024-11-13 17:02:45.606 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode. 2024-11-13 17:02:45.608 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode. 2024-11-13 17:02:45.609 Thread 'MainThread': missing ScriptRunContext! This warning can be ignored when running in bare mode.



11

#  쥬피터 노트북에서 라이블러리들 설치 하지 않고 실행하면 아래처럼 모듈이 없다고 나온다.


번역 서비스 py 파일 실행 오류 





<7> 서비스7- 메일 작성기 - 스트림릿,아나콘다 - 잘됨




1

메일 작성서비스 ?

모임이 있어요 입력

[예제를 보여 주세요] 버튼을 클릭하면 이메일을 작성해주는 서비스를 만들자.

https://github.com/gilbutITbook/080413/blob/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5/5_7_%EB%A9%94%EC%9D%BC_%EC%9E%91%EC%84%B1%EA%B8%B0_%EB%A7%8C%EB%93%A4%EA%B8%B0.ipynb



2

아나콘다 프롬프트



3

!pip install streamlit

!pip install langchain

!pip install openai



4

import streamlit as st

import os

os.environ["OPENAI_API_KEY"] = "sk-proj-fMLWHM_1ENA06iDl86IA" #openai 키 입력


st.set_page_config(page_title="이메일 작성 서비스예요~", page_icon=":robot:")

st.header("이메일 작성기")



5

def getEmail():

    input_text = st.text_area(label="메일 입력", label_visibility='collapsed',

                              placeholder="당신의 메일은...", key="input_text")

    return input_text


input_text = getEmail()



6

# 이메일 변환 작업을 위한 템플릿 정의

query_template = """

    메일을 작성해주세요.    

    아래는 이메일입니다:

    이메일: {email}

"""


7

from langchain import PromptTemplate

# PromptTemplate 인스턴스 생성

prompt = PromptTemplate(

    input_variables=["email"],

    template=query_template,

)



8

from langchain.chat_models import ChatOpenAI

# 언어 모델을 호출합니다

def loadLanguageModel():

    llm = ChatOpenAI(temperature=0.0,model_name='gpt-4')

    return llm



9

# 예시 이메일을 표시

st.button("*예제를 보여주세요*", type='secondary', help="봇이 작성한 메일을 확인해보세요.")

st.markdown("### 봇이 작성한 메일은:")


if input_text:

    llm = loadLanguageModel()

    # PromptTemplate 및 언어 모델을 사용하여 이메일 형식을 지정

    prompt_with_email = prompt.format(email=input_text)

    formatted_email = llm.predict(prompt_with_email)

    # 서식이 지정된 이메일 표시

    st.write(formatted_email)



# 반응이 없다. 정상.



10

# 주피터 노트에서  .py 확장자료 다운 받자.  = File > Save and Export Notebook > Executable Scropt 선택



11

도스창에서

streamlit run em.py 

실행하자.




11

오류?


#  제공하는 email.py에서 get_ipy 부분 삭제 - 불필요하게 들어가 있음.






<8> 서비스8- CSV 파일 분석하기 - 아나콘다 - 잘됨





CSV 파일(Excel)파일을 읽고 , 원하는 것을 묻고 답변을 받는 서비스



1

가상환경 하나 추가로 만들자

판다스 사용하려 한다. = 파이썬 3.9 이상에서 동작한다.


2

Windows에서 아나콘다 프롬프트 실행



3

conda create -n llm2 python=3.9

activate llm2

pip install ipykernel

python -m ipykernel install --user --name llm39 --display-name "llm39"

jupyter notebook



4

NEW > llm39 선택하여 사용



5

# 라이브러리 설치하자.

# langchain-experimental 는 판다스 사용을 위해 필요하다.



!pip install langchain-experimental

!pip install tabulate

!pip install pandas

!pip install openai



6

# CSV 파일을  C:/data 폴더에 넣어두자.

CSV파일의 형식은 다음과 같다.





import pandas as pd #파이썬 언어로 작성된 데이터를 분석 및 조작하기 위한 라이브러리


#csv 파일을 데이터프레임으로 가져오기

df = pd.read_csv('c:/data/booksv_02.csv') #booksv_02.csv 파일이 위치한 경로 지정

df.head()




7

from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent

from langchain.chat_models import ChatOpenAI

from langchain.agents.agent_types import AgentType

import os

os.environ["OPENAI_API_KEY"] = "sk-proj-febmAeqQRjKvXZvNA06iDl86IA" #openai 키 입력


#에이전트 생성

agent = create_pandas_dataframe_agent(

    ChatOpenAI(temperature=0, model='gpt-4o'),  #gpt-3.5-turbo 사용

    df,             #데이터가 담긴 곳

    verbose=False,  #추론 과정을 출력하지 않음

    agent_type=AgentType.OPENAI_FUNCTIONS, 

    allow_dangerous_code=True,

)




8

결과 확인 ?


# 카운트 높은것에 대해 문의

# 가장 최근 출간된 책 문의




9

소스 모음


스트림릿을 사용하기 위해서는 아나콘다 환경이여야 한다.

기본 라이블러리 설치하고, 제공하는 .py 파일로 빠르게 실습해보자.



다양한 서비스를 만들어보자

https://github.com/gilbutITbook/080413/tree/main/%EC%8B%A4%EC%8A%B5/5%EC%9E%A5





<9> 추가 서비스들


1

고객센터 상담원 사용 메뉴얼 제공 서비스 ?


기존 상담원에서 바뀐 화장품에 대한 추가 교육

신규 입사한 상담원에게 이전 버전과 바뀐 버전에 대한 교육필요로 비용,시간 부담 가중

LLM을 이용해 스크립트 생성


동작)

xx 상품에 대해 이전 버전과 비교 설명해줘?


화장품 DB에서 검색

검색 결과 반환

질문 +검색 결과 반환 로 LLM에 문의

스크립트 생성

상담원이 스크립트 보고 답변함.



2

상품 추천 ?


동작)

최근 유행하는 청바지는? 묻는다.

검색 엔진을 통해 가장 많이 팔린 청바지 확인.

최근 유행하는 청바지 + 검색 엔진을 통해 가장 많이 팔린 청바지 확인. 으로 질문

LLM이 답변한다.



3

보험 가입 신청 검토 ?


보험료, 가입 조건을 결정해 계약의 승낙/거절 여부를 판단.


동작)

보험 가입 여부 질의 - 사용자 정보 확인 (질병여부, 최근 3년내 보험금 지급내역 등)- 질문 + 검색결과 - 가입?





다음

https://brunch.co.kr/@topasvga/3865


keyword
매거진의 이전글 AI 1탄- 실습환경 - Windows PC에 아나콘다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari