搜尋
首頁科技週邊人工智慧深入淺析,一步步用GPT打造你的聊天機器人

與ChatGPT聊天很有趣,而且資訊量很大 —— 與它閒聊可以探索一些新的想法。但這些都是比較隨意的用例,新奇感很快就會減弱,特別是當人意識到它能產生幻覺的時候。

如何以更有效率的方式使用ChatGPT呢?在OpenAI發布GPT3.5系列API後,可以做的事情遠不止於閒聊。 QA(問答)是企業和個人使用的一個非常有效的用例 —— 用自然語言向機器人詢問自己的文件/數據,它可以透過從文件中檢索資訊並產生回應來快速回答。可以把它用於客戶支援、綜合用戶研究、個人知識管理等等。

向機器人詢問與文件相關的問題。使用穩定擴散法產生的影像。

本文將探討如何根據自己的資料建立問答聊天機器人,包括為什麼有些方法行不通,以及如何利用llama-index和GPT API以高效的方式建立一個文件問答聊天機器人的步驟指南。

(如果只想知道如何建立問答聊天機器人,可以直接跳到「逐步建立文件問答聊天機器人」部分)

探索不同的方法

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

由於提示符號對輸入標記的數量有限制,想出了這樣一個主意來解決問題:首先使用一種演算法來搜尋文件並挑選出相關的摘錄,然後只將這些相關的語境與問題一起傳遞給GPT模型。在過程中需要使用一個簡單、便捷的gpt-index(現在改名為LlamaIndex)的函式庫。

深入淺析,一步步用GPT打造你的聊天機器人

從檔案中提取相關部分,然後將其回饋給提示。

在下一節中,將給出一個使用LlamaIndex和GPT在自己的資料上建立一個問答聊天機器人的逐步教學。

逐步建立文件問答聊天機器人

在這一節中,將用LlamaIndex和GPT(text-davinci-003)在現有文件的基礎上建立一個問答聊天機器人,這樣就可以用自然語言提出關於文件的問題,並從聊天機器人那裡得到答案。

前提條件

在開始本教學之前,需要做一些準備:

  • 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就有了回答問題的背景。

設定

首先需要安裝函式庫。只需在終端機或谷歌Colab筆記本上執行以下命令。這些命令將同時安裝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刪除
10個生成AI編碼擴展,在VS代碼中,您必須探索10個生成AI編碼擴展,在VS代碼中,您必須探索Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

烹飪創新:人工智能如何改變食品服務烹飪創新:人工智能如何改變食品服務Apr 12, 2025 pm 12:09 PM

AI增強食物準備 在新生的使用中,AI系統越來越多地用於食品製備中。 AI驅動的機器人在廚房中用於自動化食物準備任務,例如翻轉漢堡,製作披薩或組裝SA

Python名稱空間和可變範圍的綜合指南Python名稱空間和可變範圍的綜合指南Apr 12, 2025 pm 12:00 PM

介紹 了解Python函數中變量的名稱空間,範圍和行為對於有效編寫和避免運行時錯誤或異常至關重要。在本文中,我們將研究各種ASP

視覺語言模型(VLMS)的綜合指南視覺語言模型(VLMS)的綜合指南Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

聯發科技與kompanio Ultra和Dimenty 9400增強優質陣容聯發科技與kompanio Ultra和Dimenty 9400增強優質陣容Apr 12, 2025 am 11:52 AM

繼續使用產品節奏,本月,Mediatek發表了一系列公告,包括新的Kompanio Ultra和Dimenty 9400。這些產品填補了Mediatek業務中更傳統的部分,其中包括智能手機的芯片

本週在AI:沃爾瑪在時尚趨勢之前設定了時尚趨勢本週在AI:沃爾瑪在時尚趨勢之前設定了時尚趨勢Apr 12, 2025 am 11:51 AM

#1 Google推出了Agent2Agent 故事:現在是星期一早上。作為AI驅動的招聘人員,您更聰明,而不是更努力。您在手機上登錄公司的儀表板。它告訴您三個關鍵角色已被採購,審查和計劃的FO

生成的AI遇到心理摩托車生成的AI遇到心理摩托車Apr 12, 2025 am 11:50 AM

我猜你一定是。 我們似乎都知道,心理障礙由各種chat不休,這些chat不休,這些chat不休,混合了各種心理術語,並且常常是難以理解的或完全荒謬的。您需要做的一切才能噴出fo

原型:科學家將紙變成塑料原型:科學家將紙變成塑料Apr 12, 2025 am 11:49 AM

根據本週發表的一項新研究,只有在2022年製造的塑料中,只有9.5%的塑料是由回收材料製成的。同時,塑料在垃圾填埋場和生態系統中繼續堆積。 但是有幫助。一支恩金團隊

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境