专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

开源利用。NET开发第一个ChatGPT聊天系统

  最近ChatGPT很火,借此机会给大家推荐一个利用C开发的开源的ChatGPT聊天系统,话不多说,直接上主题。准备第一步:注册OpenAI账号
  因为对大陆以及中国香港地区不开放,所以我们需要小小的科学一下。
  来一个我就是参照着申请账号的园子的文章:
  https:www。cnblogs。comchatgptphowtoregisterchatgptinchina。html
  当然手机那里可以淘宝找,几块钱就能帮忙注册手机,账号里面默认还有18美元余额。
  注意点:如果搭建了科学还是提示不对你的国家提供服务的话,尝试清空浏览器缓存或者打开浏览器的无痕窗口。Chrome默认在右上角三个点打开就能找到打开新的无痕式窗口。万事具备,直接撸代码1。网页获取所需token和cookie
  我们需要三个东西:UserAgent,CfClearance,Sessiontoken
  我们需要先打开ChatGPT官方网站:https:chat。openai。comchat然后按下F12打开浏览器的开发者模式
  UserAgent在网络里(只需要复制UserAgent:后面的值):
  CfClearance和Sessiontoken在应用程序cookie里面
  2。创建一个session用来表示一个会话publicOpenAISession(stringsessiontoken,stringcfClearance,stringuserAgent){Sessiontokensessiontoken;CfClearancecfClearance;UserAgentuserAgent;HeadersnewDictionarystring,string();CookiesnewDictionarystring,string();ProxiesnewDictionarystring,string();}
  Session可以刷新自己的AccessToken和SessiontokenpublicasyncTaskRefreshSessionAsync(){if(string。IsNullOrEmpty(Sessiontoken)){thrownewException(Notokensprovided);}SetcookiesCookies。Put(Securenextauth。sessiontoken,Sessiontoken);Cookies。Put(cfclearance,CfClearance);stringcookiesStringGetCookiesString();Dictionarystring,stringmapnewDictionarystring,string();Headers。Put(UserAgent,UserAgent);Headers。Put(cookie,cookiesString);Headers。Put(Cookie,cookiesString);varresponseawaitGetAsync(https:chat。openai。comapiauthsession);if(!response。IsSuccessStatusCode){Console。WriteLine(errcode:response。StatusCode);Console。WriteLine(cfclearance:CfClearance);Console。WriteLine(token:Sessiontoken);Console。WriteLine(userAgent:UserAgent);Console。WriteLine(请检查以上参数是否正确,是否过期。);thrownewException(无法获取token!请重试);}try{stringnameSecurenextauth。sessiontoken;varcookiesresponse。Headers。GetValues(SetCookie);varstokencookies。FirstOrDefault(xx。StartsWith(name));Sessiontokenstokennull?Sessiontoken:stoken。Substring(name。Length,stoken。IndexOf(;)name。Length);Cookies。Put(Securenextauth。sessiontoken,Sessiontoken);varresultawaitresponse。Content。ReadAsStringAsync();AccessTokenJsonSerializer。DeserializeProfile(result,jsonSerializerOptions)?。AccessToken;RefreshHeaders();}catch(Exceptionex){Console。WriteLine(34;Error{nameof(RefreshSessionAsync)}:{ex});thrownewException(34;Error{nameof(RefreshSessionAsync)},ex);}}
  获取到的最新的AccessToken更新到header里,Sessiontoken更新到cookie里privatevoidRefreshHeaders(){Headers。Put(Host,chat。openai。com);Headers。Put(Accept,texteventstream);Headers。Put(Authorization,34;Bearer{AccessToken});Headers。Put(UserAgent,UserAgent);Headers。Put(XOpenaiAssistantAppId,string。Empty);Headers。Put(Connection,close);Headers。Put(AcceptLanguage,enUS,en;q0。9);Headers。Put(Referer,https:chat。openai。comchat);}stringnameSecurenextauth。sessiontoken;varcookiesresponse。Headers。GetValues(SetCookie);varstokencookies。FirstOrDefault(xx。StartsWith(name));Sessiontokenstokennull?Sessiontoken:stoken。Substring(name。Length,stoken。IndexOf(;)name。Length);Cookies。Put(Securenextauth。sessiontoken,Sessiontoken);3。创建机器人绑定一个会话publicChatbot(OpenAISessionopenAISession){OpenAISessionopenAISession;ResetConversation();}summary重置Conversation,开启一个新的会话summarypublicvoidResetConversation(){conversationIdnull;parentMessageIdGuid。NewGuid()。ToString();}
  如何保持上下文聊天以及多用户隔离?
  上下文聊天已经内置,会自动与机器人的回复进行关联,当需要重新开启一个对话的时候,可以调用ResetConversation,这样对应的机器人对象发过去就是开启了一个新的对话。
  如何多用户隔离?比如联合微信机器人使用,可以将一个人或者一个群对应一个Chatbot对象,并且利用id与机器人做关联。
  当然这个clientID需要使用者做唯一性管理可以作为隔离不同客户端聊天上下文的凭据,即一个机器人绑定一个客户端客户端编号可以是,微信id,qqid,飞书id,亦或者自己开发的软件的用户idprivatereadonlystringclientID;publicChatbot(OpenAISessionopenAISession,stringclientID){OpenAISessionopenAISession;clientIDclientIDnull?Guid。NewGuid()。ToString():clientID;ResetConversation();}
  最后构造对话对象,发送到对应apipublicasyncTaskReplyGetChatReplyAsync(stringprompt){varconversationnewConversation();conversation。ConversationidconversationId;conversation。ParentmessageidparentMessageId;conversation。MessagesnewMessage〔〕{newMessage(){ContentnewContent{Partsnewstring〔〕{prompt}}}};returnawaitGetChatResponseAsync(conversation);}summary获取响应summaryparamnameconversationparamreturnsreturnsexceptioncrefException服务器返回非200exceptionprivateasyncTaskReplyGetChatResponseAsync(Conversationconversation){using(varclientnewHttpClient()){varresponseawaitOpenAISession。PostAsync(conversation,JsonSerializer。Serialize(conversation,jsonSerializerOptions));if(!response。IsSuccessStatusCode){thrownewException(34;Faildtorequest。StatusCode:{response。StatusCode});}varmsgawaitresponse。Content。ReadAsStringAsync();vardatamsg。Split()?。ToList()。Where(x!string。IsNullOrEmpty(x)!x。Contains(data:〔DONE〕))。LastOrDefault()?。Substring(5);varreplyJsonSerializer。DeserializeReply(data,jsonSerializerOptions);conversationIdreply。Conversationid;returnreply;}}效果截图(仅测试)OpenAISessionopenAIOptionsnewOpenAISession(Sessiontoken,CfClearance,UserAgent);awaitopenAIOptions。RefreshSessionAsync();ChatbotchatbotnewChatbot(openAIOptions);Console。WriteLine(用c写个冒泡查询);varreplyawaitchatbot。GetChatReplyAsync(用c写个冒泡查询);Console。WriteLine(reply。Message。Content。Parts。FirstOrDefault());
  获取源码:关注我并私信回复:ChatGPT聊天。
  欢迎点赞转发关注!大家的支持是我分享最大的动力!!!

室温超导研究是必拿诺贝尔奖的历史性突破吗?来源新华网近日,美国罗切斯特大学兰加迪亚斯研究团队宣布研发出一种在室温和相对较低压力条件下表现出超导性的材料。有学者称,这可能是超导历史上的最大突破,但也有不少学者对此持观望态度。高坪柔性电子挺起工业脊梁俯瞰高坪航空港高坪区融媒体中心供图高坪区紧盯柔性电子这一主导产业,以柔为题,依托电子信息产业发展基础,大力招引配套企业,着力推进建链成群充分利用柔性科技创新赋能,全面提升产业竞争优倍思GaN5Pro65W氮化镓快充插线板开箱测评插线板我们一定都不陌生,大家几乎每天都会用到,手机充电台灯供电,移动电源或者手表的充电都离不开插线板。随着电子设备越来越多,人们对插线板的要求也越来越高了,仅有两三个插孔的插线板已几款热门AI应用上手体验ChatGPTNewBingMidjourney世界飞速发展,我不想囿于一隅。如果你跟我有同样想法,又不爱花时间精力去折腾,就让我先带你体验一番AI产品经过不断更新迭代,已经摆脱了以前人工智障的形象,发展之快令人瞠目结舌。从李世6只股股价创历史新高沪指今日下跌0。72,6股收盘价创历史新高。今日可交易A股中,股价上涨的有944只,占比19。14,下跌的3921只,占比79。52,其中,涨停的有24只,跌停的有13只。证券时报远离代理维权陷阱当前,一些非法组织推出所谓征信修复洗白代理免除债务代理投诉等代理维权服务诱骗消费者。所谓代理维权实为债闹,相关资料显示,维权组织包装成律师或专家,通过网络平台迅速传播分享经验,以减聚焦青年译者,首届中国青年文学翻译家论坛在南京举办3月18日下午,首届中国青年文学翻译家论坛创造文学的汉语和汉语的文学在南京师范大学随园校区举行。本次活动由译林出版社南京师范大学主办,世界文学与中国当代原创文学研究暨出版中心译林杂人民建议网民建议规划省内旅游大环线吉林已经安排来源人民网创建旅游休闲城市,形成联动冬夏带动春秋驱动全年四季皆有特色的全域全季大旅游发展格局今年吉林省的政府工作报告阐述了全域旅游发展的内容,为全省旅游产业发展指明了方向。领导留言带你一起游梅花山,暗香浮动月黄昏,天下第一梅山原创图文酋长引言梅花山是南京市玄武区紫金山的一座小山丘,位于中山陵西南,明孝陵正南。梅花山因东吴大帝孙权葬于此处,原名孙陵岗吴王坟。山上遍植梅花,因此得名。南京植梅与赏梅的历史悠久桂林旅游团报价桂林跟团游价位多少合理避坑指南我是敏敏,湖南长沙人,喜欢旅行和写旅游博客,可能经常旅行的朋友都认识我吧?过去的五年,我写了大概有300篇攻略了,每去一个地方都写下来,希望对前往旅行的朋友有帮助。这一篇,是桂林篇海南环岛旅游公路今年启动10个重点驿站建设图为海南环岛旅游公路莺歌唱晚驿站效果图。投资方供图中新网海口2月21日电(张月和)海南省委宣传部21日在海口市国家帆船基地公共码头举行全力推进海南旅游业高质量发展专场新闻发布会,海
注意啦!采购文件这些条款涉嫌歧视中小企业!扶持中小企业,至少要确保中小企业与大型企业站在同一起跑线上,采购人和代理机构不歧视中小企业,这也是财政部优化政府采购营商环境的重点方向。一位不愿具名的业界资深专家如是说。政府采购信注意!这类信用卡将被注销日前,中国银行公告称,自3月20日起,该行将对连续18个月及以上无主动交易且无任何未偿款项和存款的长期睡眠信用卡分阶段进行降额停用或销卡等相关处理。信用卡新规发布已7月有余,多家银唯品会财报出炉,SVIP又涨了,业内人士道出关键进入财报季,唯品会不出意料交出了一份稳健成绩单。就在昨日,唯品会2022年度财报公布。数据显示,2022年唯品会实现净营收1032亿元,超级VIP活跃用户数量增至670万,对线上消工程欠款,承兑汇票能不能收?最近有朋友咨询拖欠工程款好几年的债务人最近突然提出给承兑汇票,问能不能收。以前也有朋友咨询过几家头部房企出具的商业承兑汇票无法兑付的问题,这次正好理下工程欠款用承兑汇票支付的问题。福特换帅陈安宁荣退,吴胜波接棒时隔五年,福特再度迎来换帅时刻。2月24日,福特中国总裁兼首席执行官陈安宁先生决定退休的消息正式公开,其职务将在3月1日起,正式由现任福特中国董事总经理兼首席运营官吴胜波先生接任。太意外!越南功勋主帅自荐接手国足,足协却看不上,终于敲定新帅再过一个月,男足国际比赛日将开打,目前中国男足国家队尚未官宣新任主帅,不过人选已经敲定,中国足协已经决定让扬科维奇顶替李霄鹏,只等更高一级领导批准即可宣布。国足上一次亮相,还是去年穆帅笑了!20罗马逆袭,闯入欧联淘汰赛正赛,6万现场球迷沸腾了赛前在意甲联赛排名第3的罗马队迎来了欧联淘汰赛附加赛第二回合的较量,罗马队此役坐镇自己的主场(能容纳6万多人的罗马奥林匹克球场)PK奥超领头羊萨尔茨堡红牛队。首回合罗马队没有发挥出NVIDIAAMD显卡慢悠悠降价!贵得真离谱有数据显示,今年1月份国内市场显卡出货量同比暴跌了42,相比去年12月份只恢复了9。既然不好卖,是不是应该便宜一点?大错特错!根据德国大型电子零售商MindFactory的统计,相五款前置过滤器实测附美的霍尼韦尔BKA3M史密斯硬核实测相比于厨下净水器,我倒觉得现在前置过滤器是每家必备的净水产品。但看了看网上,发现关于前置过滤器的深度测评还是比较少。作为家电研究员,家电领域的无人之境自然要勇于探索。所以这次我自费iPhone备忘录中怎么查看农历月视图?在使用备忘录的时候,有的时候需要记录一些日程提醒,对于这个方面来说,如果备忘录软件具备月视图功能,那么在查看日程提醒的时候,会更加的直观方便。对于日程提醒来说,有公历也有农历,iP如何在SOLIDWORKS中重用草图本周,我有一个客户问了我一个问题,我能从一个装配模型到一个零件模型共享一个草图吗?。绝对的!一个快速的Webex之后,问题解决了。下面是一个如何在SOLIDWORKS中实现重用草图
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网