使用 Azure OpenAI 创建一个聊天机器人

由于众所周知的原因,国内是没法直接调用 OpenAI 接口的。幸好可以白嫖 Cloudfare Workers、Vercel 等免费服务做 API 代理,我之前一直是这么用的,速度也还可以。

前两天申请的微软的 Azure OpenAI 接口通过了,立即体验了一下。它的流式响应速度比用 Cloudfare Worders 代理 OpenAI 官方接口快多了。你可以在我的这个小程序上体验一番:

EazAI智能助手

下面我将演示如何开通 Azure OpenAI 服务,以及如何使用 C# 调用 Azure OpenAI 接口创建一个 Console 应用程序并实现聊天机器人功能。

1开通 Azure OpenAI 服务

要开通 Azure OpenAI 服务,前提是你得有一个国际信用卡(比如 Visa 或 MasterCard),然后在 Azure 国际版(azure.com)注册一个账号。如果你不是微软 MVP,最好用公司邮箱注册,否则无法申请开通 OpenAI 服务。第一次注册并成功绑卡后,还有200美金的免费额度哦。

完成账号注册和绑卡后,在“创建资源”里找到 OpenAI 服务,根据提示点击下面这个链接填写申请表单:

f2652900057acebb3c17c54550753608.png

或者直接访问这个链接:

https://aka.ms/oai/access

表单说明了 Azure OpenAI 服务目前只对企业或 MVP 开放,所以如果你不是 MVP 需要用公司的邮箱申请,个人 Gmail 或 Outlook 等邮箱都会被直接拒绝。

2c873a2c593edd42870ac2439c12284a.png

表单中涉及到公司信息部分,最好如实填写,不然也很可能被拒。填写完提交后,一般两个工作日内就会收到邮件通知。

2创建 Azure OpenAI 服务

当你的申请通过后,就可以到 Azure 上创建 OpenAI 服务了。点击“创建资源”,搜索找到“OpenAI”:

4d08d690820454b3634b847dd1e261b3.png

点击进入,填写这一页的信息:

5fede0ff3abd687a073c936e7db8db7e.png

然后一直下一步就可以完成创建了。

服务创建好以后,还要部署一个 ChatGPT 模型。在你创建好的 OpenAI 服务中,依次点击“模型部署”-“创建”,在弹出的对话框中填写模型名称,选择 gpt-35-turbo 模型:

3ddc6b634af852cd02715539509de23b.png

再到“密钥和终点”复制保存 API 要用的密钥和终结点:

970f76660b48cc87cc321bc6f8d831c3.png

3创建 Console 聊天应用程序

使用 .NET 的 CLI 命令行工具或通过 IDE 创建一个 Console 应用程序:

dotnet new console -o ChatConsole
cd ChatConsole

安装两个需要用到的 Nuget 包:

dotnet add package Microsoft.Extensions.Configuration.UserSecrets
dotnet add package Azure.AI.OpenAI --prerelease

第一个包是用来管理本地密钥的,请不要直接在代码中填写密码。第二个包是 Azure 官方的 OpenAI API 库,目前只有预览版。

安装好后,通过 user-secrets 添加好下面三个配置,分别是上面创建好的终结点、密钥和模型名称:

dotnet user-secrets init
dotnet user-secrets set Azure:OpenAI:Endpoint [YOUR_AZURE_OPENAI_ENDPOINT]
dotnet user-secrets set Azure:OpenAI:ApiKey [YOUR_AZURE_OPENAI_APIKEY]
dotnet user-secrets set Azure:OpenAI:ModelName [YOUR_MODEL_DEPLOYMENT]

实现聊天功能有两种方式。一种是非流式响应,即一次性返回所有文字;另一种是流式响应,即一个字或几个字地返回,是最常用的方式。流式响应的好处是第一时间响应用户请求,在用户阅读的同时逐渐响应后面的内容,体验更佳。这两种方式的实现,请参考 Azure OpenAI API 文档:

https://learn.microsoft.com/en-us/azure/cognitive-services/openai/chatgpt-quickstart

下面以流式响应为例,实现一个 Console 版本的聊天机器人。编辑 Program.cs 文件,完整参考代码如下:

using Azure;
using Azure.AI.OpenAI;
using Microsoft.Extensions.Configuration;
using System.Text;Console.OutputEncoding = Encoding.UTF8;var configuration = new ConfigurationBuilder().AddUserSecrets<Program>().Build();var apiKey = configuration["Azure:OpenAI:ApiKey"];
var endpoint = configuration["Azure:OpenAI:Endpoint"];
var modelName = configuration["Azure:OpenAI:ModelName"];var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(apiKey));var completionsOptions = new ChatCompletionsOptions
{Messages ={new ChatMessage(ChatRole.System, "你是一个温柔的女生,擅长用理性的语言鼓励和引导人,对情绪低落的人进行劝慰。温柔一点,口语化一些。"),new ChatMessage(ChatRole.User, "你好"),}
};while (true)
{Console.WriteLine();Console.Write("她: ");var completionsResponse = await client.GetChatCompletionsStreamingAsync(modelName,completionsOptions);var resonseText = new StringBuilder();await foreach (var choice in completionsResponse.Value.GetChoicesStreaming()){await foreach (var message in choice.GetMessageStreaming()){resonseText.Append(message.Content);Console.Write(message.Content);await Task.Delay(TimeSpan.FromMilliseconds(100));}}completionsOptions.Messages.Add(new ChatMessage(ChatRole.Assistant, resonseText.ToString()));Console.WriteLine();Console.WriteLine();Console.Write("我: ");var userMessage = Console.ReadLine();completionsOptions.Messages.Add(new ChatMessage(ChatRole.User, userMessage));
}

由于 Azure OpenAI 的响应速度非常快,为了模拟打字效果特意加了一点延迟。使用 dot run 运行效果如下:

4总结

本文介绍了如何使用 Azure OpenAI 和 C# 创建聊天机器人。由于国内无法直接访问 OpenAI 接口,但可以通过 Cloudfare Workers 等做代理,但使用微软的 Azure OpenAI 服务可以有更快的响应体验。我介绍了如何在 Azure 中注册和创建 Azure OpenAI 服务,以及如何在服务中部署 ChatGPT 模型。接着,我演示了如何使用 .NET CLI 创建控制台应用程序,并添加相关配置。最后,我使用 C# 代码演示如何调用 Azure OpenAI 接口实现一个 Console 聊天机器人。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/9225.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023被裁三个月,海投一个月,从JAVA转战Android的求职之路!

前言 看到这个标题的童鞋&#xff0c;可能会想是Java开发不景气了吗&#xff1f;还是Android开发雄起了&#xff1f; 我是2019年6月份毕业&#xff0c;第一份工作是做JAVA开发。2023年3月初&#xff0c;我被公司优化掉了&#xff0c;从零开始&#xff0c;在家自学了两个月的A…

马斯克离开OpenAI内幕:大权独揽想法被拒,说好的10亿美元也打了水漂...

点击下方卡片&#xff0c;关注“CVer”公众号 AI/CV重磅干货&#xff0c;第一时间送达 点击进入—>【计算机视觉】微信技术交流群 作者&#xff1a;Reed Albergotti 转载自&#xff1a;机器之心 | 编辑&#xff1a;王楷 作为创始投资人&#xff0c;马斯克为什么和 OpenAI「反…

马斯克离开OpenAI内幕:大权独揽想法被拒,说好的10亿美元也打了水漂

选自semafor 作者&#xff1a;Reed Albergotti 机器之心编译 编辑&#xff1a;王楷 作为创始投资人&#xff0c;马斯克为什么和 OpenAI「反目成仇」&#xff1f; 在 OpenAI 成立三年之后&#xff0c;埃隆・马斯克准备放弃他扶持创立的这家人工智能研究公司。 OpenAI 于 2015 年…

【Prompting】ChatGPT Prompt Engineering开发指南(3)

ChatGPT Prompt Engineering开发指南3 总结文字使用单词/句子/字符限制进行总结以运输和交付为重点进行总结以价格和价值为重点进行总结 尝试“extract”而不是“summarize”总结多个产品评论内容来源 本文承接上文&#xff1a;ChatGPT Prompt Engineering开发指南2&#xff0c…

巴比特 | 元宇宙每日必读:承认ChatGPT正损害公司业务增长,美国知名在线教育公司股价一日腰斩,带崩欧美教育股...

摘要&#xff1a;据华尔街见闻报道&#xff0c;近日&#xff0c;美国知名在线教育公司Chegg的首席执行官Dan Rosenweig在财报电话会议上承认&#xff0c;ChatGPT正在损害其业务增长&#xff1a;“自3月份以来&#xff0c;我们发现学生对ChatGPT的兴趣显著上升。我们现在认为&am…

马斯克离开OpenAI内幕:大权独揽想法被拒

Datawhale干货 选自&#xff1a;Semafor&#xff0c;编译&#xff1a;机器之心 作为创始投资人&#xff0c;马斯克为什么和 OpenAI「反目成仇」&#xff1f; 在 OpenAI 成立三年之后&#xff0c;埃隆・马斯克准备放弃他扶持创立的这家人工智能研究公司。 OpenAI 于 2015 年成立…

纽约大学教授建议:ChatGPT时代下,请躺平!

文&#xff5c;小戏 二月以来一波一波的 ChatGPT 和 GPT-4 刷屏&#xff0c;从围城外面来看整个 AI 社区确实一片勃勃生机万物竞发&#xff0c;CNN、纽约客又一次开始讨论人工智能危机&#xff0c;公众号里“ChGPT时代&#xff0c;我们该如何如何”的文章也轻松拿到十万&#x…

想要自己的专属 AI 猫娘助理?教你使用 CPU 本地安装部署运行 ChatGLM-6B实现

今天介绍的ChatGLM-6B 是一个清华开源的、支持中英双语的对话语言模型,基于GLM架构,具有62亿参数。关键的是结合模型量化技术,ChatGLM-6B可以本地安装部署运行在消费级的显卡上做模型的推理和训练(全量仅需14GB显存,INT4 量化级别下最低只需 6GB 显存)虽然智商比不过 ope…

Tomcat:127.0.0.1拒绝了我们的连接请求(half)

参考文章 //结束进程(没有成功) https://blog.csdn.net/m0_64476167/article/details/125801810修改端口号(可以解决) https://blog.csdn.net/qq_56240927/article/details/124111532?ops_request_misc&request_id&biz_id102&utm_term%E9%85%8D%E7%BD%AE%E5%A5…

Java面试之孔乙己拒止攻略(2)——MYSQL篇

一、前言 其实&#xff0c;我们做的大多数系统都是数据库应用系统&#xff0c;up主的大学专业也是这个。对于这部分知识&#xff0c;确实有掌握的必要。然而&#xff0c;实际上这部分知识并不困难&#xff0c;大部分知识点看一眼就会了。 本篇打算包括以下几个方面&#xff1a…

Rocky和ChatGPT谈笑风生的日子 |【AI行研商业价值分析】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【AI行研&商业价值分析】栏目专注于分享AI行业中最新热点/风口的思考与判断。也欢迎大家提出宝贵的意见或优化ideas&#xff0c;一起交流学习&#x1f4aa; 大家好&#xff0c;我是Rocky。 近日&#xff0c;ChatGPT风光无…

Github每日精选(第97期): 类似ChatGPT 的开源AI 聊天ChatRWKV

ChatRWKV 类似于 ChatGPT&#xff0c;但由 RWKV&#xff08;100% RNN&#xff09;语言模型提供支持&#xff0c;并且是开源的。 github地址 ChatRWKV 类似于 ChatGPT&#xff0c;但由我的 RWKV&#xff08;100% RNN&#xff09;语言模型提供支持&#xff0c;这是目前唯一可以在…

揭秘 ChatGPT 背后的技术栈:将Kubernetes扩展到2500个节点

揭秘 ChatGPT 背后的技术栈&#xff1a;将Kubernetes扩展到2500个节点 etcdKube mastersDocker image 推送NetworkingARP cache 在本文中&#xff0c;OpenAI 的工程师团队分享了他们在 Kubernetes 集群扩展过程中遇到的各种挑战和解决方案&#xff0c;以及他们取得的性能和效果…

半天就行!教你用ChatGPT开发小程序;谁能做出中国的Discord?LangChain中文入门教程;一个周末搞定电影预告片的AI工作流 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 『Discord和它的中国「学徒」们』为什么还没有人跑出来&#xff1f; ShowMeAI知识星球资料分类「下资料」&#xff0c;编号「R080」 D…

2023最新ChatGPT3.0小程序/云开发无需服务器开源Vue自带API接口

正文: ChatGPT3.0小程序&#xff0c;云开发无需服务器开源vue自带接口&#xff0c;界面的UI也是比较还原官方的了&#xff0c;就连颜色都是一摸一样的&#xff0c;有兴趣的自行去安装体验吧&#xff0c;其它就没什么好介绍的了。 程序: wwxgus.lanzoum.com/iLfKe0otvx5i 图片:

2023 首发 ChatGPTv3.0多端小程序开源源码 云开发无需服务器 带接口

云开发无需服务器开源vue自带接口&#xff01; 全开源vue 自带接口 上传即可使用&#xff01; 无需服务器 后续会更新流量主版本&#xff01; 。。。。

2023最新VUE开发的ChatGPT3.5全开源小程序源码+功能强大/UI也不错

正文: 所需环境 uniapp nodejs 搭建教学 首先前端源码下载下来&#xff0c;用idea源码编辑器打开,只需要修改配置文件中的请求api&#xff08;request/request.js&#xff09;&#xff0c;需要搭建好后端请求 1.服务器配置 centos7.9 2.宝塔面板安装宝塔 3.如果在线下载…

获取了文心一言的内测及与其ChatGPT、GPT-4 对比结果

百度在3月16日召开了关于文心一言&#xff08;知识增强大语言模型&#xff09;的发布会&#xff0c;但是会上并没现场展示demo。如果要测试的文心一言 也要获取邀请码&#xff0c;才能进行测试的。 我这边通过预约得到了邀请码&#xff0c;大概是在3月17日晚就收到了&#xff…

搭建人工智能wx机器人完整版教程

参考搭建流程 首先需要下载Ubuntu 20.04 镜像包 阿里云开源镜像包 下载方式&#xff1a; 打开以上网站-->点击20.04/-->点击ubuntu-20.04.5-live-server-amd64.iso下载 项目开源地址 https://github.com/zhayujie/chatgpt-on-wechat NxShell下载地址 https://xiaodao.lan…

【微信小程序】微信小程序的接口调入 获取太阳码 根据返回值的类型进行接收,微信接口可能直接返回图片,也可能返回一个错误信息的json,同时兼容处理这两种情况

目录 事件起因环境和工具操作过程解决办法遇到的一点问题结束语 事件起因 在开发一个关于微信小程序的过程中&#xff0c;有一个这样的需求&#xff0c;要求生成微信小程序的太阳码&#xff0c;然而这个东西的请求方式我们是这样的&#xff1a;我作为后端服务去请求这个太阳码…