Detaillierte Analyse, Schritt für Schritt zum Aufbau Ihres Chatbots mit GPT

PHPz
Freigeben: 2023-04-07 19:41:01
nach vorne
2369 Leute haben es durchsucht

Das Chatten mit ChatGPT macht Spaß und ist informativ – Sie können beim Chatten einige neue Ideen entdecken. Dabei handelt es sich jedoch um eher gelegentliche Anwendungsfälle, und die Neuheit lässt schnell nach, insbesondere wenn man erkennt, dass es Halluzinationen hervorrufen kann.

Wie kann man ChatGPT effizienter nutzen? Nachdem OpenAI die GPT3.5-API-Serie veröffentlicht hat, können Sie viel mehr als nur chatten. QA (Frage und Antwort) ist ein sehr effektiver Anwendungsfall für Unternehmen und Einzelpersonen – fragen Sie einen Bot in natürlicher Sprache nach Ihren eigenen Dateien/Daten und er kann schnell antworten, indem er Informationen aus der Datei abruft und eine Antwort generiert. Nutzen Sie es für Kundensupport, umfassende Benutzerrecherche, persönliches Wissensmanagement und mehr.

Stellen Sie dem Bot Ihre dateibezogenen Fragen. Mit der stabilen Diffusionsmethode erzeugtes Bild.

In diesem Artikel erfahren Sie, wie Sie einen Q&A-Chatbot basierend auf Ihren eigenen Daten erstellen, einschließlich der Gründe, warum einige Methoden nicht funktionieren, und eine Schritt-für-Schritt-Anleitung zur Verwendung von Lama-Index und der GPT-API zum Erstellen eines Dokuments Q&A-Chatbot auf effiziente Weise.

(Wenn Sie nur wissen möchten, wie Sie einen Q&A-Chatbot erstellen, können Sie direkt zum Abschnitt „Schritt für Schritt einen Q&A-Chatbot für Dokumente erstellen“ springen)

Entdecken Sie verschiedene Methoden

Wenn ChatGPT herauskommt, können Sie sich vorstellen Verwenden Sie es als Assistent für Ihre Arbeit und sparen Sie so Zeit und Energie usw.

Das erste, was mir in den Sinn kommt, ist, Ihre eigenen Daten zu verwenden, um das GPT-Modell zu verfeinern, um dieses Ziel zu erreichen. Die Feinabstimmung kostet jedoch einiges an Geld und erfordert einen großen Datensatz mit Beispielen. Es ist auch unmöglich, jedes Mal eine Feinabstimmung vorzunehmen, wenn sich eine Datei ändert. Der kritischere Punkt ist, dass die Feinabstimmung nicht dazu führen kann, dass das Modell alle Informationen im Dokument „kennt“, sondern dem Modell eine neue Fähigkeit beibringen muss. Daher ist eine Feinabstimmung für die Qualitätssicherung von (Multi-)Dokumenten keine gute Idee.

Die zweite Methode besteht darin, Prompt-Engineering durchzuführen, indem Kontext in der Eingabeaufforderung bereitgestellt wird. Anstatt die Frage beispielsweise direkt zu stellen, können Sie den Originalinhalt des Dokuments vor der eigentlichen Frage anhängen. Die Aufmerksamkeit des GPT-Modells ist jedoch begrenzt – es kann nur einige tausend Wörter im Hinweis akzeptieren (etwa 4000 Token oder 3000 Wörter). Bei Tausenden von Kundenfeedback-E-Mails und Hunderten von Produktdokumenten ist es unmöglich, den gesamten Kontext in einer Aufforderung anzugeben. Auch die Übergabe eines langen Kontexts an die API ist teuer, da die Preisgestaltung auf der Anzahl der verwendeten Token basiert.

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?”
Nach dem Login kopieren

Da die Eingabeaufforderung eine Begrenzung der Anzahl der Eingabe-Tokens hat, kam ich auf die Idee, das Problem zu lösen: Verwenden Sie zunächst einen Algorithmus, um die Dokumente zu durchsuchen und relevante Auszüge auszuwählen, und kontextualisieren Sie diese dann nur mit der Frage „Übergeben an“. das GPT-Modell. Dabei muss eine einfache und praktische gpt-index-Bibliothek (jetzt umbenannt in LlamaIndex) verwendet werden.

Detaillierte Analyse, Schritt für Schritt zum Aufbau Ihres Chatbots mit GPT

Extrahieren Sie relevante Teile aus der Datei und geben Sie sie an die Eingabeaufforderung zurück.

Im nächsten Abschnitt erhalten Sie eine Schritt-für-Schritt-Anleitung zum Erstellen eines Q&A-Chatbots auf Ihren eigenen Daten mit LlamaIndex und GPT.

Schritt für Schritt einen Q&A-Chatbot für Dokumente erstellen

In diesem Abschnitt verwenden Sie LlamaIndex und GPT (text-davinci-003), um einen Q&A-Chatbot basierend auf vorhandenen Dokumenten zu erstellen, sodass Sie auf natürliche Weise Fragen zum Dokument stellen können Sprachfragen stellen und Antworten vom Chatbot erhalten.

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen, müssen Sie einige Vorbereitungen treffen:

  • OpenAI-API-Schlüssel, die Sie unter https://platform.openai.com/account/api-keys finden.
  • Eine Dateidatenbank. LlamaIndex unterstützt viele verschiedene Datenquellen wie Notion, Google Docs, Asana usw. In diesem Artikel wird zur Demonstration nur eine einfache Textdatei verwendet.
  • Eine lokale Python-Umgebung oder ein Online-Google Colab-Notizbuch.

Workflow

Der Workflow ist sehr einfach und erfordert nur wenige Schritte:

  • 1 Verwenden Sie LlamaIndex, um einen Index für Ihre Dokumentdaten zu erstellen.
  • 2. Fragen Sie den Index in natürlicher Sprache ab.
  • 3.LlamaIndex ruft den relevanten Teil ab und übergibt ihn an den GPT-Hinweis.
  • 4. Fragen Sie GPT nach relevantem Kontext und konstruieren Sie eine Antwort.

LlamaIndex wandelt die Rohdaten des Dokuments in einen Vektorindex um, der für die Abfrage sehr effizient ist. Dieser Index wird verwendet, um die relevantesten Teile basierend auf der Ähnlichkeit der Abfrage und der Daten zu finden. Anschließend fügt es den abgerufenen Inhalt in die Eingabeaufforderung ein, die an GPT gesendet wird, sodass GPT über den Kontext zur Beantwortung der Frage verfügt.

Setup

Zuerst müssen Sie die Bibliothek installieren. Führen Sie einfach den folgenden Befehl im Terminal oder im Google Colab Notebook aus. Diese Befehle installieren sowohl LlamaIndex als auch OpenAI.

!pip install llama-index
!pip install openai
Nach dem Login kopieren

Der nächste Schritt besteht darin, diese Bibliotheken in Python zu importieren und den OpenAI-API-Schlüssel in einer neuen .py-Datei einzurichten.

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

os.environ['OPENAI_API_KEY'] = 'sk-YOUR-API-KEY'
Nach dem Login kopieren

Index erstellen und speichern

Nachdem Sie die erforderlichen Bibliotheken installiert und importiert haben, müssen Sie einen Index Ihrer Dokumente erstellen.

Um ein Dokument zu laden, können Sie die von LllamaIndex bereitgestellte SimpleDirectoryReader-Methode verwenden oder es aus einer Zeichenfolge laden.

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

# 从字符串中加载,假设将数据保存为字符串text1,text2,...
text_list = [text1, text2, ...]
documents = [Document(t) for t in text_list]
Nach dem Login kopieren

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

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

# 构建一个简单的向量索引
index = GPTSimpleVectorIndex(documents)
Nach dem Login kopieren

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

# 将索引保存在`index.json`文件中
index.save_to_disk('index.json')
# 从保存的`index.json`文件中加载索引
index = GPTSimpleVectorIndex.load_from_disk('index.json')
Nach dem Login kopieren

查询索引并获得响应

查询索引很简单:

# 查询索引
response = index.query("What features do users want to see in the app?")
print(response)
Nach dem Login kopieren

Detaillierte Analyse, Schritt für Schritt zum Aufbau Ihres Chatbots mit GPT

一个回应的例子。

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

一些高级用法的说明

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

总结

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

Das obige ist der detaillierte Inhalt vonDetaillierte Analyse, Schritt für Schritt zum Aufbau Ihres Chatbots mit GPT. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage