Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- inxos
- 오픈소스
- Enhanced Input System
- 마인크래프트뮤지컬
- Bootstrap4
- 프메
- nixos한글키보드
- Jinja2
- flask
- 정글사관학교
- 디자드
- 지우개신공 #pc자기진단 #ram미인식 #컴퓨터고장해결 #램인식불량 #pc자가수리 #컴퓨터고장해결 #조립pc
- 으
- JWT
- pandas
- 알고풀자
- 언리얼뮤지컬
- 메모리인식불량
- 미니프로젝트
- EnhancedInput
- 파이썬서버
- nixos한글설정\
- 스트림릿
- Express
- 판다스
- 블랙스크린복구
- ossca
- streamlit
- VUE
- R
Archives
- Today
- Total
Today, I will
[Rag, OpenAI] 웹로더 기반 크롤링 챗봇 구축하기 (LangChain + OpenAI + Streamlit) 본문
Computer Science/인공지능,딥러닝
[Rag, OpenAI] 웹로더 기반 크롤링 챗봇 구축하기 (LangChain + OpenAI + Streamlit)
Lv.Forest 2025. 4. 30. 20:50
웹링크와 GPT와 LangChain을 활용해 RAG 기반 대화형 챗봇을 만들어보았습니다.
웹링크를 통해 간단해 웹 단면을 크롤링하고 그에 대한 정보에 대해 물어볼 수 있어 유용합니다.
맛집정보 웹사이트인 http://www.menupan.com/
를 활용해보도록 합니다.
📁 1. 주피터 노트북 준비
!pip install beautifulsoup4
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
from langchain_community.document_loaders import WebBaseLoader
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter, TextSplitter
from langchain.chains import RetrievalQA, ConversationalRetrievalChain
import os
os.environ["USER_AGENT"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) LangChainBot/1.0"
url = 'http://www.menupan.com/'
loader =WebBaseLoader(url )
documents = loader.load()
print( documents)
여러 링크를 찾아보고 싶다면...
urls = ['http://www.menupan.com/', 'https://www.menupan.com/restaurant/bestrest/bestrest.asp','https://www.menupan.com/Restaurant/theme/theme_main.asp']
webloader = WebBaseLoader(urls)
documents = webloader.load()
print(documents)
def clean_newlines(text):
return ' '.join(text.split())
for doc in documents:
doc.page_content = clean_newlines(doc.page_content)
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
docs = splitter.split_documents(documents)
embedding = OpenAIEmbeddings(model="text-embedding-ada-002")
vector_db = FAISS.from_documents(docs, embedding)
gpt = ChatOpenAI(model='gpt-4o-mini', temperature=-0)
retriever = vector_db.as_retriever()
qa = RetrievalQA.from_chain_type( llm=gpt, chain_type='stuff',
retriever=retriever )
query = "문서 내용 요약해 줄래?"
result = qa.invoke( {'query': query})
print( result['result'] )
이 문서는 다양한 맛집 정보를 제공하는 사이트인 메뉴판닷컴에 대한 내용입니다. 일본 라멘, 감자탕, 함박스테이크 등 여러 종류의 맛집을 소개하며, 가족과 함께 가기 좋은 장소와 혼자서도 방문하기 좋은 식당을 추천합니다. 또한, 지역별 맛집 검색, 예약 서비스, 실시간 인기 맛집, 추천 후기, 요리 레시피 등 다양한 기능을 제공하고 있습니다. 고객센터와 개인정보 처리 방침 등의 정보도 포함되어 있습니다.
'Computer Science > 인공지능,딥러닝' 카테고리의 다른 글
RAG 기반 Chat PDF 챗봇 만들기 | LangChain, Cohere, OpenAI API로 나만의 문서 질문 시스템 만들기 (1) | 2025.05.01 |
---|---|
[Rag, OpenAI] RAG 기반 피터래빗이야기 챗봇 구축하기 (LangChain + OpenAI + Streamlit) (0) | 2025.04.30 |
[Rag, OpenAI] RAG 기반 오만과 편견 챗봇 구축하기 (LangChain + OpenAI + Streamlit) (0) | 2025.04.30 |
Naive RAG, 라마인덱스 간단 구성 (0) | 2025.04.28 |
[streamlit] 스트림릿 기초 ui부터 텍스트 및 이미지 서버 저장, Pandas를 통한 디비 시각화까지 다양한 실습 예제 (0) | 2025.04.16 |