這是www.gptflix.ai的源代碼
我們將使用OpenAI,Pinecone DB和簡化構建GPTFLIX QA機器人。您將學習如何準備文本以發送到嵌入模型。您將捕獲從模型上傳到Pinecone DB的嵌入式和文本。之後,您將設置Pinecone DB索引,然後將OpenAI嵌入到DB上,以便在嵌入式上進行搜索。
最後,我們將使用shatlit設置QA Bot Frontend聊天應用程序。當用戶向機器人提出問題時,機器人將在Pinecone DB中的電影文本上進行搜索。它將根據DB的文字回答您有關電影的問題。
這是一種基本的腳手架,以構建自己的知識回歸系統,目前是超級基本的!
此存儲庫包含GPTFLIX源代碼和簡化部署指南。
此存儲庫設置為在簡化中部署,您將需要在精簡的情況下設置環境變量:
將gptflix存儲庫分配給您的github帳戶。
在pinecone.io上設置帳戶
在簡化雲上設置帳戶
在簡化上創建一個新應用。將其鏈接到github上的存儲庫的叉子,然後將應用程序指向/chat/main.py
作為主可執行文件。
轉到您的應用程序設置,然後導航到秘密。這樣建立秘密:
[API_KEYS]
pinecone = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx"
openai = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
.env
文件。 PINECONE_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
當然,這些當然需要成為您的Pinecone和OpenAI API鍵;)
此存儲庫設置為使用 /data_samples中的MPST數據來瀏覽演示:這些步驟是:
p1.generate_index_mpst.py
從./data_sample/d0.mpst_1k_raw.csv
準備文本中,我們可以將我們注入模型並嵌入其嵌入。 python p1.generate_index_mpst.py
p2.make_jsonl_for_requests_mpst.py
將您的新d1.mpst_1k_converted.csv
文件轉換為帶有指令的JSONL文件,以運行針對OpenAI API的嵌入式請求。 python p2.make_jsonl_for_requests_mpst.py
p3.api_request_parallel_processor.py
以獲取嵌入。 python src/p3.api_request_parallel_processor.py
--requests_filepath data_sample/d2.embeddings_maker.jsonl
--save_filepath data_sample/d3.embeddings_maker_results.jsonl
--request_url https://api.openai.com/v1/embeddings
--max_requests_per_minute 1500
--max_tokens_per_minute 6250000
--token_encoding_name cl100k_base
--max_attempts 5
--logging_level 20
p4.convert_jsonl_with_embeddings_to_csv.py
使用新的JSONL文件,用文本和嵌入式製作一個漂亮的CSV。 python p4.convert_jsonl_with_embeddings_to_csv.py
p5.upload_to_pinecone.py
以上傳所有文本數據和嵌入。 python p5.upload_to_pinecone.py
您可以在本地運行該應用程序,但是您需要刪除圖像(在簡化雲上的路徑不同)
目前,sample_data中有一些數據,全部取自kaggle作為示例。
[]添加內存:總結以前的問題 /答案並預先準備以提示
[]添加不同的模式:在數據庫中更廣泛的搜索
[]添加不同的模式:響應的AI音調 /字符
[]更好的文檔
更好的文檔即將到來!隨時貢獻它們:)
#執照
麻省理工學院許可證
版權(C)2023 Stephan Sturges
特此免費授予獲得此軟件副本和相關文檔文件副本(“軟件”)的任何人,以無限制處理該軟件,包括無限制的使用權,複製,複製,修改,合併,合併,發布,分發,分發,分發,訂婚,和/或允許軟件的副本,並允許對以下條件提供以下條件,以下是以下條件。
上述版權通知和此許可通知應包含在軟件的所有副本或大量部分中。
該軟件是“原樣”提供的,沒有任何形式的明示或暗示保證,包括但不限於適銷性,特定目的的適用性和非侵權的保證。在任何情況下,作者或版權持有人都不應對任何索賠,損害賠償或其他責任責任,無論是在合同,侵權的訴訟中還是其他責任,是由軟件,使用或與軟件中的使用或其他交易有關的。