> 기술 주변기기 > 일체 포함 > GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석

GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석

PHPz
풀어 주다: 2023-04-07 19:41:01
앞으로
2417명이 탐색했습니다.

ChatGPT와의 채팅은 재미있고 유익합니다. 채팅을 통해 새로운 아이디어를 탐색할 수 있습니다. 그러나 이는 좀 더 일상적인 사용 사례이며, 특히 환각을 일으킬 수 있다는 사실을 깨닫고 나면 참신함은 빠르게 사라집니다.

ChatGPT를 보다 효율적으로 사용하는 방법은 무엇입니까? OpenAI가 GPT3.5 API 시리즈를 출시한 후에는 단순한 채팅 이상의 작업을 수행할 수 있습니다. QA(질문 및 답변)는 기업과 개인에게 매우 효과적인 사용 사례입니다. 자연어를 사용하여 자신의 파일/데이터에 대해 봇에게 질문하면 파일에서 정보를 검색하고 응답을 생성하여 신속하게 답변할 수 있습니다. 고객 지원, 포괄적인 사용자 조사, 개인 지식 관리 등에 사용하세요.

파일 관련 질문을 봇에게 물어보세요. 안정적인 확산 방법을 사용하여 생성된 이미지입니다.

이 기사에서는 일부 방법이 작동하지 않는 이유를 포함하여 자신의 데이터를 기반으로 Q&A 챗봇을 구축하는 방법과 llama-index 및 GPT API를 사용하여 문서를 구축하는 방법에 대한 단계별 가이드를 살펴봅니다. Q&A 챗봇을 효율적으로 활용해보세요.

(Q&A 챗봇 구축 방법만 알고 싶으시다면 "문서 Q&A 챗봇 단계별 구축" 섹션으로 바로 이동하세요)

다양한 방법을 살펴보세요

ChatGPT가 나오면 작업 보조자로 사용하여 시간과 에너지 등을 절약할 수 있습니다.

가장 먼저 떠오르는 것은 이 목표를 달성하기 위해 자신의 데이터를 사용하여 GPT 모델을 미세 조정하는 것입니다. 그러나 미세 조정에는 상당한 비용이 들고 예제가 포함된 대규모 데이터 세트가 필요합니다. 파일이 변경될 때마다 미세 조정하는 것도 불가능합니다. 더 중요한 점은 미세 조정을 통해 모델이 문서의 모든 정보를 "알게" 할 수는 없지만 모델에 새로운 기술을 가르쳐야 한다는 것입니다. 따라서 미세 조정은 (다중)문서 품질 보증에 좋은 생각이 아닙니다.

두 번째 방법은 프롬프트에 컨텍스트를 제공하여 프롬프트 엔지니어링을 수행하는 것입니다. 예를 들어, 질문을 직접 묻는 대신 실제 질문 앞에 원본 문서 내용을 추가할 수 있습니다. 그러나 GPT 모델의 관심은 제한되어 있습니다. 힌트에서 수천 단어(약 4000개 토큰 또는 3000단어)만 허용할 수 있습니다. 수천 개의 고객 피드백 이메일과 수백 개의 제품 문서로 인해 프롬프트에서 모든 컨텍스트를 제공하는 것은 불가능합니다. API에 긴 컨텍스트를 전달하는 것도 사용된 토큰 수에 따라 가격이 책정되므로 비용이 많이 듭니다.

I will ask you questions based on the following context:
— Start of Context —

YOUR DOCUMENT CONTENT

— End of Context—
My question is: “What features do users want to see in the app?”
로그인 후 복사

프롬프트에는 입력 토큰 수에 제한이 있으므로 문제를 해결하기 위해 다음 아이디어를 생각해 냈습니다. 먼저 알고리즘을 사용하여 문서를 검색하고 관련 발췌문을 선택한 다음 Passed to라는 질문으로 이를 맥락화합니다. GPT 모델. 이 과정에서 간단하고 편리한 gpt-index 라이브러리(현재 LlamaIndex로 이름이 변경됨)를 사용해야 합니다.

GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석

파일에서 관련 부분을 추출하여 프롬프트에 다시 피드하세요.

다음 섹션에서는 LlamaIndex와 GPT를 사용하여 자신의 데이터로 Q&A 챗봇을 구축하는 방법에 대한 단계별 튜토리얼이 제공됩니다.

문서 Q&A 챗봇을 단계별로 구축해 보세요

이 섹션에서는 LlamaIndex와 GPT(text-davinci-003)를 사용하여 기존 문서를 기반으로 Q&A 챗봇을 구축하여 문서에 대해 자연스럽게 질문할 수 있도록 하겠습니다. 언어 질문을 하고 챗봇으로부터 답변을 받으세요.

전제 조건

이 튜토리얼을 시작하기 전에 몇 가지 준비가 필요합니다.

  • OpenAI API 키는 https://platform.openai.com/account/api-keys에서 찾을 수 있습니다.
  • 파일 데이터베이스. LlamaIndex는 Notion, Google Docs, Asana 등과 같은 다양한 데이터 소스를 지원합니다. 이 기사에서는 간단한 텍스트 파일만 데모용으로 사용됩니다.
  • 로컬 Python 환경 또는 온라인 Google Colab 노트북.

워크플로

워크플로는 매우 간단하며 몇 가지 단계만 필요합니다.

  • 1. LlamaIndex를 사용하여 문서 데이터에 대한 색인을 만듭니다.
  • 2. 자연어를 사용하여 인덱스를 쿼리합니다.
  • 3.LlamaIndex는 관련 부분을 검색하여 GPT 힌트에 전달합니다.
  • 4. GPT에 관련 컨텍스트를 요청하고 응답을 작성하세요.

LlamaIndex가 하는 일은 원시 문서 데이터를 쿼리에 매우 효율적인 벡터 인덱스로 변환하는 것입니다. 이 색인을 사용하여 쿼리와 데이터의 유사성을 기반으로 가장 관련성이 높은 부분을 찾습니다. 그런 다음 GPT가 질문에 답할 수 있는 컨텍스트를 갖도록 검색된 콘텐츠를 GPT로 보낼 프롬프트에 삽입합니다.

Setup

먼저 라이브러리를 설치해야 합니다. 터미널이나 Google Colab Notebook에서 다음 명령을 실행하세요. 이 명령은 LlamaIndex와 OpenAI를 모두 설치합니다.

!pip install llama-index
!pip install openai
로그인 후 복사

다음 단계는 이러한 라이브러리를 Python으로 가져오고 새 .py 파일에 OpenAI API 키를 설정하는 것입니다.

# 导入必要的库
from llama_index import GPTSimpleVectorIndex, Document, SimpleDirectoryReader
import os

os.environ['OPENAI_API_KEY'] = 'sk-YOUR-API-KEY'
로그인 후 복사

색인 작성 및 저장

필요한 라이브러리를 설치하고 가져온 후에는 문서의 색인을 작성해야 합니다.

문서를 로드하려면 LllamaIndex에서 제공하는 SimpleDirectoryReader 메서드를 사용하거나 문자열에서 로드할 수 있습니다.

# 从一个目录中加载
documents = SimpleDirectoryReader('your_directory').load_data()

# 从字符串中加载,假设将数据保存为字符串text1,text2,...
text_list = [text1, text2, ...]
documents = [Document(t) for t in text_list]
로그인 후 복사

LlamaIndex还提供各种数据连接器,包括Notion、Asana、Google Drive、Obsidian等。可以在https://llamahub.ai/找到可用的数据连接器。

加载完文档后,就可以用以下方法简单地构建索引了:

# 构建一个简单的向量索引
index = GPTSimpleVectorIndex(documents)
로그인 후 복사

如果想保存索引并加载它以便将来使用,可以使用以下方法:

# 将索引保存在`index.json`文件中
index.save_to_disk('index.json')
# 从保存的`index.json`文件中加载索引
index = GPTSimpleVectorIndex.load_from_disk('index.json')
로그인 후 복사

查询索引并获得响应

查询索引很简单:

# 查询索引
response = index.query("What features do users want to see in the app?")
print(response)
로그인 후 복사

GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석

一个回应的例子。

然后就可以得到答案了。在幕后,LlamaIndex将接收提示,在索引中搜索相关块,并将提示和相关块传递给GPT。

一些高级用法的说明

上面的步骤只是展示了使用LlamaIndex和GPT回答问题的一个非常简单的入门用法。但可以做得比这更多。事实上,可以配置LlamaIndex来使用不同的大型语言模型(LLM),为不同的任务使用不同类型的索引,用一个新的索引来更新现有的索引,等等。如果有兴趣,可以在https://gpt-index.readthedocs.io/en/latest/index.html,阅读他们的文档。

总结

本文中展示了如何结合使用GPT和LlamaIndex来构建一个文档问答聊天机器人。虽然GPT(和其他LLM)本身就很强大,但如果把它与其他工具、数据或流程结合起来,它的力量也会被大大增强。

위 내용은 GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:51cto.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿