- A+
ChatGPT是什么?
先了解GTP,摘自官网的一段话“A set of models that can understand and generate natural language”,其实,就是一个自然语言处理的模型。所以ChatGPT顾名思义就是基于GPT3的一个聊天AI。
但是想让他做苦力帮忙写代码的话所需要的其实不是这个模型,而是Codex这个模型,按照官网所说“Most capable Codex model. Particularly good at translating natural language to code. In addition to completing code, also supports inserting completions within code.”。真的是碉堡了!
准备
第一步:注册OpenAI账号
因为对大陆以及中国香港地区不开放,所以我们需要小小的科学一下。
ChatGPT独享账号,无需注册直接登陆,内含18美元,永久使用,获取链接:
https://item.taobao.com/item.htm?ft=t&id=702628447173
注意点:如果搭建了科学还是提示不对你的国家提供服务的话,尝试清空浏览器缓存或者打开浏览器的无痕窗口。
Chrome默认在右上角三个点打开就能找到“打开新的无痕式窗口”。
万事具备,直接撸代码
1、网页获取所需token和cookie
我们需要三个东西:UserAgent,CfClearance,Session_token
我们需要先打开ChatGPT官方网站:https://chat.openai.com/chat 然后按下F12打开浏览器的开发者模式 UserAgent在网络里(只需要复制UserAgent:后面的值):
CfClearance和Session_token在应用程序->cookie里面
2、创建一个session用来表示一个会话
public OpenAISession(string session_token,string cfClearance,string userAgent)
{
Session_token = session_token;
CfClearance = cfClearance;
UserAgent = userAgent;
Headers = new Dictionary<string, string>();
Cookies = new Dictionary<string, string>();
Proxies = new Dictionary<string, string>();
}
Session可以刷新自己的AccessToken和Session_token
public async Task RefreshSessionAsync()
{
if (string.IsNullOrEmpty(Session_token))
{
throw new Exception("No tokens provided");
}
// Set cookies
Cookies.Put("__Secure-next-auth.session-token", Session_token);
Cookies.Put("cf_clearance", CfClearance);
string cookiesString = GetCookiesString();
Dictionary<string, string> map = new Dictionary<string, string>();
Headers.Put("User-Agent", UserAgent);
Headers.Put("cookie", cookiesString);
Headers.Put("Cookie", cookiesString);
var response = await GetAsync("https://chat.openai.com/api/auth/session");
if (!response.IsSuccessStatusCode)
{
Console.WriteLine("err code: " + response.StatusCode);
Console.WriteLine("cf_clearance: " + CfClearance);
Console.WriteLine("token: " + Session_token);
Console.WriteLine("userAgent: " + UserAgent);
Console.WriteLine("请检查以上参数是否正确,是否过期。");
throw new Exception("无法获取token!请重试");
}
try
{
string name = "__Secure-next-auth.session-token=";
var cookies = response.Headers.GetValues("Set-Cookie");
var stoken = cookies.FirstOrDefault(x => x.StartsWith(name));
Session_token = stoken == null ? Session_token : stoken.Substring(name.Length, stoken.IndexOf(";") - name.Length);
Cookies.Put("__Secure-next-auth.session-token", Session_token);
var result = await response.Content.ReadAsStringAsync();
AccessToken = JsonSerializer.Deserialize<Profile>(result, _jsonSerializerOptions)?.AccessToken;
RefreshHeaders();
}
catch (Exception ex)
{
Console.WriteLine($"Error {nameof(RefreshSessionAsync)}:{ex}");
throw new Exception($"Error {nameof(RefreshSessionAsync)}", ex);
}
}
获取到的最新的AccessToken更新到header里,Session_token更新到cookie里
private void RefreshHeaders()
{
Headers.Put("Host", "chat.openai.com");
Headers.Put("Accept", "text/event-stream");
Headers.Put("Authorization", $"Bearer {AccessToken}");
Headers.Put("User-Agent", UserAgent);
Headers.Put("X-Openai-Assistant-App-Id", string.Empty);
Headers.Put("Connection", "close");
Headers.Put("Accept-Language", "en-US,en;q=0.9");
Headers.Put("Referer", "https://chat.openai.com/chat");
}
string name = "__Secure-next-auth.session-token=";
var cookies = response.Headers.GetValues("Set-Cookie");
var stoken = cookies.FirstOrDefault(x => x.StartsWith(name));
Session_token = stoken == null ? Session_token : stoken.Substring(name.Length, stoken.IndexOf(";") - name.Length);
Cookies.Put("__Secure-next-auth.session-token", Session_token);
3、创建机器人绑定一个会话
public Chatbot(OpenAISession openAISession)
{
OpenAISession = openAISession;
ResetConversation();
}
/// <summary>
/// 重置Conversation,开启一个新的会话
/// </summary>
public void ResetConversation()
{
_conversationId = null;
_parentMessageId = Guid.NewGuid().ToString();
}
如何保持上下文聊天以及多用户隔离?
上下文聊天已经内置,会自动与机器人的回复进行关联,当需要重新开启一个对话的时候,可以调用ResetConversation,这样对应的机器人对象发过去就是开启了一个新的对话。
如何多用户隔离?比如联合微信机器人使用,可以将一个人或者一个群对应一个Chatbot对象,并且利用id与机器人做关联。
当然这个_clientID需要使用者做唯一性管理
//可以作为隔离不同客户端聊天上下文的凭据,即一个机器人绑定一个客户端
//客户端编号可以是,微信id,qq id,飞书id,亦或者自己开发的软件的用户id
private readonly string _clientID;
public Chatbot(OpenAISession openAISession, string clientID)
{
OpenAISession = openAISession;
_clientID = clientID == null ? Guid.NewGuid().ToString() : clientID;
ResetConversation();
}
最后构造对话对象,发送到对应api
public async Task<Reply> GetChatReplyAsync(string prompt)
{
var conversation = new Conversation();
conversation.Conversation_id = _conversationId;
conversation.Parent_message_id = _parentMessageId;
conversation.Messages = new Message[]
{
new Message()
{
Content = new Content
{
Parts = new string []{ prompt }
}
}
};
return await GetChatResponseAsync(conversation);
}
/// <summary>
/// 获取响应
/// </summary>
/// <param name="conversation"></param>
/// <returns></returns>
/// <exception cref="Exception">服务器返回非200</exception>
private async Task<Reply> GetChatResponseAsync(Conversation conversation)
{
using (var client = new HttpClient())
{
var response = await OpenAISession.PostAsync(_conversation, JsonSerializer.Serialize(conversation, _jsonSerializerOptions));
if (!response.IsSuccessStatusCode)
{
throw new Exception($"Faild to request.StatusCode:{response.StatusCode}");
}
var msg = await response.Content.ReadAsStringAsync();
var data = msg.Split("\n")?.ToList().Where(x => !string.IsNullOrEmpty(x) && !x.Contains("data: [DONE]")).LastOrDefault()?.Substring(5);
var reply = JsonSerializer.Deserialize<Reply>(data, _jsonSerializerOptions);
_conversationId = reply.Conversation_id;
return reply;
}
}
效果截图(仅测试)
OpenAISession openAIOptions = new OpenAISession(Session_token, CfClearance, UserAgent);
await openAIOptions.RefreshSessionAsync();
Chatbot chatbot = new Chatbot(openAIOptions);
Console.WriteLine("用c++写个冒泡查询");
var reply = await chatbot.GetChatReplyAsync("用c++写个冒泡查询");
Console.WriteLine(reply.Message.Content.Parts.FirstOrDefault());
源码(欢迎star)
https://github.com/BruceQiu1996/NChatGPTRev
本文是全系列中第6 / 156篇:chatGPT
- chatgpt是什么?可以提供哪些服务,用户该怎样使用chatgpt(附Chat GPT注册教程)
- ChatGPT:本地环境搭建chatgpt、调试运行、接口API调用
- 在微信上搭建ChatGpt机器人
- 微信接入ChatGPT,使用Node+ChatGPT+Wechaty做一个微信机器人
- ChatGPT版微信个人号搭建流程
- 做了第一个ChatGPT .NET API聊天库
- 当大厂程序员已开始用AI写代码 人类会被AIGC淘汰吗?
- 【基于OpenAI的ChatGPT】搭建属于自己的微信聊天机器人(附带注册英国手机号码方式)
- 基于ChatGPT的微信聊天机器人
- 使用OpenGPT(ChatGPT)搭建 QQ 机器人
- chatgpt对接微信全流程
- 2023最新的Chatgpt微信机器人搭建教程【附免注册chatgpt账号】
- centos8下搭建chatgpt本地环境集成到微信中,接入个人微信操作教程
- centos8下搭建chatgpt本地环境集成到微信中,接入个人微信操作过程报错故障处理
- centos8下搭建chatgpt本地环境集成到微信中,接入个人微信操作过程报错故障处理【后续更新附加】
- 砸下677亿,微软盯上ChatGPT
- 他做了一个「ChatGPT 杀手」,a16z 抢着投
- ChatGPT:是平台的缪斯还是黑客的「MOSS」?
- 我用 ChatGPT 搞钱,月赚 10 万
- 一文读懂:有关ChatGPT的十个问题
- ChatGPT 创始人和他疯狂的 Worldcoin 实验
- ChatGPT爆火的冷思考:盈利难题与治理挑战
- 开局打爆谷歌,微软ChatGPT版必应亲测:强到发指!
- 八张数据图完整了解ChatGPT行业影响全景
- 昂贵的ChatGPT背后,国产GPU“掘金”路漫漫
- 观点:不要神化ChatGPT
- 别煽动焦虑了,ChatGPT还抢不动打工人的饭碗
- 最快月活过亿,但ChatGPT或终将被开源打败
- 朱嘉明:智能数字新时代,关于AIGC的13个关键问题
- 算力才是ChatGPT核心竞争力?AI芯片被推至聚光灯下
- 中美“狂飙”ChatGPT,一文读懂超20家科技巨头最新布局
- 阿里版ChatGPT已进入测试!中文聊天截图曝光,达摩院出品
- 生成式AI狂飙,中国版ChatGPT还有多远?
- 只见ChatGPT笑,不见元宇宙哭
- 谷歌版ChatGPT灾难级发布,市值一夜狂跌7000亿,熬夜网友:退钱!
- 谷歌“仓促”迎接 AI 大战,机器人 Bard“掉链子”股价大跌
- 10个实用的 ChatGPT 免费扩展!
- ChatGPT爆红,AI大规模商用离我们还有多远?
- ChatGPT火了,区块链和元宇宙没人提了?
- 「用ChatGPT搞钱年入百万!」各路博主发布生财之道,网友回呛:答辩的搬运工
- 颠覆历史!「ChatGPT搜索引擎」发布,微软市值一夜飙涨5450亿
- 中国版ChatGPT项目“文心一言”将于3月面世,百度能否趁势“狂飙”?
- 同一个问题被问100遍,被“封神”的ChatGPT终于穿帮了
- AI搜索大战打响!微软官宣ChatGPT引入Bing 生成式AI能否帮助巨头走出泥潭?
- ChatGPT引爆新一轮科技军备赛
- 微软“核弹级”更新:ChatGPT亮相Bing搜索和浏览器,今天上线,免费使用
- 卖账号、赚打赏,他们用 ChatGPT 搞钱
- 盖茨再谈ChatGPT:AI能提高效率,但要考虑边界在哪
- OpenAI给科技行业敲响警钟,中国必须要有自主“大模型”
- 谷歌亲自下场,AI大战正式打响!
- 当你还在讨论分析ChatGPT,有人开始用它“搞钱”了
- ChatGPT杀疯了,两个月引爆千亿美金新赛道
- 谷歌慌了,超20亿投资ChatGPT竞品Anthropic对抗微软
- 狂飙的ChatGPT,为什么是OpenAI最先做出来?
- 欧盟委员会对 ChatGPT 的最新监管方向
- 小冰CEO李笛:“按ChatGPT模式做AI,我们一天成本要3亿”
- 国产ChatGPT扎堆,又是一场元宇宙式狂欢?
- ChatGPT开始被“疯狂吐槽”了
- 私募如何玩转ChatGPT?
- ChatGPT爆红、元宇宙过气:科技巨头为何总是喜新厌旧?
- 大厂火拼ChatGPT
- 麦肯锡:ChatGPT 等生成式 AI 技术将如何改变企业?
- ChatGPT 两个月引爆万亿新赛道,国内外有哪些 AI 玩家能突出重围?
- ChatGPT热度再升级,AIGC的投资人开始关注“文生图”了
- AIGC应用持续升温,将给普通人生活带来哪些改变?
- ChatGPT持续“高烧”,再走一遍元宇宙的老路
- 第一批因ChatGPT坐牢的人,已经上路了
- 给担心被ChatGPT取代的人:2023年我们必须学习的人工智能技能
- ChatGPT“狂飙”:风浪越大,鱼越贵
- 为了 ChatGPT,微软抛弃元宇宙?
- ChatGPT成科技圈的“新贵”,谁还记得元宇宙?
- ChatGPT反噬百度
- 给数字人装上ChatGPT ?多家公司这样回应
- 教程:如何创建一个 AI 元宇宙化身
- 不只是聊天机器人:一文梳理 ChatGPT 带来的真正影响
- 美国宾州大学教授体验 Bing AI 有感:生成式 AI 的改进速度超乎预料,但我们还没准备好
- 元宇宙规模化商用仍未落地,ChatGPT或难续写新故事
- ChatGPT来袭,元宇宙将迎新契机?
- 没有对标ChatGPT产品,苹果内部AI峰会被指更像“团建”
- OpenAI与AIGC:改变人类生产范式,通往“万物的摩尔定律”
- ChatGPT在一线城市火,元宇宙在二三线城市热
- 英伟达将AI雄心扩展到云端,黄仁勋:生成式AI带来“拐点”
- ChatGPT的前世今生:OpenAI的技术「执拗」与「豪赌」
- OpenAI造就硅谷新“黑帮”:ChatGPT爆火背后的神秘大佬、技术版图和资本故事
- 国内AI公司,靠ChatGPT逆袭?
- Meta推出先进大型语言模型,下一个ChatGPT不远了?
- 与周鸿祎“深聊”ChatGPT:它会不会产生与人类为敌的想法?
- ChatGPT狂欢背后:别让科技新概念昙花一现
- ChatGPT能让AI赛道“复苏”吗?
- 马斯克谋划建研究室开发ChatGPT竞争对手,自曝对AI感到焦虑
- ChatGPT获得“正经编制”,国际预科生写论文用它不算作弊!
- 知乎CEO周源:密切关注ChatGPT发展,AI能让内容更快推广
- ChatGPT之父撰文:《万物摩尔定律》出现,这场革命将创造惊人的财富
- 一文了解 ChatGPT 等 LLMs 得到明显改进的 3 个变化
- 2.5亿美金,Salesforce设立史上规模最大AIGC风投基金
- AIGC如何成为元宇宙神助攻?
- ChatGPT 算力消耗惊人,能烧得起的中国公司寥寥无几
- 云巨头拥抱 AI:Salesforce 引入 ChatGPT
- GPT-4将在下周发布,必应日活破亿,谷歌还有招架之力吗?
- 揭秘ChatGPT背后天价超算!上万颗英伟达A100,烧光微软数亿美元
- 科技巨头持续血拼:微软豪掷数亿造ChatGPT超算,谷歌加急测试Big Bard
- 想成为顶级 AI 绘画师?先让这 7 个平台帮你成为 Prompt 高手
- 解读美国版权局最新 AI 生成作品版权指南,版权之路依旧艰难
- 周鸿祎:GPT-4会掀起新的工业革命,国内追赶不应放弃核心技术研发
- 竞品还在追赶,OpenAI 用 GPT-4 飚赢自己
- GPT-4震撼空降,谷歌「紧追」微软有点难
- GPT-4来了!国内相关初创项目近30家,VC加紧奔赴AI淘金热
- GPT-4震惊四座,中国创业者激战“小模型”
- ChatGPT-4 本周降临:它将如何影响 Web3?
- 彻底颠覆 Office,微软发布 Copilot
- 从GPT-4、文心一言再到Copilot,AIGC的长期价值被逐渐确立
- 又一中文版ChatGPT!李开复宣布筹组AI新公司“Project Al 2.0”
- OpenAI重磅研究:ChatGPT可能影响80%工作岗位,收入越高影响越大
- 首发ChatGPT课、AI共创游戏设计,网易试图抢跑AIGC红利
- GPT-4如何引领科技前沿?盘点10大应用场景
- AI“春晚”英伟达又甩王炸!ChatGPT专用GPU来了 还要赋能芯片制造
- AI企业如何发展,“中国版chat GPT”给出了答案
- 百度被网暴,AI大模型“套皮”海外知名项目,百度首次回复:假的!
- 李彦宏:中国基本不会再出一个OpenAI,创业公司重做ChatGPT没多大意义
- ChatGPT“变现”在即,哪些法律风险不容忽视?
- OpenAI大动作!ChatGPT开始联网 一夜之间从工具进化成平台?
- 一文读懂 ChatGPT 插件功能:语言模型获取新信息的“眼睛和耳朵”
- ChatGPT这么牛,我们应该如何兼顾发展和治理?
- 动嘴就能写代码,GitHub 将 ChatGPT 引入 IDE,重磅发布 Copilot X!
- 生成式AI淘金热,谁能从中赚钱?
- 智慧法律时代来临!以 ChatGPT 为代表的新 AI 技术加速升级法律服务
- 疯狂三月:一场ChatGPT引发的千亿“钞”能力竞赛
- 紧急刹车:AI 军备竞赛升温,“喊停”公开信倏忽而至
- 叫停GPT-4后续AI大模型!马斯克、Bengio等人发出公开信,千人响应
- 多家AI企业坦言大模型尚处研制阶段,行业应用落地存在不确定性
- “得志”于 AIGC,商汤科技“失意”在持续亏损
- 自主完成任务的ChatGPT,Beyond ChatGPT
- 自主拆分任务的chatGPT版本autoGPT的用户前端化实现——agentGPT部署及配置全流程
- chatGPT本地化搭建服务,一键免费部署你的私人 ChatGPT 网页应用。
- 苹果禁用ChatGPT,为防机密泄露!大模型版Siri即将升级推出
- 第一代AIGC硬件悄然爆发
- 从战略高度重视ChatGPT引发的新一轮人工智能革命
- 好莱坞片酬最高的演员,投资了世界上最成功的 AI 公司
- 研究:ChatGPT带来生成式AI十年繁荣,2032年市场规模1.3万亿美元
- 大模型创业潮:狂飙 180 天
- 在未来城市中,AIGC会扮演怎样的角色?
- OpenAI、谷歌双标玩得溜:训练大模型用他人数据,却决不允许自身数据外流
- AI席卷华尔街:对冲基金部署ChatGPT,银行展开“军备竞赛” AI梦工厂 发布在 AIGC 1.4万
- 华为版ChatGPT将于7月初发布,名为“盘古Chat”
- 大模型落地,搜索先成卷王
- 困在网页里的ChatGPT,想在移动生态里突围
- ChatGPT和AI正如何改变播客行业?
- ChatGPT流量见顶,AI革命中道崩殂?或许是OpenAI在下一盘大棋
- OpenAI 内部力推,AI 代理真能成为互联网应用发展的下一个阶段吗?
- 自行车+ChatGPT主打“陪伴”?感觉哪里怪怪的
- 押注新浪潮!韩国目标成为全球第三大AI强国
- GPT-4 “炼丹”指南:MoE、参数量、训练成本和推理的秘密
- OpenAI「打死都不说」的 GPT-4 训练细节被传出,这是我的解读
- 狙击 GPT-4 插件!谷歌 AI 助手 Bard 即将推出扩展程序,与微软的竞争进入白热化
- 谁拖了中国ChatGPT的后腿?
- 生成式AI这一年:从群雄乱战到生态确立,世界已被改变
- 我的微信
- 这是我的微信扫一扫
- 我的电报
- 这是我的电报扫一扫