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로 이름이 변경됨)를 사용해야 합니다.
파일에서 관련 부분을 추출하여 프롬프트에 다시 피드하세요.
다음 섹션에서는 LlamaIndex와 GPT를 사용하여 자신의 데이터로 Q&A 챗봇을 구축하는 방법에 대한 단계별 튜토리얼이 제공됩니다.
이 섹션에서는 LlamaIndex와 GPT(text-davinci-003)를 사용하여 기존 문서를 기반으로 Q&A 챗봇을 구축하여 문서에 대해 자연스럽게 질문할 수 있도록 하겠습니다. 언어 질문을 하고 챗봇으로부터 답변을 받으세요.
이 튜토리얼을 시작하기 전에 몇 가지 준비가 필요합니다.
워크플로는 매우 간단하며 몇 가지 단계만 필요합니다.
LlamaIndex가 하는 일은 원시 문서 데이터를 쿼리에 매우 효율적인 벡터 인덱스로 변환하는 것입니다. 이 색인을 사용하여 쿼리와 데이터의 유사성을 기반으로 가장 관련성이 높은 부분을 찾습니다. 그런 다음 GPT가 질문에 답할 수 있는 컨텍스트를 갖도록 검색된 콘텐츠를 GPT로 보낼 프롬프트에 삽입합니다.
먼저 라이브러리를 설치해야 합니다. 터미널이나 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)
一个回应的例子。
然后就可以得到答案了。在幕后,LlamaIndex将接收提示,在索引中搜索相关块,并将提示和相关块传递给GPT。
上面的步骤只是展示了使用LlamaIndex和GPT回答问题的一个非常简单的入门用法。但可以做得比这更多。事实上,可以配置LlamaIndex来使用不同的大型语言模型(LLM),为不同的任务使用不同类型的索引,用一个新的索引来更新现有的索引,等等。如果有兴趣,可以在https://gpt-index.readthedocs.io/en/latest/index.html,阅读他们的文档。
本文中展示了如何结合使用GPT和LlamaIndex来构建一个文档问答聊天机器人。虽然GPT(和其他LLM)本身就很强大,但如果把它与其他工具、数据或流程结合起来,它的力量也会被大大增强。
위 내용은 GPT를 사용하여 챗봇을 구축하기 위한 단계별 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!