使用python快速开发各种聊天机器人应用

发布时间:2023年12月26日

Panel是一个开源的Python库,它可以让你用Python轻松地构建强大的工具、仪表盘和复杂的应用程序。它有一个“包含电池”的哲学,把PyData生态系统、强大的数据表格和更多的东西都放在你的手中。高级的反应式API和低级的回调式API确保你可以快速地构建探索性应用程序,但是如果你构建了复杂、多页面的应用程序,具有丰富交互性,你也不会受到限制。Panel是HoloViz生态系统的成员,它是一个连接数据探索工具的生态系统入口。

今天我们来利用Panel的Chat模块来快速开发基于各种大模型的聊天机器人:

一、环境配置

我们需要安装如下python包:

pip install panel
pip install openai
pip install google-generativeai
pip install langchain

二、创建ChatGPT聊天机器人?

这里我们首先创建一个?chatgpt_bot.py的python文件:

# chatgpt_bot.py

import panel as pn
from openai import AsyncOpenAI

pn.extension()

async def callback(contents: str, user: str, instance: pn.chat.ChatInterface):
    response = await aclient.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": contents}],
        stream=True,
    )
    message = ""
    async for chunk in response:
        part = chunk.choices[0].delta.content
        if part is not None:
            message += part
            yield message

#你自己的api_key
my_api_key="your_api_key"

aclient = AsyncOpenAI(api_key=my_api_key)

chat_interface = pn.chat.ChatInterface(callback=callback, 
                                       callback_user="ChatGPT")
chat_interface.send(
    "你好,我是无所不知的ChatGPT机器人,欢迎像我提问!",
    user="System", 
    respond=False
)
chat_interface.servable()

这里我们使用了panel的ChatInterface组件,它可以快速开发出一个功能强调的,基于web的聊天机器人程序。

三、创建谷歌Gemini聊天机器人

我们需要创建一个gemini_bot.py的python文件:

#gemini_bot.py

import google.generativeai as genai
import panel as pn

genai.configure(api_key='your_api_key',#你自己的api_key
                transport='rest')
model = genai.GenerativeModel('gemini-pro')
pn.extension()

async def callback(contents: str, user: str, instance: pn.chat.ChatInterface):
    response = model.generate_content(contents,stream=True)
    message = ""
    for chunk in response:
        message += chunk.text
        yield message

chat_interface = pn.chat.ChatInterface(callback=callback, 
                                       callback_user="Gemini")
chat_interface.send(
    "你好,我是谷歌Gemini机器人,我比ChatGPT更牛,欢迎向我提问!", 
    user="System", respond=False
)

chat_interface.servable()

四、创建Langchain聊天机器人

Langchain聊天机器人具有记忆能力。同样我们创建一个langchain_bot.py的python文件:

# langchain_bot.py

import os
import panel as pn
from langchain.chat_models import ChatOpenAI
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory

pn.extension()
#这里使用openai的api_key
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

async def callback(contents: str, user: str, instance: pn.chat.ChatInterface):
    await chain.apredict(input=contents)

chat_interface = pn.chat.ChatInterface(callback=callback, 
                                       callback_user="ChatGPT")

callback_handler = pn.chat.langchain.PanelCallbackHandler(chat_interface)

llm = ChatOpenAI(streaming=True, callbacks=[callback_handler])

memory = ConversationBufferMemory()
chain = ConversationChain(llm=llm, memory=memory)

chat_interface.send(
    "你好,我是Langchain的ChatGPT机器人,欢迎向我提问!", 
    user="System", respond=False
)
chat_interface.servable()

五、执行聊天机器人

我们只需在命令行窗口中执行其中任意一个机器人程序即可:

  • panel serve chatgpt_bot.py
  • panel serve gemini_bot.py
  • panel serve langchain_bot.py

?

六、聊天效果?

下面我们在浏览器中访问机器人的地址,而已分别访问ChatGPT,Gemini,Langchain的机器人:

Chatgpt的聊天机器人:

?Gemini的聊天机器人:

langchain的聊天机器人:

总结

Panel是一个开源的Python库,它可以让你用Python轻松地构建强大的工具、其中包括聊天机器人程序,今天我们使用panel快速开发了ChatGPT,Gemini,Langchain的聊天机器人应用。通过使用使用panel库,我们可以开发出功能强大界面美观的web机器人程序。

文章来源:https://blog.csdn.net/weixin_42608414/article/details/135224714
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。