使用Chainlit库和OpenAI模型的聊天机器人应用程序
在这篇文章中,我们将看看如何使用 chainlit 库在不到 30 行代码中编写一个基于简单 OpenAI 模型的聊天机器人 Web 应用程序。
Chainlit是一个流行的框架,简化了构建对话人工智能应用程序的过程。它提供了多种功能和挂钩,可以创建定制的聊天界面,同时与OpenAI和其他几种语言模型集成在一起。
在本文中,我将演示如何使用chainlit和OpenAI GPT模型创建一个简单的问答应用程序。
先决条件
为了跟上进度,请确保你已经准备好了:
- 在您的计算机上安装Python。
- 一个OpenAI的API密钥。
- 安装链结包,可以通过以下方式实现:
pip install chainlit
确保将您的OpenAI API密钥存储在.env文件中或使用环境变量:
OPENAI_API_KEY=your-openai-api-key
这是应用程序的代码:
from openai import OpenAI
import os
import chainlit as cl
from dotenv import load_dotenv
load_dotenv()
openai_api_key = os.getenv("OPENAI_API_KEY")
client = OpenAI(api_key=openai_api_key)
def get_openai_response(prompt):
response = client.chat.completions.create(model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt}
],
max_tokens=100,
temperature=0.7)
return response.choices[0].message.content.strip()
@cl.on_message
async def main(message):
try:
# Get the response from OpenAI
response = get_openai_response(message.content)
# Send the response back to the user
await cl.Message(content=response).send()
except Exception as e:
await cl.Message(content=f"An error occurred: {str(e)}").send()
让我们看看这段代码做了什么:
• 我们导入 openai 用于与 OpenAI 的 GPT 模型交互,同时也导入 chainlit 来管理对话流程。
• get_openai_response()函数向OpenAI的GPT发送提示并检索响应。
• @cl.on_message装饰器定义了主逻辑,每当用户发送消息时运行该逻辑。它会处理用户的输入并使用chainlit的cl.Message(...).send()返回一个响应。
运行该应用程序:
chainlit run main.py -w
-w标志启用实时重新加载,这意味着服务器将在您对代码进行更改时重新启动。
一旦应用程序正在运行,您可以通过chainlit网页界面与之交互,用户可以提出问题,应用程序将使用OpenAI模型进行响应。
使用chainlit,您可以相对快速地构建由OpenAI的语言模型驱动的对话应用程序。这篇文章只涵盖了基础知识。在进一步的文章中,您将能够探索更多功能,例如多用户支持,存储历史记录,集成外部API以进一步丰富用户体验等等。