Rumah >Peranti teknologi >AI >Analisis mendalam, langkah demi langkah untuk membina chatbot anda menggunakan GPT

Analisis mendalam, langkah demi langkah untuk membina chatbot anda menggunakan GPT

PHPz
PHPzke hadapan
2023-04-07 19:41:012399semak imbas

Berbual dengan ChatGPT adalah menyeronokkan dan bermaklumat - anda boleh meneroka beberapa idea baharu dengan berbual dengannya. Tetapi ini adalah kes penggunaan yang lebih kasual, dan kebaharuan itu cepat hilang, terutamanya apabila seseorang menyedari bahawa ia boleh menghasilkan halusinasi.

Bagaimana untuk menggunakan ChatGPT dengan cara yang lebih cekap? Selepas OpenAI mengeluarkan siri API GPT3.5, anda boleh melakukan lebih daripada sekadar berbual. QA (Soal Jawab) ialah kes penggunaan yang sangat berkesan untuk perniagaan dan individu - tanya bot tentang fail/data anda sendiri menggunakan bahasa semula jadi dan ia boleh menjawab dengan cepat dengan mendapatkan maklumat daripada fail dan menjana respons. Gunakannya untuk sokongan pelanggan, penyelidikan pengguna yang komprehensif, pengurusan pengetahuan peribadi dan banyak lagi.

Tanya soalan bot yang berkaitan dengan fail anda. Imej dijana menggunakan kaedah resapan stabil.

Artikel ini akan meneroka cara membina chatbot Soal Jawab berdasarkan data anda sendiri, termasuk sebab sesetengah kaedah tidak berfungsi dan panduan langkah demi langkah tentang cara menggunakan llama-index dan API GPT untuk membina chatbot S&J dokumen dengan cara yang cekap.

(Jika anda hanya ingin tahu cara membina chatbot Soal Jawab, anda boleh melangkau terus ke bahagian "Membina Soalan&Jawa Dokumen Langkah demi Langkah")

Teroka kaedah yang berbeza

Apabila ChatGPT keluar Semasa bekerja, anda boleh memikirkan untuk menggunakannya sebagai pembantu dalam kerja anda, dengan itu menjimatkan masa dan tenaga anda.

Perkara pertama yang terlintas di fikiran ialah menggunakan data anda sendiri untuk memperhalusi model GPT bagi mencapai matlamat ini. Walau bagaimanapun, penalaan halus memerlukan sedikit wang dan memerlukan set data yang besar dengan contoh. Ia juga mustahil untuk memperhalusi setiap kali fail berubah. Perkara yang lebih kritikal ialah penalaan halus tidak boleh menjadikan model "tahu" semua maklumat dalam dokumen Sebaliknya, ia mesti mengajar model kemahiran baharu. Oleh itu, penalaan halus bukanlah idea yang baik untuk jaminan kualiti (berbilang) dokumen.

Pendekatan kedua ialah melakukan kejuruteraan pembayang dengan menyediakan konteks dalam pembayang. Sebagai contoh, bukannya bertanya soalan secara langsung, anda boleh menambahkan kandungan dokumen asal sebelum soalan sebenar. Tetapi perhatian model GPT adalah terhad - ia hanya boleh menerima beberapa ribu perkataan dalam pembayang (kira-kira 4000 token atau 3000 perkataan). Dengan beribu-ribu e-mel maklum balas pelanggan dan beratus-ratus dokumen produk, adalah mustahil untuk memberikan semua konteks dengan segera. Menghantar konteks yang panjang kepada API juga mahal kerana harga adalah berdasarkan bilangan token yang digunakan.

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?”

Memandangkan gesaan mempunyai had pada bilangan teg input, kemukakan idea ini untuk menyelesaikan masalah: mula-mula gunakan algoritma untuk mencari dokumen dan pilih petikan yang berkaitan, dan kemudian hanya yang adalah relevan Konteks diserahkan kepada model GPT bersama-sama dengan soalan. Dalam proses itu, perpustakaan indeks gpt yang ringkas dan mudah (kini dinamakan semula sebagai LlamaIndex) perlu digunakan.

Analisis mendalam, langkah demi langkah untuk membina chatbot anda menggunakan GPT

Ekstrak bahagian yang berkaitan daripada fail dan suapkannya kembali kepada gesaan.

Dalam bahagian seterusnya, tutorial langkah demi langkah akan diberikan tentang membina chatbot Soal Jawab pada data anda sendiri menggunakan LlamaIndex dan GPT.

Bina satu dokumen Q&A chatbot langkah demi langkah

Dalam bahagian ini, kami akan menggunakan LlamaIndex dan GPT (text-davinci-003) untuk membina Q&J chatbot berdasarkan dokumen sedia ada, jadi Anda boleh bertanya soalan tentang dokumen dalam bahasa semula jadi dan mendapatkan jawapan daripada chatbot.

Prasyarat

Sebelum memulakan tutorial ini, anda perlu membuat beberapa persediaan:

  • Kunci API OpenAI, yang boleh didapati di https://platform.openai .com /account/api-keys dijumpai.
  • Pangkalan data fail. LlamaIndex menyokong banyak sumber data yang berbeza seperti Notion, Google Docs, Asana, dsb. Dalam artikel ini hanya fail teks ringkas akan digunakan untuk demonstrasi.
  • Persekitaran Python tempatan atau buku nota Google Colab dalam talian.

Aliran Kerja

Aliran kerja sangat mudah dan hanya memerlukan beberapa langkah:

  • 1. Gunakan LlamaIndex untuk mencipta indeks untuk data dokumen anda.
  • 2. Tanya indeks menggunakan bahasa semula jadi.
  • 3.LlamaIndex akan mengambil bahagian yang berkaitan dan menghantarnya ke petua GPT.
  • 4 Tanya GPT untuk konteks yang berkaitan dan bina respons.

Apa yang LlamaIndex lakukan ialah menukar data dokumen mentah kepada indeks vektor, yang sangat cekap untuk membuat pertanyaan. Ia akan menggunakan indeks ini untuk mencari bahagian yang paling relevan berdasarkan persamaan pertanyaan dan data. Ia kemudian akan memasukkan kandungan yang diambil ke dalam gesaan yang akan dihantar kepada GPT supaya GPT mempunyai konteks untuk menjawab soalan.

Persediaan

Anda perlu memasang perpustakaan terlebih dahulu. Hanya jalankan arahan berikut pada Terminal atau Google Colab Notebook. Perintah ini akan memasang kedua-dua LlamaIndex dan OpenAI.

!pip install llama-index
!pip install openai

Seterusnya anda akan mengimport perpustakaan ini dalam python dan menyediakan kunci API OpenAI dalam fail .py baharu.

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

os.environ['OPENAI_API_KEY'] = 'sk-YOUR-API-KEY'

Bina indeks dan simpan

Selepas anda memasang perpustakaan yang diperlukan dan mengimportnya, anda perlu membina indeks dokumen anda.

Untuk memuatkan dokumen, anda boleh menggunakan kaedah SimpleDirectoryReader yang disediakan oleh LllamaIndex, atau anda boleh memuatkannya daripada rentetan.

# 从一个目录中加载
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)

Analisis mendalam, langkah demi langkah untuk membina chatbot anda menggunakan GPT

一个回应的例子。

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

一些高级用法的说明

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

总结

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

Atas ialah kandungan terperinci Analisis mendalam, langkah demi langkah untuk membina chatbot anda menggunakan GPT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam