用Ballerina和OpenAI构建自己的电影推荐机器人
这篇文章是基于《天鹅湖芭蕾舞者》更新9.3 (2201.9.3)。
在一个无穷的流媒体选择让你比克里斯托弗·诺兰电影情节更犯愁的世界里,有一个个人助手推荐完美电影就像救命稻草(就像一个了解你口味的机器人)。有了芭蕾舞女士和OpenAI的GPT-4,您可以在眨眼间构建一个智能电影推荐机器人。在这篇文章中,我们将指导您创建一个结合了基于AI的聊天和精准电影建议的机器人,同时保持过程有趣和令人愉快。
为什么选择芭蕾舞者和OpenAI?
在我们探讨为什么芭蕾舞者和 OpenAI 是您需要的黄金搭档之前,让我们先设定一下场景。
OpenAI的GPT-4是一个非常多才多艺且强大的人工智能模型,提供引人入胜且人类化的文本。它非常适合用于创建具有引人入胜用户体验的对话式代理。
芭蕾舞者,另一方面,是您幕后的英雄。它是云原生的,集成就绪的编程语言,让连接到API变得轻而易举 —— 无需戏剧性的合成镜头。通过OpenAI聊天连接器,您可以轻松将GPT-4引入您的芭蕾舞者项目,为一个比Netflix更了解您电影偏好的机器人铺平道路。
灯光,摄像机,行动!
现在你已经看过了预告片,让我们来深入探讨主要内容——建立你自己的个性化电影推荐机器人。这款非常简单的机器人将与你聊天,询问你的心情,然后建议与之匹配的完美电影。所以,拿起你的键盘,让我们开始吧!
步骤1:设置您的环境
首先,让我们做好准备:
1. 安装Ballerina:如果您还没有,请从ballerina.io下载并安装Ballerina。
如果已经安装了Ballerina,请使用以下命令将其更新到最新版本。
bal dist update
2. 获取您的OpenAI API密钥: 如果您还没有OpenAI账户,请注册一个,并创建一个API密钥。(请参照本指南)
然后使用 bal new
步骤2: 导入OpenAI聊天连接器
接下来,在main.bal文件中,将OpenAI聊天连接器导入到您的Ballerina项目中。
import ballerinax/openai.chat;
您还需要io软件包来在终端读取/打印文本。
import ballerina/io;
步骤3:创建聊天客户端
现在,让我们来设置处理与OpenAI通信的客户端。
在此之前,如果您尚未创建Config.toml文件,请这样输入令牌。
token="sk-xxxxxxxx"
在代码中,您可以按照以下方式访问令牌:
configurable string token = ?;
接下来使用它创建一个新的客户端实例。
final chat:Client openAIChat = check new({
auth: {
token
}
});
第四步:构建电影推荐逻辑
这就是真正的操作所在。我们将创建一个函数,向GPT-4发送聊天请求,要求它根据用户的输入推荐一部电影。
public function getMovieRecommendation(string mood, chat:Client openAIChat) returns string|error? {
// Create a chat completion request with user mood.
chat:CreateChatCompletionRequest request = {
model: "gpt-4",
messages: [{
"role": "system",
"content": "You are a movie recommendation assistant.When Suggesting Give IMDB rating and a short discription about the movie"
}, {
"role": "user",
"content": "I'm in the mood for a " + mood + " movie. What should I watch?"
}]
};
// Send the request to GPT-4 and get the response.
chat:CreateChatCompletionResponse response = check openAIChat->/chat/completions.post(request);
return response.choices[0].message?.content;
}
在这里,“model”和“messages”参数是必需的。您可以在这里查看可供使用的模型类型。消息具有角色。例如,具有系统角色的消息定义了响应的行为或样式,而具有用户角色的消息代表用户的输入。
在openAI聊天API文档中,您可以找到许多可供您试验的可选参数。
第五步:运行您的机器人
随着一切准备就绪,现在是表演时间!您将询问用户他们的心情,将其输入到推荐功能中,并让GPT-4发挥其魔力。
public function main() returns error? {
string mood = io:readln("What's your mood today? (e.g., happy, action-packed, relaxed)");
string response = check getMovieRecommendation(mood);
io:println("You should watch: ", response);
}
只需使用 bal run 命令运行你的芭蕾舞者应用程序,你个性化的电影推荐机器人将会在你说出"爆米花准备好!"之前更快地启动和运行。
完整代碼:
import ballerinax/openai.chat;
import ballerina/io;
configurable string token = ?;
public function main() returns error? {
chat:Client openAIChat = check new({
auth: {
token
}
});
string mood = io:readln("What's your mood today? (e.g., happy, action-packed, relaxed)");
string response = check getMovieRecommendation(mood, openAIChat);
io:println("You should watch: ", response);
}
public function getMovieRecommendation(string mood, chat:Client openAIChat) returns string|error? {
// Create a chat completion request with user mood.
chat:CreateChatCompletionRequest request = {
model: "gpt-4",
messages: [{
"role": "system",
"content": "You are a movie recommendation assistant.When Suggesting Give IMDB rating and a short discription about the movie"
}, {
"role": "user",
"content": "I'm in the mood for a " + mood + " movie. What should I watch?"
}]
};
// Send the request to GPT-4 and get the response.
chat:CreateChatCompletionResponse response = check openAIChat->/chat/completions.post(request);
return response.choices[0].message?.content;
}
准备好进行导演剪辑了吗?🎬:调整您的机器人,使其完美匹配您的电影口味
使用芭蕾舞者连接器进行openAI微调功能,调整您的模型以符合您的口味。
你需要使用你看过的电影来训练模型。这样,你的机器人将了解你的喜好,并根据你的最爱做出个性化推荐。查看这个指南,了解如何调整你的模型,并获得量身定制的电影建议!
在这里找到更多使用ballerina openAI聊天连接器制作的示例。
参与其中
- 访问OpenAI Chat包以获取更多详细信息。
- 查看我们在“例子中的芭蕾舞者”的示例。
- 通过我们的Discord服务器与我们进行实时聊天。
- 在Stack Overflow上用#ballerina标签发布所有技术问题。