date
password
icon
hashtag
标题
勘误
type
status
slug
summary
tags
category
URL
AI summary
AI custom autofill
贴文
类型
Status
标签
🪄
Text
Multi-select
本文深入探讨了如何使用Langchain和OpenAI创建聊天机器人,以及如何将文本数据转换为向量,如何创建向量存储器,如何使用OpenAI API创建对话模型,以及如何使用
ConversationalRetrievalChain
对象将模型和向量存储器结合在一起,用于根据文本数据回答问题。作者非常详细地介绍了如何使用CSV文件将文本数据读入
Document
对象的列表中,并使用Langchain的内置模块将文本转换为向量。此外,作者还提供了完整的Python代码和示例CSV文件,以及与ChatBox的示例对话,使读者能够更好地了解如何使用Langchain和OpenAI构建聊天机器人。这篇文章提供了一个很好的起点,让读者了解如何使用Langchain和OpenAI构建聊天机器人。如果您想深入了解聊天机器人的开发,那么本文一定不容错过。
在本教程中,我们将探讨如何使用Langchain和OpenAI创建自己的聊天机器人。Langchain是一个Python库,提供了一个易于使用的接口,用于构建对话式AI系统,而OpenAI是一家为开发人员提供一套基于AI的工具和服务的公司。通过结合这两个强大的工具,我们可以创建一个聊天框,它可以根据文本数据回答问题。
该过程涉及使用包含文本数据的CSV文件对聊天机器人进行训练。我们将使用Langchain的内置模块将文本转换为向量,创建向量存储和构建对话检索链。检索链使用来自OpenAI的预训练语言模型,根据文本数据生成用户查询的回答。
使用Langchain和OpenAI构建聊天机器人的好处之一是,它允许我们利用预训练语言模型的强大功能,而无需从头开始训练它们。这可以节省我们的时间和资源,因为预训练模型已经学会了理解自然语言并回答问题。此外,Langchain提供了一个用户友好的界面,用于构建对话式AI系统,使得我们可以轻松地对聊天机器人设计进行实验和迭代。
在开始之前,重要的是要注意,我们需要从OpenAI获得API密钥并将其添加到我们的环境变量中。此API密钥将允许我们访问OpenAI的语言模型和其他AI服务。说到这里,让我们深入了解如何使用Langchain和OpenAI创建自己的聊天机器人!
完整代码
代码的细节:
这些行导入了代码运行所需的必要库和模块。具体来说,这个代码使用了
csv
、os
、openai
、langchain.embeddings.openai
、langchain.chat_models
、langchain.chains
、langchain.vectorstores
和 langchain.vectorstores.base
模块。这个函数将CSV文件读入一个
Document
对象的列表中,稍后可以用于创建向量存储。file
参数是CSV文件的路径,text_cols
参数是将每个文档用作文本数据的列名的列表。该代码从名为
OPENAI_API_KEY
的环境变量中检索OpenAI API密钥。如果环境变量未设置,则代码将打印一条消息并退出。这些行创建了一个对话检索链,可以用于根据文本数据回答问题。
首先,该代码使用
read_csv_into_vector_document
函数从CSV文件中读取数据,该函数创建一个Document
对象的列表。接下来,该代码使用OpenAI API密钥创建了一个
OpenAIEmbeddings
对象。该对象用于将文本数据嵌入向量。然后,该代码使用
FAISS
模块创建向量存储器,该库用于高效的密集向量相似性搜索和聚类。向量存储器是从Document
对象列表和OpenAIEmbeddings
对象创建的。接下来,该代码创建了一个名为
ChatOpenAI
的对话模型,该模型基于OpenAI API。此对象用于回答问题。最后,该代码创建了一个
ConversationalRetrievalChain
对象,该对象将模型和向量存储器结合在一起。该对象可以用于根据文本数据回答问题。该代码获取用户的输入并将其传递给
ConversationalRetrievalChain
对象的__call__
方法,该方法根据问题生成回答。__call__
方法采用一个包含两个键的字典:question
,它包含用户的输入,以及chat_history
,它是与对话模型的先前交互的列表。__call__
方法返回一个仅包含一个键answer
的字典,该键包含模型对问题的回答。将此响应打印到控制台。总的来说,这个代码创建了一个对话检索链,它可以根据文本数据回答问题。使用
OpenAIEmbeddings
对象将文本数据嵌入向量,使用FAISS
模块创建向量存储器,使用ChatOpenAI
模型回答问题,使用ConversationalRetrievalChain
对象将模型和向量存储器结合在一起。代码提示用户输入并使用对话检索链回答其问题。附录:
示例CSV文件
training_data.csv
与ChatBox的示例对话
Github:
作者:Ebo Jackson
- 作者:Inevitable AI
- 链接:https://www.Inevitableai.ltd/article/share18
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。