在迅速发展的人工智能世界(AI)中,聊天机器人已成为企业增强客户互动和简化操作的强大工具。利用语言模型的能力,聊天机器人变得越来越聪明,能够以显着的准确理解和对人类语言做出反应。
在此博客中,我们将探索使用LLM(大型语言模型)和两个流行的框架建立聊天机器人的迷人世界:Hugchat和Shertlit。 LLM,例如Openai的GPT-3.5,已经彻底改变了自然语言处理和理解,使聊天机器人更自然地交谈并提供上下文相关的响应。
我们将研究使用HugChat开发LLM驱动的聊天机器人的逐步过程,该聊天机器人是一个强大的Python库,简化了LLMS集成到Chatbot应用程序中。此外,我们将利用Sparlit,这是一个用于创建交互式Web应用程序的用户友好框架,为我们的聊天机器人提供无缝的用户界面和部署平台。
入门
目录
- 什么是hugchat
- 创建基本聊天机器人
- 什么是简化
- 创建基本的简化应用
- 构建LLM动力聊天机器人
什么是Hugchat
Hugchat是一种创新且多功能的Python软件包,旨在简化聊天机器人应用程序的开发。使用Hugchat,开发人员可以快速而轻松地创建智能的对话代理,以自然而引人入胜的方式与用户互动。
HuggingChat是一种免费的开源选项,可作为Chatgpt等商业聊天平台的替代选择。它利用了由OpenAssistant开发的Llama 30B SFT 6(OASST-SFT-6-LALAMA-30B)型号。尽管该模型在功能方面可能不与GPT-4相提并论,但它是一个具有引人入胜的培训背景的高度胜任的LLM,值得探索。
hugchat - HuggingChat Python API Leave a star |pypi.org
创建基本聊天机器人
在本节中,我们将使用Hugchat Python软件包创建一个基本的聊天机器人。
安装依赖项
使用以下命令安装hugchat软件包。
- 通过执行以下命令来创建和激活虚拟环境。
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
- 使用PIP安装Hugchat软件包。
pip install hugchat
设置身份验证
hugchat chatbot类需要一个cookie_path
参数来验证服务器。使用作者提供的以下步骤来创建cookies.json
文件。
- 安装Chrome或Firefox的cookie-editor扩展程序
- 去拥抱chat和登录
- 打开扩展
- 单击右下方的导出,然后作为JSON(将您的cookie保存到剪贴板上)导出)
- 创建一个cookies.json文件并将剪贴板内容粘贴到它。
创建应用程序
创建一个python文件basic.py
并向其添加以下代码。
from hugchat import hugchat
chatbot = hugchat.ChatBot(cookie_path="cookies.json")
id = chatbot.new_conversation()
chatbot.change_conversation(id)
print('Welcome to chatMATE')
print('\'q\' or \'quit\' to exit')
print('\'c\' or \'change\' to change conversation')
print('\'n\' or \'new\' to start a new conversation')
while True:
user_input = input('> ')
if user_input.lower() == '':
pass
elif user_input.lower() in ['q', 'quit']:
break
elif user_input.lower() in ['c', 'change']:
print('Choose a conversation to switch to:')
print(chatbot.get_conversation_list())
elif user_input.lower() in ['n', 'new']:
print('Clean slate!')
id = chatbot.new_conversation()
chatbot.change_conversation(id)
else:
print(chatbot.chat(user_input))
运行该应用程序
执行以下命令运行应用程序。
python basic.py
什么是简化的
简化是一个开源python库,简化了为数据科学和机器学习任务构建交互式Web应用程序的过程。它提供了一个用户友好的框架,用于创建和共享以数据为中心的应用程序,而无需广泛的Web开发知识。有了简化,开发人员可以快速原型和部署交互式仪表板,可视化和数据驱动的应用程序。
Streamlit * A faster way to build and share data apps | streamlit.io
- 使用以下命令安装简化
pip install streamlit
- 使用以下命令开始简化的基本Hello
streamlit hello
创建基本的简化应用
在本节中,我们将创建一个基本的精简应用。
安装依赖项
使用以下命令安装简化软件包。
- 通过执行以下命令来创建和激活虚拟环境。
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
- 使用PIP安装简化软件包。
pip install streamlit
创建应用程序
创建一个python文件greeting.py
并向其添加以下代码。
import streamlit as st
st.title("ChatMATE")
st.write("Your new virtual assistant")
name = st.text_input(label="",placeholder="Enter your name", max_chars=50)
if st.button('Submit'):
st.write('Hi ' + name + ". How can I assist you today ?")
有关输入控件和方法的更多信息,请查看以下简化文档参考。
Get started - Streamlit Docs | docs.streamlit.io
运行该应用程序
执行以下命令运行应用程序。
streamlit run greeting.py
您将获得下面的输出。
构建LLM动力聊天机器人
到目前为止,我们已经讨论了Hugchat软件包并简化了。在本届会议中,我们将构建一个聊天机器人,该聊天机器人可以使用免费的,开源的LLM型号openASSISTANT/OASST-SFT-6-LLAMA-30B-XOR从非官方的HuggingChat API(称为Hugchat and Sparlit)生成对用户输入的响应。
安装依赖项
使用以下命令安装hugchat和简化软件包。
- 通过执行以下命令来创建和激活虚拟环境。
python -m venv venv
source venv/bin/activate #for ubuntu
venv/Scripts/activate #for windows
- 使用PIP安装简化,简化 - 聊天,简化-Extras,hugchat软件包。
pip install streamlit streamlit-chat streamlit-extras hugchat
- 使用设置身份验证部分或使用现有
cookies.json
文件中提到的步骤生成cookies.json
文件。将cookies.json
文件放在app.py
所在的根文件夹中。 - 创建一个文件app.py,然后向其添加以下代码。
import streamlit as st
from streamlit_chat import message
from streamlit_extras.colored_header import colored_header
from streamlit_extras.add_vertical_space import add_vertical_space
from hugchat import hugchat
st.set_page_config(page_title="ChatMATE - Chat Multi-purpose AI Technology")
# Generate empty lists for bot_response and user_input.
## bot_response stores AI generated responses
if 'bot_response' not in st.session_state:
st.session_state['bot_response'] = ["I'm ChatMATE, How may I help you?"]
## user_input stores User's questions
if 'user_input' not in st.session_state:
st.session_state['user_input'] = ['Hi!']
# Layout of input/response containers
input_container = st.container()
colored_header(label='', description='', color_name='blue-30')
response_container = st.container()
# User input
## Function for taking user provided prompt as input
def get_input():
input_text = st.text_input("You: ", "", key="input")
return input_text
## Applying the user input box
with input_container:
user_input = get_input()
# Response output
## Function for taking user prompt as input followed by producing AI generated responses
def generate_response(prompt):
chatbot = hugchat.ChatBot(cookie_path="cookies.json")
response = chatbot.chat(prompt)
return response
## Conditional display of AI generated responses as a function of user provided prompts
with response_container:
if user_input:
response = generate_response(user_input)
st.session_state.user_input.append(user_input)
st.session_state.bot_response.append(response)
if st.session_state['bot_response']:
for i in range(len(st.session_state['bot_response'])):
message(st.session_state['user_input'][i], is_user=True, key=str(i) + '_user')
message(st.session_state['bot_response'][i], key=str(i))
了解代码:
- 导入先决条件Python库,例如
streamlit
和hugchat
。 - 使用
page_title
input参数在st.set_page_config
方法中命名。 - 通过提供启动消息来初始化聊天机器人,将数据保存在
bot_response
和user_input
状态中。 - 使用
st.container()
作为占位符创建一个常规应用程序布局,其中input_container
和response_container
变量分别对应于用户和聊天机器人。 -
get_input()
方法使用st.text_input()
从用户那里获取输入。 -
generate_response(prompt)
方法将用户输入作为参数,使用hugchat.ChatBot()
的huggingchat api生成响应。
运行该应用程序
执行以下命令运行应用程序。
streamlit run app.py
您将获得下面的输出,
那里有!您的第一个免费开源llm的聊天机器人:)
感谢您阅读本文。
感谢Gowri M Bhatt审查了内容。
如果您喜欢这篇文章,请单击“心脏”按钮 - 分享以帮助其他人找到它!
可以在此处找到本教程的完整源代码,
GitHub - codemaker2015/chatMATE: An LLM-powered ChatBot with HugChat and Streamlit | github.com
本文也可在Medium上找到。
这是一些有用的链接,