编写 ChatGPT 桌面版,改进版支持上下文对话

调用 ChatGPT 官方 API 接口的好处是没有登录地区限制,编写桌面版的好处是可以单用户独享,免费额度足够用了,不至于消耗太快。

网页版 ChatGPT 的上下文对话很棒,其实我们自己编写的桌面版也可以实现这个功能。今天小改了一下前几天发的源代码,支持上下文对话以后的效果:

以下是完整源代码(使用 aardio 编写,复制粘贴到 aardio 编辑器直接点运行就可以了 )。

import win.ui;
/*DSG{{*/
var winform = win.form(text="ChatGPT 桌面智能助理";right=661;bottom=721)
/*}}*/

import web.view;
var wb = web.view(winform);

import web.rest.jsonClient;
var http = web.rest.jsonClient(); 

//参数请改成您的 API key(或者获取 API key 的网址也可以)。
http.setAuthToken("http://api.aardio.com/demo/openai/token2");
var ai = http.api("https://api.openai.com/v1/");
	
var conversation = {};
var chatGptName = "桌面智能助理";
var chatGptInfo = "是一个快乐的程序员,精通多种编程语言";

wb.external = {
	ask = function(q){
		table.push(conversation,"用户:"+q);
		
		var prompt;
		do{
			prompt =  "提示:你叫"
			+ chatGptName + ","
			+ chatGptInfo + "。<|endoftext|>"  
			+ "当前时间:" + tostring(time()) + "。<|endoftext|>"  
			+ string.join(conversation,"<|endoftext|>") 
			+ "<|endoftext|>"
			+ chatGptName + ":";
			
			if(#prompt < 2000) break; 
			
			table.shift(conversation);
		}while(true);	
		
		var ret,err = ai.completions({
			"prompt": prompt,//发送提示
			"model": "text-davinci-003",//GPT 3.5 模型
			"temperature": 0.8,//热度,0~1 之间。
			"max_tokens": 2048,//最大允许的字符数量 
			"stop": {"<|endoftext|>"}  
		})
		
		if(ret){
			var a = ret.choices[1].text; 
			table.push(conversation,chatGptName+":"+a);
			return a;
		}
		else {
			if(err[1]=='{'#){
				var errObject = web.json.tryParse(err)[["error"]];
				if(errObject[["code"]]="invalid_api_key"){
					return "您的 API key 已经失效了!"; 
				} 
				
				if(errObject[["message"]]) return errObject[["message"]];
			}
			
			return err;
		}
	};	
} 

wb.html = /**


	
	ChatGPT 桌面智能助理 
	
	 
	 
	 
	 
	

  



**/

winform.show();
win.loopMessage();
展开阅读全文

页面更新:2024-04-02

标签:上下文   桌面版   接点   额度   很棒   源代码   好处   桌面   提示   智能

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top