这是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
特此免费授予获得此软件副本和相关文档文件副本(“软件”)的任何人,以无限制处理该软件,包括无限制的使用权,复制,复制,修改,合并,合并,发布,分发,分发,分发,订婚,和/或允许软件的副本,并允许对以下条件提供以下条件,以下是以下条件。
上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。
该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人都不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他责任,是由软件,使用或与软件中的使用或其他交易有关的。