brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jun 24. 2024

AI 1탄-2-2. 챗GPT, RAG이용해 챗봇 서비스

나만의 챗GPT 만들기-2/5

자체 데이터,매뉴얼을 학습시킨 챗봇을 만들어보자.

학습시킨 매뉴얼 기준으로 답변 생성

매뉴얼을 벡터화 

챗GPT에 질문하고, 매뉴얼 기준으로 답변을 요청

VS Code 터미널 사용




<1> 대량 데이터 학습하는 RAG 이해

<2> 서비스1-나만의 데이터로 학습한 채팅봇 만들기 (실습)

<3> 서비스2-음성 데이터 요약 서비스 만들기 (실습)





<1> 대량 데이터 학습하는 RAG 이해


1

RAG는 미리 텍스트를 데이터베이스로 준비. 

사용자가 입력하면 그 입력 내용을 참고로 데이터베이스에서 검색해 추가함으로 좀 더 정확한 답변을 준다.

질문 + 검색한 내용을 LLM에서 질문하여 답변을 받는다.



2

동작 순서?

정보 저장 = 데이터를 벡터화한다.

질문한다.


3

동작 순서?





<2> 서비스1-나만의 데이터로 학습한 채팅봇 만들기 (실습)


텍스트 데이터를 CSV로 변경, 임베딩, 벡터 데이터화 (실습)



1

# C: 드라이브에 1work  디렉토리 만들기

1work 폴더에 실습 예제 복사



2

# VScode 실행


File > Open Folder

Terminal > NEW Terminal



3

4장

나만의 데이터로 학습한 채팅봇 만들기


https://github.com/ychoi-kr/ChatGPT-API-Python/blob/main/ch4/text_to_csv_converter.py




4

# 텍스트 파일을 만들자.  


매뉴얼 

data.txt  


노을 캠핑장 이용법에 대해 적어보자~


예)

1. 노을 캠핑장 예약 방법

인터파트 사이트에서 한다.


2. 체크인과 체크 아웃시간

체크인은 방문자 센터에가서 신분증을 제시해야 한다.

체크 아웃은 2시이후에 한다.


3.wi-fi

wi-fi는 안된다.


4. 주차장

전용 주차장이 있다.







5.

# 텍스트 데이터를 CSV 파일로 만들어 사용하자.

# 제목과 내용이 있는것은 csv파일이 좋다.

# text_to_csv_converter.py 사용

# 필요한 라이블러리 설치, 판다스



pip install pandas


python text_to_csv_converter.py






scaped.csv 파일이 생긴다.



6

# 학습 데이터를 임베딩 하자

# text_embedding.py 파일

# VSCODE로  text_embedding.py 파일에 키 추가


import os

os.environ["OPENAI_API_KEY"] = "sk-proj-gmLnswflnrO"

from openai import OpenAI

client = OpenAI()


https://platform.openai.com/docs/overview



7

# python text_embedding.py 실행하기

# 필요한 라이블러리 설치



pip install tiktoken matplotlib plotly scipy scikit-learn


python text_embedding.py


embedding.csv  파일이 생성됨



8

embedding 된   embedding.csv 파일을 열어 본다.





9

# app.py 에  OPENAI API 키 추가.

# app.py 실행 , 터미널에서 실행한다.

# 사용자의 입력을 받아 답변을 출현한다.



import os

os.environ["OPENAI_API_KEY"] = "sk-proj-zSVwdEF4A"

from openai import OpenAI

client = OpenAI()



PS C:\1work\ChatGPT-API-Python-main\ch4> python .\app.py

질문을 입력하세요



10

# 질문한다.

노을 캠핑장 예약법 알려주세요

ChatGPT: 노을 캠핑장 예약을 원하신다면, 노을 캠핑장의 공식 웹사이트나 전화로 예약을 진행하실 수 있습니다. 원하시는 날짜와 숙박 인원을 알려주시면 예약을 도와드리겠습니다. 감사합니다.



11

# exit 로 나간다.



12

# 주어진 지식을 바탕으로 응답하는 프로그램 , search.py

# api 키 추가


import os

os.environ["OPENAI_API_KEY"] = "sk-proj-zSVwdEF4A"

from openai import OpenAI

client = OpenAI()



13

# app.py 수정, 실행


PS C:\1work\ChatGPT-API-Python-main\ch4> python .\app.py        

질문을 입력하세요

주차장 있나요?

ChatGPT: 네, 당 호텔은 180대의 무료 주차장을 제공하고 있습니다. 주차장은 호텔 건물 근처에 위치해 있으며, 이용 방법은 무료로 이용 가능하며 선착순입니다. 주차장은 24시간 개방되어 있습니다. 만약 추가적인 

질문이 있으시면 언제든지 문의해 주세요.

농구 규칙

ChatGPT: 모르겠습니다. 호텔에서는 주로 숙박 및 투숙 서비스에 관련된 정보를 안내해 드리고 있습니다. 농구 규칙에 대한 자세한 정보를 찾고자 한다면, 관련 농구 단체나 스포츠 시설에서 문의해 보시거나 온라인

에서 규칙을 검색하실 수 있습니다. 다른 도움이 필요하시면 언제든지 저희에게 질문해 주세요.

체크인 시간 알려줘

ChatGPT: 체크인 시간은 오후 3시입니다. 만약 일찍 체크인을 원하시거나 늦게 체크인을 하실 계획이 있으시다면 미리 호텔로 연락 주시면 객실의 상태를 확인하여 최대한 도와드리겠습니다. 필요하시다면 짐을 보관

해드릴 수 있습니다. 부수적인 질문이 있으시면 언제든지 문의해 주세요. 이용해 주셔서 감사합니다.






<3> 서비스2-음성 데이터 요약 서비스 만들기 (실습)




5장

음성 데이터 요약~


https://github.com/ychoi-kr/ChatGPT-API-Python/tree/main/ch5




6장

최신 정보를 포함한 뉴스 기사 만들기


https://github.com/ychoi-kr/ChatGPT-API-Python/tree/main/ch6




다음

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



매거진의 이전글 AI 1탄-2-1. 나만의 챗GPT 만들기-개발환경
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari