Maison > Périphériques technologiques > IA > le corps du texte

Analyse approfondie, étape par étape pour construire votre chatbot en utilisant GPT

PHPz
Libérer: 2023-04-07 19:41:01
avant
2369 Les gens l'ont consulté

Discuter avec ChatGPT est amusant et informatif – vous pouvez explorer de nouvelles idées en discutant avec lui. Mais il s’agit de cas d’utilisation plus occasionnels, et la nouveauté s’estompe rapidement, surtout lorsqu’on se rend compte qu’elle peut produire des hallucinations.

Comment utiliser ChatGPT de manière plus efficace ? Après qu'OpenAI ait publié la série d'API GPT3.5, vous pourrez faire bien plus que simplement discuter. Le contrôle qualité (question et réponse) est un cas d'utilisation très efficace pour les entreprises et les particuliers : interrogez un robot sur vos propres fichiers/données en utilisant un langage naturel et il peut répondre rapidement en récupérant les informations du fichier et en générant une réponse. Utilisez-le pour le support client, la recherche complète sur les utilisateurs, la gestion des connaissances personnelles, etc.

Posez au bot vos questions liées aux fichiers. Image générée à l’aide de la méthode de diffusion stable.

Cet article explorera comment créer un chatbot de questions-réponses basé sur vos propres données, y compris pourquoi certaines méthodes ne fonctionnent pas, et un guide étape par étape sur la façon d'utiliser llama-index et l'API GPT pour créer un document. Chatbot de questions-réponses de manière efficace.

(Si vous voulez simplement savoir comment créer un chatbot de questions-réponses, vous pouvez accéder directement à la section « Créer un chatbot de questions-réponses sur un document étape par étape »)

Explorez différentes méthodes

Lorsque ChatGPT sortira, vous pourrez penser à utilisez-le comme assistant pour votre travail, économisant ainsi votre temps et votre énergie, etc.

La première chose qui me vient à l'esprit est d'utiliser vos propres données pour affiner le modèle GPT afin d'atteindre cet objectif. Cependant, le réglage fin coûte assez cher et nécessite un grand ensemble de données avec des exemples. Il est également impossible d’affiner chaque fois qu’un fichier est modifié. Le point le plus critique est que le réglage fin ne peut pas faire en sorte que le modèle « connaisse » toutes les informations contenues dans le document, mais il doit enseigner au modèle une nouvelle compétence. Par conséquent, un réglage fin n’est pas une bonne idée pour l’assurance qualité (multi-)documents.

La deuxième méthode consiste à effectuer une ingénierie d'invite en fournissant un contexte dans l'invite. Par exemple, au lieu de poser la question directement, vous pouvez ajouter le contenu du document original avant la question réelle. Mais l'attention du modèle GPT est limitée : il ne peut accepter que quelques milliers de mots dans l'indice (environ 4 000 jetons ou 3 000 mots). Avec des milliers d'e-mails de commentaires clients et des centaines de documents produits, il est impossible de donner tout le contexte dans une seule invite. Transmettre un contexte long à l'API est également coûteux puisque la tarification est basée sur le nombre de jetons utilisés.

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?”
Copier après la connexion

Étant donné que l'invite a une limite sur le nombre de jetons d'entrée, j'ai eu cette idée pour résoudre le problème : utilisez d'abord un algorithme pour rechercher les documents et sélectionner les extraits pertinents, puis contextualisez-les uniquement avec la question Passé à le modèle GPT. Dans le processus, une bibliothèque gpt-index simple et pratique (maintenant renommée LlamaIndex) doit être utilisée.

Analyse approfondie, étape par étape pour construire votre chatbot en utilisant GPT

Extraire les parties pertinentes du fichier et les renvoyer à l'invite.

Dans la section suivante, un didacticiel étape par étape sera présenté sur la création d'un chatbot de questions-réponses sur vos propres données à l'aide de LlamaIndex et GPT.

Créez un chatbot de questions-réponses sur un document étape par étape

Dans cette section, vous utiliserez LlamaIndex et GPT (text-davinci-003) pour créer un chatbot de questions-réponses basé sur des documents existants, afin que vous puissiez poser des questions sur le document de manière naturelle. questions linguistiques et obtenez des réponses du chatbot.

Prérequis

Avant de commencer ce tutoriel, vous devez effectuer quelques préparatifs :

  • Clé API OpenAI, disponible sur https://platform.openai.com/account/api-keys.
  • Une base de données de fichiers. LlamaIndex prend en charge de nombreuses sources de données différentes telles que Notion, Google Docs, Asana, etc. Dans cet article, seul un simple fichier texte sera utilisé à des fins de démonstration.
  • Un environnement Python local ou un notebook Google Colab en ligne.

Workflow

Le flux de travail est très simple et ne nécessite que quelques étapes :

  • 1 Utilisez LlamaIndex pour créer un index pour les données de votre document.
  • 2. Interrogez l'index en utilisant le langage naturel.
  • 3.LlamaIndex récupérera la partie pertinente et la transmettra à l'indice GPT.
  • 4. Demandez à GPT le contexte pertinent et construisez une réponse.

LlamaIndex convertit les données brutes du document en un index vectoriel, ce qui est très efficace pour les requêtes. Il utilisera cet index pour trouver les parties les plus pertinentes en fonction de la similitude de la requête et des données. Il insérera ensuite le contenu récupéré dans l'invite qu'il enverra à GPT afin que GPT dispose du contexte nécessaire pour répondre à la question.

Configuration

Vous devez d'abord installer la bibliothèque. Exécutez simplement la commande suivante sur Terminal ou Google Colab Notebook. Ces commandes installeront à la fois LlamaIndex et OpenAI.

!pip install llama-index
!pip install openai
Copier après la connexion

L'étape suivante consiste à importer ces bibliothèques en python et à configurer la clé API OpenAI dans un nouveau fichier .py.

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

os.environ['OPENAI_API_KEY'] = 'sk-YOUR-API-KEY'
Copier après la connexion

Créer un index et enregistrer

Après avoir installé les bibliothèques requises et les avoir importées, vous devrez créer un index de vos documents.

Pour charger un document, vous pouvez utiliser la méthode SimpleDirectoryReader fournie par LllamaIndex, ou vous pouvez le charger à partir d'une chaîne.

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

# 从字符串中加载,假设将数据保存为字符串text1,text2,...
text_list = [text1, text2, ...]
documents = [Document(t) for t in text_list]
Copier après la connexion

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

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

# 构建一个简单的向量索引
index = GPTSimpleVectorIndex(documents)
Copier après la connexion

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

# 将索引保存在`index.json`文件中
index.save_to_disk('index.json')
# 从保存的`index.json`文件中加载索引
index = GPTSimpleVectorIndex.load_from_disk('index.json')
Copier après la connexion

查询索引并获得响应

查询索引很简单:

# 查询索引
response = index.query("What features do users want to see in the app?")
print(response)
Copier après la connexion

Analyse approfondie, étape par étape pour construire votre chatbot en utilisant GPT

一个回应的例子。

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

一些高级用法的说明

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

总结

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal