찾다
백엔드 개발파이썬 튜토리얼나만의 AI RAG 챗봇 만들기: LangChain을 사용한 Python 가이드

문서에서 즉각적인 답변을 원하지 않는 사람이 어디 있겠습니까? 이것이 바로 RAG 챗봇이 하는 일입니다. 빠르고 정확한 응답을 위해 검색과 AI 생성을 결합합니다!

이 가이드에서는 LangChainStreamlit과 함께 RAG(Retrieval-Augmented Generation)를 사용하여 챗봇을 만드는 방법을 보여 드리겠습니다. 이 챗봇은 지식 기반에서 관련 정보를 가져오고 언어 모델을 사용하여 응답을 생성합니다.

OpenAI, Gemini, Fireworks 중 무엇을 사용하든 응답 생성을 위한 다양한 옵션을 제공하면서 각 단계를 안내해 드립니다. 비용 효율적인 솔루션입니다.

검색 증강 생성(RAG)이란 무엇입니까?

RAG검색세대를 결합하여 보다 정확하고 상황에 맞는 챗봇 응답을 제공하는 방법입니다. 검색 프로세스는 지식 기반에서 관련 문서를 가져오는 반면, 생성 프로세스는 언어 모델을 사용하여 검색된 콘텐츠를 기반으로 일관된 응답을 생성합니다. 이를 통해 언어 모델 자체가 해당 정보에 대해 특별히 교육받지 않은 경우에도 챗봇이 최신 데이터를 사용하여 질문에 답할 수 있습니다.

귀하의 질문에 대한 답을 항상 알지 못하는 개인 비서가 있다고 상상해 보십시오. 그래서 질문을 하면 책을 뒤져 관련 정보를 찾아보고(검색), 그 정보를 요약해서 자신의 말로 다시 알려준다(세대). 이것이 본질적으로 두 가지 장점을 결합한 RAG의 작동 방식입니다.

순서도에서 RAG 프로세스는 다음과 같습니다.

Create Your Own AI RAG Chatbot: A Python Guide with LangChain

이제 시작해 보세요. 나만의 챗봇을 만들어보세요!


프로젝트 환경 설정

이 TUTO에서는 주로 Python을 사용할 것입니다. JS 헤드라면 설명을 따르고 langchain js의 문서를 살펴볼 수 있습니다.

먼저 프로젝트 환경을 설정해야 합니다. 여기에는 프로젝트 디렉토리 생성, 종속성 설치, 다양한 언어 모델에 대한 API 키 설정이 포함됩니다.

1. 프로젝트 폴더 및 가상 환경 생성

프로젝트 폴더와 가상 환경을 만드는 것부터 시작하세요.

mkdir rag-chatbot
cd rag-chatbot
python -m venv venv
source venv/bin/activate

2. 종속성 설치

다음으로 필요한 모든 종속성을 나열하는 요구 사항.txt 파일을 만듭니다.

langchain==0.0.329
streamlit==1.27.2
faiss-cpu==1.7.4
python-dotenv==1.0.0
tiktoken==0.5.1
openai==0.27.10
gemini==0.3.1
fireworks==0.4.0
sentence_transformers==2.2.2

이제 다음 종속 항목을 설치하세요.

pip install -r requirements.txt

3. API 키 설정

챗봇의 응답 생성을 위해 OpenAI, Gemini 또는 Fireworks를 사용할 예정입니다. 귀하의 선호도에 따라 이들 중 하나를 선택할 수 있습니다.

실험 중이라면 걱정하지 마세요. Fireworks는 1달러 상당의 API 키를 무료로 제공하며, gemini-1.5-flash 모델도 어느 정도 무료입니다!

원하는 모델의 API 키를 저장할 .env 파일을 설정하세요.

mkdir rag-chatbot
cd rag-chatbot
python -m venv venv
source venv/bin/activate

이러한 서비스에 가입하고 API 키를 받으세요. GeminiFireworks는 모두 무료 등급을 제공하는 반면, OpenAI는 사용량에 따라 요금을 부과합니다.


문서 처리 및 청킹

챗봇에 컨텍스트를 제공하려면 문서를 처리하고 관리 가능한 덩어리로 분할해야 합니다. 삽입 및 색인화를 위해 큰 텍스트를 분할해야 하기 때문에 이는 중요합니다.

1. document_processor.py 생성

문서 처리를 처리하기 위해 document_processor.py라는 새 Python 스크립트를 만듭니다.

langchain==0.0.329
streamlit==1.27.2
faiss-cpu==1.7.4
python-dotenv==1.0.0
tiktoken==0.5.1
openai==0.27.10
gemini==0.3.1
fireworks==0.4.0
sentence_transformers==2.2.2

이 스크립트는 텍스트 파일을 로드하고 청크 간에 컨텍스트가 손실되지 않도록 약간의 겹치는 부분을 포함하여 약 1000자의 작은 청크로 분할합니다. 처리가 완료되면 문서를 삽입하고 색인화할 수 있습니다.


임베딩 및 인덱싱 생성

이제 문서를 청크화했으므로 다음 단계는 이를 임베딩(텍스트의 숫자 표현)으로 변환하고 빠른 검색을 위해 색인을 생성하는 것입니다. (기계는 말보다 숫자를 더 쉽게 이해하기 때문이죠)

1. embedding_indexer.py 생성

embedding_indexer.py라는 또 다른 스크립트를 만듭니다.

pip install -r requirements.txt

이 스크립트에서는 포옹 얼굴 모델(all-MiniLM-L6-v2)을 사용하여 임베딩을 생성합니다. 그런 다음 이러한 임베딩을 FAISS 벡터 저장소에 저장하여 쿼리를 기반으로 유사한 텍스트 청크를 빠르게 검색할 수 있습니다.


검색 및 응답 생성 구현

여기서 흥미로운 부분이 나옵니다. 검색과 언어 생성을 결합하는 것입니다! 이제 벡터 저장소에서 관련 청크를 가져오고 언어 모델을 사용하여 응답을 생성하는 RAG 체인을 만듭니다. (벡터스토어는 숫자로 변환된 데이터를 벡터로 저장한 데이터베이스입니다)

1. rag_chain.py 생성

rag_chain.py 파일을 생성해 보겠습니다:

# Uncomment your API key
# OPENAI_API_KEY=your_openai_api_key_here
# GEMINI_API_KEY=your_gemini_api_key_here
# FIREWORKS_API_KEY=your_fireworks_api_key_here

여기에서는 귀하가 제공한 API 키에 따라 OpenAI, Gemini 또는 Fireworks 중에서 선택할 수 있습니다. RAG 체인은 가장 관련성이 높은 상위 3개 문서를 검색하고 언어 모델을 사용하여 응답을 생성합니다.

예산이나 사용 환경에 따라 모델을 전환할 수 있습니다. GeminiFireworks는 무료이고, OpenAI는 사용량에 따라 요금이 부과됩니다.


챗봇 인터페이스 구축

이제 RAG 체인을 사용하여 사용자 입력을 받고 응답을 생성하는 간단한 챗봇 인터페이스를 구축하겠습니다.

1. chatbot.py 만들기

chatbot.py라는 새 파일을 만듭니다.

mkdir rag-chatbot
cd rag-chatbot
python -m venv venv
source venv/bin/activate

이 스크립트는 사용자 입력을 지속적으로 수신하고 이를 RAG 체인을 통해 처리한 후 생성된 응답을 반환하는 명령줄 챗봇 인터페이스를 생성합니다.


Streamlit UI 만들기

이제 Streamlit을 사용하여 웹 인터페이스를 구축하여 챗봇을 더욱 사용자 친화적으로 만들 차례입니다. 이를 통해 사용자는 브라우저를 통해 챗봇과 상호 작용할 수 있습니다.

1. app.py 생성

app.py 만들기:

langchain==0.0.329
streamlit==1.27.2
faiss-cpu==1.7.4
python-dotenv==1.0.0
tiktoken==0.5.1
openai==0.27.10
gemini==0.3.1
fireworks==0.4.0
sentence_transformers==2.2.2

2. Streamlit 앱 실행

Streamlit 앱을 실행하려면 다음을 사용하세요.

pip install -r requirements.txt

텍스트 파일을 업로드하고, 질문하고, 챗봇으로부터 답변을 받을 수 있는 웹 인터페이스가 실행됩니다.


성능 최적화

더 나은 성능을 위해 텍스트를 분할할 때 청크 크기와 겹침을 실험해 볼 수 있습니다. 청크가 클수록 더 많은 컨텍스트를 제공하지만 청크가 작을수록 검색 속도가 빨라질 수 있습니다. 스트림라이트 캐싱을 사용하면 임베딩 생성과 같은 비용이 많이 드는 작업을 반복하지 않아도 됩니다.

비용을 최적화하려면 쿼리 복잡성에 따라 OpenAI, Gemini 또는 Fireworks 간에 전환할 수 있습니다. OpenAI 복잡한 질문에는 Gemini 또는 불꽃놀이를 사용하여 비용을 절감하세요.


마무리

축하합니다! 자신만의 RAG 기반 챗봇을 성공적으로 만들었습니다. 이제 가능성은 무궁무진합니다.

    나만의 맞춤형 스터디 파트너를 만들어보세요.
  • 더 이상 긴 문서를 작성할 필요가 없습니다. "RAG it out"만 하면 빠르고 정확한 답변을 얻을 수 있습니다!
여기서 여행이 시작되며 잠재력은 무한합니다!


GitHub에서 내 작업을 팔로우할 수 있습니다. 언제든지 연락주세요. 제 DM은 X와 LinkedIn에서 항상 열려있습니다.

위 내용은 나만의 AI RAG 챗봇 만들기: LangChain을 사용한 Python 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
파이썬과 시간 : 공부 시간을 최대한 활용파이썬과 시간 : 공부 시간을 최대한 활용Apr 14, 2025 am 12:02 AM

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

파이썬 : 게임, Guis 등파이썬 : 게임, Guis 등Apr 13, 2025 am 12:14 AM

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

Python vs. C : 응용 및 사용 사례가 비교되었습니다Python vs. C : 응용 및 사용 사례가 비교되었습니다Apr 12, 2025 am 12:01 AM

Python은 데이터 과학, 웹 개발 및 자동화 작업에 적합한 반면 C는 시스템 프로그래밍, 게임 개발 및 임베디드 시스템에 적합합니다. Python은 단순성과 강력한 생태계로 유명하며 C는 고성능 및 기본 제어 기능으로 유명합니다.

2 시간의 파이썬 계획 : 현실적인 접근2 시간의 파이썬 계획 : 현실적인 접근Apr 11, 2025 am 12:04 AM

2 시간 이내에 Python의 기본 프로그래밍 개념과 기술을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우기, 2. 마스터 제어 흐름 (조건부 명세서 및 루프), 3. 기능의 정의 및 사용을 이해하십시오. 4. 간단한 예제 및 코드 스 니펫을 통해 Python 프로그래밍을 신속하게 시작하십시오.

파이썬 : 기본 응용 프로그램 탐색파이썬 : 기본 응용 프로그램 탐색Apr 10, 2025 am 09:41 AM

Python은 웹 개발, 데이터 과학, 기계 학습, 자동화 및 스크립팅 분야에서 널리 사용됩니다. 1) 웹 개발에서 Django 및 Flask 프레임 워크는 개발 프로세스를 단순화합니다. 2) 데이터 과학 및 기계 학습 분야에서 Numpy, Pandas, Scikit-Learn 및 Tensorflow 라이브러리는 강력한 지원을 제공합니다. 3) 자동화 및 스크립팅 측면에서 Python은 자동화 된 테스트 및 시스템 관리와 ​​같은 작업에 적합합니다.

2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?2 시간 안에 얼마나 많은 파이썬을 배울 수 있습니까?Apr 09, 2025 pm 04:33 PM

2 시간 이내에 파이썬의 기본 사항을 배울 수 있습니다. 1. 변수 및 데이터 유형을 배우십시오. 이를 통해 간단한 파이썬 프로그램 작성을 시작하는 데 도움이됩니다.

10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?10 시간 이내에 프로젝트 및 문제 중심 방법에서 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법?Apr 02, 2025 am 07:18 AM

10 시간 이내에 컴퓨터 초보자 프로그래밍 기본 사항을 가르치는 방법은 무엇입니까? 컴퓨터 초보자에게 프로그래밍 지식을 가르치는 데 10 시간 밖에 걸리지 않는다면 무엇을 가르치기로 선택 하시겠습니까?

중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?중간 독서를 위해 Fiddler를 사용할 때 브라우저에서 감지되는 것을 피하는 방법은 무엇입니까?Apr 02, 2025 am 07:15 AM

Fiddlerevery Where를 사용할 때 Man-in-the-Middle Reading에 Fiddlereverywhere를 사용할 때 감지되는 방법 ...

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는